Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/funfactor1/cve-2026-82090-18-years-all-versions-cvss-9.2-critical-the-pocket-forever-day
Android SecurityVulnerability ScannersiOS SecurityVulnerability AnalysisExploitationWeb Application ExploitationWeb SecurityMobile SecurityPapers & Research

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
Learning & Education
GitHubfunfactor1/cve-2026-82090-18-years-all-versions-cvss-9.2-critical-the-pocket-forever-day

CVE-2026-82090-18-Years-All-Versions-CVSS-9.2-CRITICAL-The-Pocket-Forever-Day

CVE-2026-82090 · CVSS 9.2 CRITICAL · Mozilla Pocket의 0-click 저장형 XSS — 모든 버전(v0 → v8.33.0.0) · 18년간 영구 미패치 · 패치 없음 · MITRE 공개

저장소 보기
2115시간 41분 전아직 검토되지 않음

XSS 0-Click / 0-Day 취약점 보고서

CVE CVSS Status CNA Tag

Pocket Android 및 iOS에서 JavaScript 브리지 악용으로 이어지는 크로스 사이트 스크립팅(0-Click) — CVSS 9.2 CRITICAL

CVE-2026-82090 — MITRE Corporation 발행 (2026-08-28)

저자: Ing. Zampier Zago (FUNFACTOR1) 부서: Section 1 — Department of Cyber Security, PS 1978 Limited 연락처: [email protected] 웹: www.ps1978ltd.it 분류: 보안 취약점 분석 — CVE-2026-82090


이중 용도 콘텐츠 면책 조항: 이 저장소는 수명 종료(EOL) 제품에 대한 취약점 분석 및 개념 증명(PoC)을 포함합니다. 제공된 정보와 코드는 엄격히 교육 목적, 방어적 분석, 그리고 공식 CVE 문서화를 위한 것입니다. 저자는 이 정보의 오용에 대해 어떠한 책임도 지지 않습니다.


https://github.com/user-attachments/assets/e2b0aa46-df64-452b-afbf-fa31dd8c650d

1. 요약

DOM 기반 크로스 사이트 스크립팅(XSS) 취약점이 Pocket Android 버전 8.33.0.0(패키지 com.ideashower.readitlater.pro)에서 확인되었으며, 이는 2025년 7월 서비스 종료 전 Mozilla / Read It Later, Inc.가 배포한 최종 릴리스입니다. 이 취약점을 통해 공격자는 단 한 번의 "Save to Pocket" 동작 외에는 사용자 상호작용 없이 애플리케이션의 WebView에서 임의의 JavaScript를 주입하고 실행할 수 있습니다 — 전달 후 0-click 익스플로잇입니다.

근본 원인은 에셋 번들 파일 assets/html/j/articleview-mobile.js(95–99행)에서 jQuery의 .html() 메서드($(document.body).html(content))를 통해 외부 소스의 HTML 콘텐츠를 DOM에 직접 살균 처리 없이 주입하는 것입니다. 콘텐츠는 com.pocket.sdk.offline.DownloadingService에 의해 사용자 상호작용 없이 백그라운드에서 자동으로 가져와 렌더링됩니다.

또한 애플리케이션은 addJavascriptInterface를 통해 등록되고 classes2.dex에서 확인된 네이티브 Java-to-JavaScript 브리지(PocketAndroidArticleInterface)를 노출하며, 이는 WebView 내에서 실행되는 JavaScript에 의해 호출 가능합니다.

벤더 공개 기록: 이 XSS는 2024-07-10에 CWE-79 분류와 전체 기술 세부 정보와 함께 Mozilla Security에 공식 보고되었습니다. Mozilla는 2024-07-11에 접수를 확인하고 Pocket이 범위 밖이라고 선언하며 명시적으로 수정을 거부했습니다. Mozilla는 이후 2025년에 v8.33.0.0을 출시하면서 취약한 코드를 전혀 변경하지 않았습니다. v8.33.0.0의 포렌식 분석은 articleview-mobile.js의 95–99행에서 동일한 취약한 호출을 확인합니다.

계보: 동일한 이름의 파일 articleview-mobile.js에서 동일한 행 — $(document.body).html(content) — 이 iOS 대응 번들 ReadItLaterPro.app(Pocket iOS v4.5.2)에 존재하며, 이는 Read It Later가 Pocket으로 리브랜딩된 2012년 4월 17일 직전 시대로 거슬러 올라갑니다. 이 CVE는 v0부터 v8.33.0.0까지 모든 버전을 포함합니다 — 이 결함은 제품의 전체 18년 수명 동안 수정 없이 지속적으로 배포되었습니다(§7 참조). 가장 오래된 사용 가능한 번들(iOS v4.5.2)을 통한 포렌식 코드 수준 확인은 동일한 싱크를 최소 2012년으로 거슬러 올라가게 합니다.

패치는 없습니다. 제품은 버려졌습니다. 설치된 모든 인스턴스는 영구적으로 취약한 상태로 남아 있습니다.


2. 영향받는 제품

  • 제품명: Pocket — Save. Read. Grow. (Android)
  • 패키지명: com.ideashower.readitlater.pro
  • 빌드 버전: 8.33.0.0 (서비스 종료 전 최종 릴리스)
  • 분석된 APK: com.ideashower.readitlater.pro_8.33.0.0.apk
  • 벤더: Read It Later, Inc. / Mozilla Corporation
  • Google Play: 2025-05-21에 Google Play Store에서 게시 취소됨. 목록 페이지는 https://play.google.com/store/apps/details?id=com.ideashower.readitlater.pro에서 여전히 접근 가능할 수 있으나 앱은 더 이상 다운로드할 수 없습니다.
  • 서비스 상태: 종료됨 (2025-07-08). 애플리케이션은 강제 제거, 킬 스위치, 또는 보안 업데이트 배포 없이 수백만 대의 기기에 여전히 설치되어 있습니다. 비디오 증거(2026-01-02)는 공식 종료 후 수개월이 지난 시점에도 페이월 우회 및 백그라운드 서비스를 포함한 완전한 작동을 확인합니다.

3. 취약점 세부 정보 — 이슈 #1: WebView를 통한 0-Click XSS

3.1 취약점 분류

3.2 취약한 구성 요소

파일: assets/html/j/articleview-mobile.js 95–99행:```javascript // article content was retrieved loadCallback : function(content) { // TODO : 3.0 : If file was missing, handle that correctly $(document.body).html(content);

root@kitploit:~
**근본 원인:** 외부에서 가져온 HTML이 정제 없이 jQuery 3.4.1의 `.html()` 메서드에 직접 전달됩니다. jQuery 3.4.1은 내장된 `<script>` 태그와 인라인 이벤트 핸들러(`onerror`, `onload`)를 실행합니다. 1,836줄의 파일 어디에도 `DOMPurify`, `sanitize()`, `escapeHtml()` 또는 이에 상응하는 호출이 존재하지 않습니다. `content` 변수는 JS 측 필터링 없이 Java 계층에서 비롯됩니다.

취약한 호출 바로 앞에 있는 `// TODO : 3.0 : If file was missing, handle that correctly` 주석은 이 코드가 프로덕션 수준으로 강화된 적이 없음을 보여줍니다. 이 주석은 최종 릴리스 v8.33.0.0까지 앱의 모든 버전에 존재했습니다.

### 3.3 JavaScript 브리지 증거

**파일:** `assets/html/j/articleview-mobile.js`, 11–14행:```javascript
// Android comm object
if (typeof PocketAndroidArticleInterface == 'undefined')
    PocketAndroidArticleInterface = false;

isAndroid = !!PocketAndroidArticleInterface;

DEX 문자열 분석(classes2.dex)을 통해 확인됨:``` PocketAndroidArticleInterface setJavaScriptEnabled addJavascriptInterface

