
CVE-2026-82090 · CVSS 9.2 CRITICO · XSS memorizzato 0-click in Mozilla Pocket — tutte le versioni (v0 → v8.33.0.0) · forever-day di 18 anni · nessuna patch · pubblicato da MITRE
Autore: Ing. Zampier Zago (FUNFACTOR1) Divisione: Sezione 1 — Dipartimento di Cyber Security, PS 1978 Limited Contatto: [email protected] Web: www.ps1978ltd.it Classificazione: Analisi di vulnerabilità di sicurezza — CVE-2026-82090
Avvertenza sui contenuti a duplice uso: Questo repository contiene un'analisi di vulnerabilità e una Proof of Concept (PoC) per un prodotto End-of-Life (EOL). Le informazioni e il codice forniti sono strettamente destinati a scopi educativi, all'analisi difensiva e alla documentazione ufficiale della CVE. L'autore declina ogni responsabilità per qualsiasi uso improprio di queste informazioni.
https://github.com/user-attachments/assets/e2b0aa46-df64-452b-afbf-fa31dd8c650d
Una vulnerabilità Cross-Site Scripting (XSS) basata su DOM è stata confermata in Pocket Android versione 8.33.0.0 (pacchetto com.ideashower.readitlater.pro), l'ultima release distribuita da Mozilla / Read It Later, Inc. prima della cessazione del servizio nel luglio 2025. La vulnerabilità consente a un attaccante di iniettare ed eseguire JavaScript arbitrario nella WebView dell'applicazione senza alcuna interazione dell'utente oltre a una singola azione "Save to Pocket" — un exploit 0-click successivo alla consegna.
La causa principale è l'iniezione non sanificata di contenuto HTML di provenienza esterna direttamente nel DOM tramite il metodo .html() di jQuery ($(document.body).html(content)), nel file incluso negli asset assets/html/j/articleview-mobile.js (righe 95–99). Il contenuto viene recuperato e renderizzato automaticamente in background da com.pocket.sdk.offline.DownloadingService senza alcuna interazione dell'utente.
L'applicazione espone inoltre un bridge nativo Java-to-JavaScript (PocketAndroidArticleInterface), registrato tramite addJavascriptInterface e confermato in classes2.dex, invocabile dal JavaScript in esecuzione all'interno della WebView.
Registro della divulgazione al fornitore: L'XSS è stato formalmente segnalato a Mozilla Security il 2024-07-10 con classificazione CWE-79 e dettagli tecnici completi. Mozilla ha confermato la ricezione il 2024-07-11 e ha esplicitamente rifiutato di porvi rimedio, dichiarando Pocket fuori ambito. Mozilla ha successivamente rilasciato la v8.33.0.0 nel 2025 con il codice vulnerabile completamente invariato. L'analisi forense della v8.33.0.0 conferma la chiamata vulnerabile identica alle righe 95–99 di articleview-mobile.js.
Discendenza: La stessa identica riga — $(document.body).html(content), in un file con lo stesso nome articleview-mobile.js — è presente nel bundle della controparte iOS ReadItLaterPro.app (Pocket iOS v4.5.2), risalente all'epoca immediatamente precedente al rebranding di Read It Later in Pocket del 17 aprile 2012. La CVE copre tutte le versioni dalla v0 alla v8.33.0.0 — il difetto è stato distribuito in modo continuativo, senza modifiche, per l'intero ciclo di vita del prodotto di 18 anni (vedi §7). La conferma forense a livello di codice tramite il bundle più vecchio disponibile (iOS v4.5.2) data il sink identico ad almeno il 2012.
Non è disponibile alcuna patch. Il prodotto è abbandonato. Tutte le istanze installate rimangono permanentemente vulnerabili.
| Campo | Valore |
|---|---|
| CVE | CVE-2026-82090 — Pubblicato il 2026-08-28 — CNA: MITRE Corporation |
| Tipo di vulnerabilità | XSS basato su DOM (0-click) + Abuso del JavaScript Bridge |
| CWE | CWE-79, CWE-116 |
| Stato dell'exploit | 0-click, 0-day — nessuna patch disponibile; prodotto End-of-Life |
| Risposta del fornitore | 2024-07-11 — "Pocket è fuori ambito" (Frida, Mozilla Security Team) |
| Prodotto interessato | Pocket Android v8.33.0.0 (release finale) |
| ID pacchetto | com.ideashower.readitlater.pro |
| Fornitore | Mozilla Corporation / Read It Later, Inc. |
| Punteggio 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 |
| Gravità | CRITICA |
| Prima segnalazione al fornitore | 2021-04-19 (bypass del paywall) |
| XSS segnalato formalmente a Mozilla Security | 2024-07-10 |
| APK finale rilasciato con la vulnerabilità intatta | 2025 — v8.33.0.0 |
| Dismissione del servizio | 2025-07-08 |
| Discendenza del codice | 18 anni — tutte le versioni (v0 → v8.33.0.0, 2007 → 2025). Conferma forense del codice dal bundle iOS del 2012. |
com.ideashower.readitlater.procom.ideashower.readitlater.pro_8.33.0.0.apkhttps://play.google.com/store/apps/details?id=com.ideashower.readitlater.pro ma l'app non è più disponibile per il download.| Campo | Valore |
|---|---|
| Tipo | Cross-Site Scripting basato su DOM |
| CWE | CWE-79 — Neutralizzazione impropria dell'input durante la generazione di pagine web |
| CWE secondario | CWE-116 — Codifica o escaping improprio dell'output |
| Vettore di attacco | Remoto, 0-click (zero interazione dell'utente dopo la consegna) |
| Privilegi richiesti | Nessuno |
| Ambito | Modificato — il contesto WebView attraversa il confine di fiducia verso il bridge nativo Android |
File: assets/html/j/articleview-mobile.js
Righe 95–99:
// article content was retrieved
loadCallback : function(content)
{
// TODO : 3.0 : If file was missing, handle that correctly
$(document.body).html(content);
Causa principale: HTML di origine esterna viene passato direttamente al metodo .html() di jQuery 3.4.1 senza alcuna sanitizzazione. jQuery 3.4.1 esegue i tag <script> incorporati e i gestori di eventi inline (onerror, onload). Non esiste alcuna chiamata a DOMPurify, sanitize(), escapeHtml() o equivalente in nessun punto del file di 1.836 righe. La variabile content proviene dal livello Java senza filtraggio lato JS.
Il commento // TODO : 3.0 : If file was missing, handle that correctly immediatamente precedente alla chiamata vulnerabile dimostra che il codice non è mai stato rafforzato per la produzione. Questo commento era presente in ogni versione dell'app fino alla release finale v8.33.0.0.
File: assets/html/j/articleview-mobile.js, righe 11–14: