FUNFACTOR1/pocket-android-xss-0click-cve
GitHub: FUNFACTOR1/pocket-android-xss-0click-cve
Stars: 0 | Forks: 0
# XSS 0-Click / 0-Day Vulnerability Report
## Cross-Site Scripting (0-Click) Leading to JavaScript Bridge Abuse in Pocket Android
### (CVE-YYYY-NNNN — reservation requested)
**Author:** Ing. Zampier Zago
**Date:** 2026-05-26
**Classification:** Security Vulnerability Analysis — CVE Submission
**Report version:** 3.0 (Final — all dates verified against original email evidence)
## 1. Executive Summary
A DOM-based Cross-Site Scripting (XSS) vulnerability has been confirmed in Pocket Android version 8.33.0.0 (package `com.ideashower.readitlater.pro`), the final release by Mozilla / Read It Later, Inc. before service termination. The vulnerability allows an attacker to inject and execute arbitrary JavaScript in the application's WebView without any user interaction beyond a single "Save to Pocket" action — constituting a **0-click exploit** post-delivery.
The root cause is the unsanitized injection of externally-sourced HTML content directly into the DOM via jQuery's `.html()` method (`$(document.body).html(content)`), in the asset-bundled file `assets/html/j/articleview-mobile.js` (lines 95–99). Content is fetched and rendered automatically in the background by `com.pocket.sdk.offline.DownloadingService` with no user interaction required.
The application also exposes a native Java-to-JavaScript bridge (`PocketAndroidArticleInterface`), registered via `addJavascriptInterface` and confirmed in `classes2.dex`, callable by JavaScript executing within the WebView.
**Vendor disclosure record:** The XSS vulnerability was formally reported to Mozilla Security on **2024-07-10** with CWE-79 classification and technical detail. Mozilla acknowledged receipt on **2024-07-11** and explicitly declined to remediate, declaring Pocket out of scope. Mozilla subsequently released **v8.33.0.0 as the final version before service sunset in 2025** — with the vulnerable code entirely unchanged. Forensic analysis of v8.33.0.0 (2026-02-06) confirms the identical vulnerable call at lines 95–99 of `articleview-mobile.js`.
No patch is available. The product is abandoned. All installed instances remain permanently vulnerable.
| Field | Value |
|---|---|
| Vulnerability type | DOM-Based XSS (0-click) + JavaScript Bridge Abuse |
| CWE | CWE-79, CWE-116 |
| Exploit status | 0-click, 0-day — no patch available; product End-of-Life |
| Vendor response | 2024-07-11 — "Pocket is out of scope" (Frida, Mozilla Security Team) |
| Affected product | Pocket Android v8.33.0.0 (final release) |
| Package ID | `com.ideashower.readitlater.pro` |
| Vendor | Mozilla Corporation / Read It Later, Inc. |
| CVSS v4.0 Score | 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` |
| Severity | CRITICAL |
| First reported to vendor | 2021-04-19 (paywall bypass) |
| XSS formally reported to Mozilla Security | 2024-07-10 |
| Final APK released with vulnerability intact | Final Release (2025) — v8.33.0.0 |
| Post-sunset video evidence | 2026-01-02 |
| Forensic APK analysis | 2026-02-06 |
| Technical re-verification | 2026-05-22 |
| Disclosure timeline | 2021–2026 (5 years) |
## 2. Affected Product
- **Product name:** Pocket — Save. Read. Grow. (Android)
- **Package name:** `com.ideashower.readitlater.pro`
- **Build version:** 8.33.0.0 — **the final release before service sunset**
- **APK analyzed:** `com.ideashower.readitlater.pro_8.33.0.0.apk`
- **Vendor:** Read It Later, Inc. / Mozilla Corporation
- **Google Play URL:** https://play.google.com/store/apps/details?id=com.ideashower.readitlater.pro
- **Service status:** TERMINATED (2025). The application remains installed on millions of devices with no forced uninstall, kill-switch, or security update deployed. Video evidence (2026-01-02) confirms full operation — including paywall bypass and background services — months after official shutdown.
## 3. Vulnerability Details — Issue #1: 0-Click XSS via WebView
### 3.1 Vulnerability Classification
| Field | Value |
|---|---|
| Type | DOM-Based Cross-Site Scripting |
| CWE | CWE-79 — Improper Neutralization of Input During Web Page Generation |
| Secondary CWE | CWE-116 — Improper Encoding or Escaping of Output |
| Attack vector | Remote, 0-click (zero user interaction post-delivery) |
| Privileges required | None |
| Scope | Changed — WebView context crosses trust boundary into native Android bridge |
### 3.2 Vulnerable Component
**File:** `assets/html/j/articleview-mobile.js`
**Lines 95–99:**
// article content was retrieved
loadCallback : function(content)
{
// TODO : 3.0 : If file was missing, handle that correctly
$(document.body).html(content);
**Root cause:** Externally-sourced HTML is passed directly to jQuery 3.4.1's `.html()` method with no sanitization. jQuery 3.4.1 executes embedded `