root@kitploit:~
JS 호출 지점에서 확인된 브리지 메서드: `onReady()`, `onError()`, `onScrollChanged()`, `setFrozen()`, `placePageBlockers()`, `toggleFullscreen()`, `setViewType()`, `scrollToPosition()`, `onTextSearch()`, `onRequestedHighlightPatch()`, `updatePageSwipingDisabledAreas()`, `getHorizontalMargin()`, `getMaxMediaHeight()`, `isConnected()`.

### 3.4 백그라운드 동기화 서비스

**AndroidManifest.xml**에서 확인된 사항:```xml
<service
    android:name="com.pocket.sdk.offline.DownloadingService"
    android:permission="android.permission.FOREGROUND_SERVICE_DATA_SYNC">

BOOT_COMPLETED 리시버가 등록된 상태입니다. 이 서비스는 기기 부팅 및 네트워크 사용 가능 시 기사 콘텐츠를 자동으로 가져와 렌더링하며, 사용자 상호작용 없이 숨겨진 WebView에서 loadCallback을 트리거합니다.

3.5 공격 체인```

Phase 1 — Content Injection [CONFIRMED] Attacker hosts page with XSS payload. Victim saves URL via "Save to Pocket". Malicious HTML stored in local Pocket database.

Phase 2 — Zero-Click Background Sync [CONFIRMED] DownloadingService auto-starts on boot (BOOT_COMPLETED). Fetches article content silently, no user interaction.

Phase 3 — Automatic WebView Rendering [CONFIRMED] Pagination engine (updatePaging) triggers hidden WebView render. No user opens the article.

Phase 4 — JavaScript Execution [CONFIRMED] loadCallback calls $(document.body).html(content). jQuery 3.4.1 executes embedded scripts and event handlers.

Phase 5 — Native Bridge Reachability [PARTIAL] Bridge object PocketAndroidArticleInterface is reachable from the XSS execution context (confirmed via classes2.dex string analysis and JS call-site inventory). Full native method surface and downstream impact pending complete JADX decompilation.

root@kitploit:~
---

## 4. 개념 증명```html
<!DOCTYPE html>
<html>
<body>

</body>
</html>

재현 단계:

  1. 위 페이지를 공개 URL에 호스팅한다.
  2. 피해자가 해당 URL을 Pocket에 저장한다(클릭 한 번 — "Save to Pocket").
  3. 추가적인 사용자 상호작용은 필요하지 않다.
  4. DownloadingService가 콘텐츠를 자동으로 가져온다.
  5. 페이지네이션 엔진이 숨겨진 WebView에서 기사를 렌더링한다.
  6. loadCallback → $(document.body).html(content) → 페이로드 실행.
  7. 공격자 서버가 유출된 데이터를 조용히 수신한다.

PoC의 플랫폼 범위에 관한 참고: 위의 실행 가능한 개념 증명은 Android 빌드를 대상으로 하며, 이는 0-click 사례(백그라운드 DownloadingService)이다. iOS 대응 버전(Pocket iOS v4.5.2 / ReadItLaterPro.app)은 동일한 이름의 파일에서 동일한 취약한 loadCallback() 싱크를 공유하지만, 다른 브리지 메커니즘(UIWebView 델리게이트가 가로채는 x-ril-cmd: URL 스킴)을 통해 네이티브 코드에 도달하며 1-click 사례(사용자가 저장된 기사를 열어야 함)로 저하된다. iOS 증거는 배포된 앱 번들의 정적 분석을 통해 확립되었으며, 이 저장소의 iOS_forensic_analysis_v4.5.2.md에 전체가 문서화되어 있다. 별도의 실행 가능한 iOS PoC는 공개되지 않으며, 공유 코드베이스 분석을 통해 두 플랫폼 간 싱크의 동등성이 입증된다.


5. CVSS v4.0 벡터 분해

전체 벡터: CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

기본 점수: 9.2 — CRITICAL


6. 벤더 커뮤니케이션 이력

모든 날짜는 원본 이메일 증거(POCKET_MAIL.pdf, POCKET_MAIL1.pdf, CRONO2.pdf)를 기준으로 검증되었다.


7. 계보 — 동일한 취약 코드의 18년 (2007 → 2025)

CVE 기록은 v0부터 v8.33.0.0까지 모든 버전이 영향을 받는 것으로 확인한다. 이 결함은 회귀가 아니라 기사 렌더링 파이프라인의 원래 아키텍처로, 2007년 Read It Later가 Firefox 확장 프로그램으로 출시된 이래로 존재했으며, 모바일 앱(Android는 2011년부터, iOS는 그 이전)으로 이어졌고, 2025년 최종 Android 릴리스까지 변경 없이 배포되었다. 동일한 취약한 싱크에 대한 포렌식 코드 수준 확인은 가장 오래된 사용 가능한 번들(iOS v4.5.2)을 통해 2012년까지 거슬러 올라간다.

7.1 iOS 대응 버전 — Pocket iOS v4.5.2 (ReadItLaterPro.app)

iOS 애플리케이션 번들의 이름은 ReadItLaterPro.app 으로, 회사가 2012년 4월 17일 앱을 공개적으로 Pocket으로 리브랜딩하기 전에 Read It Later, Inc.가 사용한 이전 제품명이다. 이 번들은 iOS 5.0+를 대상으로 하여 코드베이스를 2011년~2012년 초 시기로 위치시킨다.

이 iOS 번들의 포렌식 분석은 Android 버전과 동일한 이름의 파일에서 문자 단위로 동일한 취약 패턴을 확인한다. 완전한 iOS 포렌식 분석 — 취약한 싱크, 콘텐츠 파이프라인, 네이티브 브리지, 텔레메트리 인벤토리, 증거 참조 — 은 이 저장소에 iOS_forensic_analysis_v4.5.2.md로 게시되어 있다.

파일: manifest/cache/j/articleview-mobile.js (iOS) — assets/html/j/articleview-mobile.js (Android)와 동일한 파일명

97–107행 (iOS):```javascript // article content was retrieved loadCallback : function(content) { // TODO : 3.0 : If file was missing, handle that correctly

root@kitploit:~
$(document.body).html(content);          // ← IDENTICAL TO ANDROID

// Add empty content to bottom in case an image is at bottom.
$(document.body).append($('<br>&nbsp;'))

this.onArticleReady();

},

root@kitploit:~
동일한 `// TODO : 3.0` 주석이 두 플랫폼 모두에 존재한다 — 완전히 똑같은 자리 표시자가 약 13년에 걸쳐 단 한 번도 후속 조치되지 않았다.

### 7.2 공유 코드베이스 확인됨

iOS 번들에는 Read It Later, Inc. / Mozilla가 **단일 공유 JavaScript 코드베이스**를 두 플랫폼에 배포했음을 입증하는 명시적인 플랫폼 분기 로직이 포함되어 있다:```javascript
var isAndroid;
if (typeof ReadItLaterJSMethods == 'undefined')
    ReadItLaterJSMethods = false;
isAndroid = !!ReadItLaterJSMethods;

isAndroid === false일 때 iOS 브리지 경로가 실행되고, true일 때 Android 경로가 실행된다. 두 경로 모두 어느 플랫폼에서도 정제 없이 동일한 취약한 loadCallback() 으로 수렴한다.

7.3 플랫폼 간 차이점

UIWebView 타임라인에 관한 참고: Apple은 iOS 8 (2014)에서 후속 기술로 WKWebView를 도입했다. UIWebView는 iOS 12 (2018)에서 공식적으로 폐기되었다. App Store는 2020년 4월에 UIWebView를 사용하는 신규 앱 접수를 중단했고, 2020년 12월에는 기존 앱의 업데이트도 중단했다. UIWebView는 SDK에서 공식적으로 제거된 적이 없다 — 여전히 존재하지만 더 이상 App Store 제출용으로 허용되지 않는다. 여기서 관련된 보안 약점은 프로세스 내에서 실행된다는 점(별도의 WebContent 프로세스 없음), Content Security Policy 지원이 없다는 점, 그리고 stringByEvaluatingJavaScriptFromString:을 통해 주입된 JavaScript를 메인 스레드에서 동기적으로 실행한다는 점이다.

7.4 시사점

Read It Later, Inc. — 그리고 이후 인수 후 Mozilla — 는 제품의 전체 18년 수명(2007 → 2025)에 걸쳐 동일한 이름의 파일에서, 동일한 미해결 TODO 주석과 함께, 동일한 정제되지 않은 .html() 주입 패턴을 출시했으며, MITRE에 의해 v0부터 v8.33.0.0까지 모든 버전에 영향을 미치는 것으로 확인되었다.

이는 2024-07-10의 공식 CWE-79 보고 이후 기간도 포함한다. 2024–2025년에 최소 하나의 추가 Android 릴리스 라인이 생산되었으며(최종적으로 v8.33.0.0), 취약한 코드가 그대로 보존되었다.


8. 근본 원인 분석

Pocket의 기사 리더는 정제 없이 $(document.body).html(content)를 통해 외부에서 가져온 원시 HTML을 DOM에 주입한다. 95번째 줄의 // TODO 주석은 이 코드가 프로덕션 수준으로 강화된 적이 없음을 확인해 준다. 이러한 아키텍처적 선택은 최초의 모바일 빌드(§7 참조)부터 최종 Android 릴리스 v8.33.0.0까지 존재했으며 — 약 13년과 최소 한 번의 완전한 소유권 이전에 걸쳐 변경되지 않았고, 2024년 7월의 공식 보안 보고 이후에도 변경되지 않았다.

2024년 이후 벤더 대응 타임라인과 공식 CWE-79 보고, Mozilla의 거부, 그리고 최종 미패치 릴리스 사이의 정확한 순서에 대해서는 §6을 참조하라.


9. 임시 완화책

벤더 완화책은 존재하지 않으며 앞으로도 나오지 않을 것이다.

최종 사용자용: com.ideashower.readitlater.pro를 즉시 제거하라. Google OAuth 권한을 취소하라.

보안 커뮤니티용: 이 사례는 "Forever-Day" 취약점에 해당한다 — 확인되었고, 패치되지 않았으며, 폐기된 소프트웨어에 있어 사용 가능한 해결 경로가 없다. MITRE EOL 정책에 따라 Unsupported When Assigned 태그로 분류하기에 적합하다.


10. 검증 방법론

분석된 APK: com.ideashower.readitlater.pro_8.33.0.0.apk

도구: Android Studio, DEX2JAR, 수동 코드 검토, 바이너리 AXML 파싱(UTF-16LE), Protocol Buffer 스키마 검사, DEX 문자열 추출. iOS 번들은 문자열 추출 및 내장된 JavaScript 파이프라인의 소스 검토를 통해 검사했다.

증거 체인:```

  1. APK acquired └── com.ideashower.readitlater.pro_8.33.0.0.apk

  2. Decompiled ├── assets/html/j/articleview-mobile.js (XSS — lines 95–99) ├── assets/html/article-mobile.html (jQuery 3.4.1) ├── AndroidManifest.xml (DownloadingService, SDK receivers) └── classes.dex / classes2.dex / classes3.dex

  3. iOS counterpart bundle acquired and analyzed └── ReadItLaterPro.app (Pocket iOS v4.5.2) └── manifest/cache/j/articleview-mobile.js (XSS — lines 97–107) └── full analysis: iOS_forensic_analysis_v4.5.2.md

  4. Vendor communication record └── Original emails verified: POCKET_MAIL.pdf, POCKET_MAIL1.pdf, CRONO2.pdf First report: 2021-04-19 XSS formally reported: 2024-07-10 Vendor final refusal: 2024-07-11

  5. Dynamic evidence └── Video recording 2026-01-02: app fully operational post-sunset on real device

root@kitploit:~
---

## 11. CVE 레코드

**CVE ID:** CVE-2026-82090 — 2026-08-28 MITRE Corporation(CNA)에 의해 게시됨. 원래 cveform.mitre.org를 통해 CAN-2026-2030598로 제출됨.

**공급업체:** Mozilla Corporation
**제품:** Pocket (Android)
**버전:** 8.33.0.0
**취약점 유형:** 크로스 사이트 스크립팅(XSS)

**설명(cveform.mitre.org용):**```
** UNSUPPORTED WHEN ASSIGNED ** A DOM-Based Cross-Site Scripting
(XSS) vulnerability (CWE-79) in the articleview-mobile.js
component of Mozilla Pocket for Android through version 8.33.0.0
allows remote attackers to execute arbitrary JavaScript within
the application's WebView. By leveraging the background
DownloadingService, a crafted HTML payload is processed
automatically without user interaction (zero-click), allowing
interaction with the native PocketAndroidArticleInterface Java
bridge.
NOTE: This product is End-of-Life and no longer supported by
the vendor.

추가 정보 / 공급업체 커뮤니케이션:``` First disclosure: 2021-04-19 (paywall bypass). Formal security report identifying XSS (CWE-79): 2024-07-10 to Mozilla Security. Vendor response (2024-07-11): Product declared out of scope. Final APK v8.33.0.0 released in 2025 with vulnerable code unchanged. Service sunset 2025-07-08. Product is abandoned. The same vulnerable line is present in the iOS counterpart bundle (ReadItLaterPro.app, v4.5.2, circa 2012), evidencing ~13 years of unmodified shipment across both mobile platforms.

root@kitploit:~
---

## 12. 참고 문헌

- CVE-2026-82090 (공식 기록): https://www.cve.org/CVERecord?id=CVE-2026-82090
- CWE-79: https://cwe.mitre.org/data/definitions/79.html
- CWE-116: https://cwe.mitre.org/data/definitions/116.html
- CVSS v4.0 명세: https://www.first.org/cvss/v4.0/specification-document
- MITRE CVE EOL 프로세스: https://www.cve.org/Resources/General/End-of-Life-EOL-Assignment-Process.pdf
- MITRE CNA 운영 규칙: https://www.cve.org/resourcessupport/allresources/cnarules
- jQuery `.html()` 동작: https://api.jquery.com/html/
- Android `addJavascriptInterface`: https://developer.android.com/reference/android/webkit/WebView#addJavascriptInterface(java.lang.Object,%20java.lang.String)
- Apple — `UIWebView` 지원 중단: https://developer.apple.com/documentation/uikit/uiwebview
- Apple — 웹 뷰를 사용하는 앱 업데이트 (App Store UIWebView 기한): https://developer.apple.com/news/?id=12232019b
- Read It Later → Pocket 리브랜딩 (2012년 4월 17일): https://blog.getpocket.com/2012/04/introducing-the-all-new-read-it-later-now-called-pocket/

---

*Ing. Zampier Zago (FUNFACTOR1) — Section 1 — Department of Cyber Security, PS 1978 Limited — [email protected] — [www.ps1978ltd.it](http://www.ps1978ltd.it) — https://github.com/FUNFACTOR1*
도구 다운로드
필드값
CVECVE-2026-82090 — 2026-08-28 발행 — CNA: MITRE Corporation
취약점 유형DOM 기반 XSS (0-click) + JavaScript 브리지 악용
CWECWE-79, CWE-116
익스플로잇 상태0-click, 0-day — 패치 없음; 제품 수명 종료
벤더 대응2024-07-11 — "Pocket is out of scope" (Frida, Mozilla Security Team)
영향받는 제품Pocket Android v8.33.0.0 (최종 릴리스)
패키지 IDcom.ideashower.readitlater.pro
벤더Mozilla Corporation / Read It Later, Inc.
CVSS v4.0 점수9.2 — CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
심각도CRITICAL
벤더 최초 보고2021-04-19 (페이월 우회)
Mozilla Security에 XSS 공식 보고2024-07-10
취약점이 그대로 남은 최종 APK 릴리스2025 — v8.33.0.0
서비스 종료2025-07-08
코드 계보18년 — 모든 버전 (v0 → v8.33.0.0, 2007 → 2025). 2012년 iOS 번들에서 포렌식 코드 확인.
필드값
유형DOM 기반 크로스 사이트 스크립팅
CWECWE-79 — 웹 페이지 생성 중 입력의 부적절한 중화
보조 CWECWE-116 — 출력의 부적절한 인코딩 또는 이스케이프
공격 벡터원격, 0-click (전달 후 사용자 상호작용 제로)
필요한 권한없음
범위변경됨 — WebView 컨텍스트가 신뢰 경계를 넘어 네이티브 Android 브리지로 진입
지표값근거
공격 벡터 (AV)네트워크 (N)페이로드가 인터넷을 통해 전달되고 실행됨
공격 복잡도 (AC)낮음 (L)우회해야 할 경쟁 조건이나 메모리 보호 기능 없음
공격 요구사항 (AT)존재 (P)백그라운드 동기화를 트리거하려면 사용자가 공격 전에 최소 하나의 기사를 저장한 상태여야 함
필요 권한 (PR)없음 (N)대상에 대한 인증 불필요
사용자 상호작용 (UI)없음 (N)저장 후 백그라운드 서비스를 통해 자동 실행
취약점 기밀성 (VC)높음 (H)세션 토큰, 기사 DB, 독서 습관 노출
취약점 무결성 (VI)높음 (H)JS가 네이티브 브리지 메서드를 통해 앱 상태를 변경할 수 있음
취약점 가용성 (VA)높음 (H)백그라운드 서비스 가용성이 중단될 수 있음
후속 영향 (SC / SI / SA)없음 (N)입증된 영향은 Android 애플리케이션 샌드박스 / WebView 신뢰 경계 내에 국한됨. 별도의 후속 시스템으로의 피벗은 입증되지 않았으므로 과대 주장을 피하기 위해 SC/SI/SA를 보수적으로 None으로 설정
완화 수준 (RL)불가 (U)제품이 중단됨; 패치가 나오지 않음
날짜사건출처 / 당사자
2021-04-19Pocket 지원팀에 최초 보고: 이탈리아 뉴스 사이트의 게시자 접근 제어를 우회할 수 있는 페이월 우회. 동영상, 스크린샷, 예시 URL 제공.Zampier Zago → [email protected]
2021-04-22Pocket 지원팀 응답: 특정 URL과 스크린샷 요청.Pocket Support (Manuel) → Zampier Zago
2021-05-17연구자가 전체 콘텐츠 우회를 입증하는 두 개의 라이브 PoC URL 제공.Zampier Zago → [email protected]
2021–2024추가적인 벤더 조치 없음. 벤더의 초기 입장: "Pocket 때문이 아님." 연구자는 단호한 거부로 인해 3년간 자신의 발견을 의심함.—
~2024년 6월연구자가 APK 분석을 수행하여 WebView(articleview-mobile.js)의 XSS, JavaScript 브리지 악용 벡터, CWE-79 / CWE-200 / CWE-693을 식별.Zampier Zago
2024-05-31사건이 공식적으로 재개됨. 동일한 페이월 우회에 대한 공개 제3자 확인(bardeen.ai). 연구자가 원래의 2021년 보고를 참조.Zampier Zago → [email protected]
2024-06-06Pocket Support (Alejandra Galo): 내부적으로 에스컬레이션했으나 수정 약속 없음. "우리 Parser는 해당 Paywall을 우회하도록 설계되지 않았습니다."Pocket Support → Zampier Zago
2024-07-02연구자가 지원 티켓 #151540을 통해 Pocket/Mozilla 보안팀에 공식 후속 조치를 보내며, 2021년 최초 보고를 명시적으로 참조하고 공식 확인을 요청.Zampier Zago → [email protected]
2024-07-04, 13:18 CSTPocket Support (Dayana Galeano): [email protected]으로 리디렉션. "보안 취약점을 보고하시는 것이므로 [email protected]으로 연락하시는 것을 권장합니다."Pocket Support → Zampier Zago
2024-07-10, 21:05연구자가 Mozilla Security([email protected])에 CWE-79(XSS), CWE-200(정보 노출), CWE-693(보호 메커니즘 실패), HTTP 요청/응답 예시, XSS 페이로드 시연, 영향 분석을 포함한 전체 기술 보안 보고서를 제출.Zampier Zago → [email protected]
2024-07-11, 09:32Mozilla Security (Frida) 응답: "Pocket은 우리 웹 버그 바운티 프로그램의 범위를 벗어나며 우리는 심각도가 critical인 보고서만 접수합니다." 개별 HackerOne 제출 요청. 수정 약속 없음.Mozilla Security Team → Zampier Zago
2024-07-24, 19:00Mozilla Privacy Team ([email protected]): 버그 바운티 양식으로 리디렉션. 실질적인 대응 없음.Mozilla Privacy Team → Zampier Zago
2025Mozilla가 서비스 종료 전 Pocket Android의 최종 버전으로 v8.33.0.0을 출시. articleview-mobile.js(95–99행)의 취약한 코드는 동일하며 수정되지 않음. 보안 패치 배포 없음. 킬 스위치나 강제 제거 없음.Mozilla (공개)
2025-07-08Pocket 서비스가 공식적으로 종료됨. 애플리케이션은 사용자 기기에 설치된 상태로 계속 작동.Mozilla (공개)
2026-01-02실제 기기에서 녹화된 동영상 증거: Pocket Android v8.33.0.0이 서비스 종료 후 수개월이 지나도 완전히 작동. 페이월 우회가 여전히 활성 상태임을 확인. 백그라운드 서비스가 실행 중임을 확인. (압축 버전 다운로드 가능; 전체 검증 가능한 메타데이터가 포함된 원본은 요청 시 제공.)Zampier Zago (동영상 녹화)
항목Android v8.33.0.0 (2025)iOS v4.5.2 (~2012)
취약 파일assets/html/j/articleview-mobile.jsmanifest/cache/j/articleview-mobile.js
취약 싱크$(document.body).html(content) L95–99$(document.body).html(content) L97–107
정제없음없음
네이티브 브리지 메커니즘addJavascriptInterface → PocketAndroidArticleInterface (Java)x-ril-cmd: URL 스킴을 UIWebView 델리게이트가 가로챔 (Objective-C)
브리지가 네이티브 코드에 도달예예
백그라운드 자동 렌더링예 — BOOT_COMPLETED 시 DownloadingService아니오 — 사용자가 기사를 열어야 함
사용자 상호작용 필요없음 (0-click)기사 열기 (1-click)
기사 전송HTTPS번들 분석 당시 HTTP 평문 (http://text.getpocket.com/v3beta/mobile) — 원래 배포에서 추가적인 MITM 벡터 (서비스 종료 이후 엔드포인트 오프라인)
WebView 기술최신 Android WebViewUIWebView (iOS 12에서 폐기됨, 2020년부터 App Store에서 허용되지 않음)