
CVE-2026-82090 · CVSS 9.2 CRÍTICO · XSS armazenado de 0 cliques no Mozilla Pocket — todas as versões (v0 → v8.33.0.0) · forever-day de 18 anos · sem patch · publicado pelo MITRE
Autor: Ing. Zampier Zago (FUNFACTOR1) Divisão: Seção 1 — Departamento de Segurança Cibernética, PS 1978 Limited Contato: [email protected] Web: www.ps1978ltd.it Classificação: Análise de Vulnerabilidade de Segurança — CVE-2026-82090
Aviso de Conteúdo de Uso Duplo: Este repositório contém uma análise de vulnerabilidade e uma Prova de Conceito (PoC) para um produto em Fim de Vida (EOL). As informações e o código fornecidos destinam-se estritamente a fins educacionais, análise defensiva e documentação oficial de CVE. O autor não se responsabiliza por qualquer uso indevido dessas informações.
https://github.com/user-attachments/assets/e2b0aa46-df64-452b-afbf-fa31dd8c650d
Uma vulnerabilidade de Cross-Site Scripting (XSS) baseada em DOM foi confirmada no Pocket Android versão 8.33.0.0 (pacote com.ideashower.readitlater.pro), a versão final distribuída pela Mozilla / Read It Later, Inc. antes do encerramento do serviço em julho de 2025. A vulnerabilidade permite que um atacante injete e execute JavaScript arbitrário no WebView do aplicativo sem qualquer interação do usuário além de uma única ação "Salvar no Pocket" — um exploit 0-click pós-entrega.
A causa raiz é a injeção não sanitizada de conteúdo HTML de origem externa diretamente no DOM através do método .html() do jQuery ($(document.body).html(content)), no arquivo empacotado nos assets assets/html/j/articleview-mobile.js (linhas 95–99). O conteúdo é obtido e renderizado automaticamente em segundo plano pelo com.pocket.sdk.offline.DownloadingService sem exigir interação do usuário.
O aplicativo também expõe uma ponte nativa Java-para-JavaScript (PocketAndroidArticleInterface), registrada via addJavascriptInterface e confirmada em classes2.dex, invocável por JavaScript executado dentro do WebView.
Registro de divulgação ao fornecedor: O XSS foi formalmente reportado à Mozilla Security em 2024-07-10 com classificação CWE-79 e detalhamento técnico completo. A Mozilla confirmou o recebimento em 2024-07-11 e recusou explicitamente a correção, declarando o Pocket fora do escopo. A Mozilla subsequentemente lançou a v8.33.0.0 em 2025 com o código vulnerável completamente inalterado. A análise forense da v8.33.0.0 confirma a chamada vulnerável idêntica nas linhas 95–99 de articleview-mobile.js.
Linhagem: A mesma linha idêntica — $(document.body).html(content), em um arquivo de mesmo nome articleview-mobile.js — está presente no bundle correspondente do iOS ReadItLaterPro.app (Pocket iOS v4.5.2), datando da era imediatamente anterior ao rebranding de 17 de abril de 2012 do Read It Later como Pocket. O CVE abrange todas as versões de v0 até v8.33.0.0 — o defeito foi continuamente distribuído, sem modificação, ao longo de toda a vida útil de 18 anos do produto (ver §7). A confirmação forense em nível de código através do bundle mais antigo disponível (iOS v4.5.2) data o sink idêntico em pelo menos 2012.
Nenhum patch está disponível. O produto está abandonado. Todas as instâncias instaladas permanecem permanentemente vulneráveis.
com.ideashower.readitlater.procom.ideashower.readitlater.pro_8.33.0.0.apkhttps://play.google.com/store/apps/details?id=com.ideashower.readitlater.pro, mas o aplicativo não está mais disponível para download.Arquivo: assets/html/j/articleview-mobile.js
Linhas 95–99:```javascript
// article content was retrieved
loadCallback : function(content)
{
// TODO : 3.0 : If file was missing, handle that correctly
$(document.body).html(content);
**Causa raiz:** HTML de origem externa é passado diretamente para o método `.html()` do jQuery 3.4.1 sem qualquer sanitização. O jQuery 3.4.1 executa tags `<script>` incorporadas e manipuladores de eventos inline (`onerror`, `onload`). Não existe qualquer chamada a `DOMPurify`, `sanitize()`, `escapeHtml()` ou equivalente em qualquer parte do ficheiro de 1.836 linhas. A variável `content` tem origem na camada Java sem filtragem do lado do JS.
O comentário `// TODO : 3.0 : If file was missing, handle that correctly` imediatamente antes da chamada vulnerável demonstra que o código nunca foi preparado para produção. Este comentário esteve presente em todas as versões da aplicação até à versão final v8.33.0.0.
### 3.3 Evidência da Ponte JavaScript
**Ficheiro:** `assets/html/j/articleview-mobile.js`, linhas 11–14:```javascript
// Android comm object
if (typeof PocketAndroidArticleInterface == 'undefined')
PocketAndroidArticleInterface = false;
isAndroid = !!PocketAndroidArticleInterface;
Confirmado via análise de strings DEX (classes2.dex):```
PocketAndroidArticleInterface
setJavaScriptEnabled
addJavascriptInterface
Métodos de bridge confirmados a partir de call sites JS: `onReady()`, `onError()`, `onScrollChanged()`, `setFrozen()`, `placePageBlockers()`, `toggleFullscreen()`, `setViewType()`, `scrollToPosition()`, `onTextSearch()`, `onRequestedHighlightPatch()`, `updatePageSwipingDisabledAreas()`, `getHorizontalMargin()`, `getMaxMediaHeight()`, `isConnected()`.
### 3.4 Serviço de Sincronização em Segundo Plano
**AndroidManifest.xml** confirma:```xml
<service
android:name="com.pocket.sdk.offline.DownloadingService"
android:permission="android.permission.FOREGROUND_SERVICE_DATA_SYNC">
Com o receptor BOOT_COMPLETED registrado. O serviço busca e renderiza o conteúdo do artigo automaticamente na inicialização do dispositivo e na disponibilidade da rede, acionando loadCallback em uma WebView oculta sem qualquer interação do usuário.
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.
## 4. Prova de Conceito```html
<!DOCTYPE html>
<html>
<body>
</body>
</html>
Passos para reproduzir:
DownloadingService busca o conteúdo automaticamente.loadCallback → $(document.body).html(content) → o payload é disparado.Nota sobre o escopo de plataforma do PoC: A prova de conceito executável acima tem como alvo a build Android, que é o caso de 0 cliques (o
DownloadingServiceem segundo plano). A contraparte iOS (Pocket iOS v4.5.2 /ReadItLaterPro.app) compartilha o sinkloadCallback()vulnerável idêntico em um arquivo de mesmo nome, mas alcança o código nativo através de um mecanismo de bridge diferente (o esquema de URLx-ril-cmd:interceptado pelo delegate doUIWebView) e degrada para um caso de 1 clique (o usuário precisa abrir um artigo salvo). A evidência do iOS é estabelecida por análise estática do bundle do aplicativo distribuído e está documentada integralmente emiOS_forensic_analysis_v4.5.2.mdneste repositório. Nenhum PoC iOS executável separado é publicado; a análise do código-base compartilhado demonstra a equivalência do sink entre ambas as plataformas.
Vetor completo: 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
Pontuação Base: 9.2 — CRÍTICA
Todas as datas verificadas contra evidências originais de e-mail (POCKET_MAIL.pdf, POCKET_MAIL1.pdf, CRONO2.pdf).
O registro CVE confirma todas as versões da v0 até a v8.33.0.0 como afetadas. O defeito não é uma regressão — é a arquitetura original do pipeline de renderização de artigos, presente desde que o Read It Later foi lançado como extensão do Firefox em 2007, transportado para os aplicativos móveis (Android a partir de 2011, iOS antes), e distribuído sem alterações até o lançamento final do Android em 2025. A confirmação forense em nível de código do sink vulnerável idêntico se estende até 2012 através do bundle mais antigo disponível (iOS v4.5.2).
ReadItLaterPro.app)O bundle do aplicativo iOS é chamado ReadItLaterPro.app — o nome do produto pré-rebranding usado pela Read It Later, Inc. antes de a empresa renomear publicamente o aplicativo para Pocket em 17 de abril de 2012. O bundle tem como alvo iOS 5.0+, situando o código-base no período de 2011 ao início de 2012.
A análise forense deste bundle iOS confirma um padrão vulnerável idêntico caractere por caractere em um arquivo com o mesmo nome da versão Android. A análise forense completa do iOS — sink vulnerável, pipeline de conteúdo, bridge nativa, inventário de telemetria e referências de evidências — está publicada neste repositório como iOS_forensic_analysis_v4.5.2.md.
Arquivo: manifest/cache/j/articleview-mobile.js (iOS) — mesmo nome de arquivo que assets/html/j/articleview-mobile.js (Android)
Linhas 97–107 (iOS):```javascript // article content was retrieved loadCallback : function(content) { // TODO : 3.0 : If file was missing, handle that correctly
$(document.body).html(content); // ← IDENTICAL TO ANDROID
// Add empty content to bottom in case an image is at bottom.
$(document.body).append($('<br> '))
this.onArticleReady();
},
O mesmo comentário `// TODO : 3.0` está presente em ambas as plataformas — exatamente o mesmo placeholder, nunca retomado, ao longo de ~13 anos.
### 7.2 Base de Código Compartilhada Confirmada
O bundle do iOS contém lógica explícita de ramificação por plataforma que prova que a Read It Later, Inc. / Mozilla distribuiu **uma única base de código JavaScript compartilhada** para ambas as plataformas:```javascript
var isAndroid;
if (typeof ReadItLaterJSMethods == 'undefined')
ReadItLaterJSMethods = false;
isAndroid = !!ReadItLaterJSMethods;
Quando isAndroid === false, o caminho da bridge iOS é executado; quando true, o caminho Android é executado. Ambos os caminhos convergem no mesmo loadCallback() vulnerável, sem sanitização em nenhuma das plataformas.
Nota sobre a linha do tempo do UIWebView: A Apple introduziu o WKWebView como sucessor no iOS 8 (2014). O UIWebView foi formalmente descontinuado no iOS 12 (2018). A App Store deixou de aceitar novos apps que usavam UIWebView em abril de 2020 e atualizações de apps existentes em dezembro de 2020. O UIWebView nunca foi formalmente removido do SDK — ele permanece presente, mas não é mais aceito para submissões à App Store. Suas fraquezas de segurança relevantes aqui são que ele roda in-process (sem processo WebContent separado), não tem suporte a Content Security Policy e executa JavaScript injetado de forma síncrona na thread principal via stringByEvaluatingJavaScriptFromString:.
A Read It Later, Inc. — e subsequentemente a Mozilla após a aquisição — distribuiu o mesmo padrão de injeção .html() sem sanitização, em um arquivo de mesmo nome, com o mesmo comentário TODO não resolvido, ao longo de todo o ciclo de vida de 18 anos do produto (2007 → 2025), confirmado pela MITRE como afetando todas as versões da v0 até a v8.33.0.0.
Isso inclui o período após o relatório formal de CWE-79 de 2024-07-10. Pelo menos uma linha adicional de lançamentos Android foi produzida em 2024–2025 (culminando na v8.33.0.0) com o código vulnerável preservado literalmente.
O leitor de artigos do Pocket injeta HTML bruto de origem externa no DOM via $(document.body).html(content) sem qualquer sanitização. O comentário // TODO na linha 95 confirma que o código nunca foi endurecido para produção. Essa escolha arquitetural esteve presente desde as primeiras builds móveis (ver §7) até o lançamento final do Android v8.33.0.0 — inalterada ao longo de aproximadamente 13 anos e de pelo menos uma transição completa de propriedade, e inalterada após um relatório formal de segurança em julho de 2024.
Para a linha do tempo da resposta do fornecedor pós-2024 e a sequência precisa entre o relatório formal de CWE-79, a recusa da Mozilla e o lançamento final sem correção, consulte §6.
Não existem mitigações do fornecedor nem estão previstas.
Para usuários finais: Desinstale com.ideashower.readitlater.pro imediatamente. Revogue as concessões do Google OAuth.
Para a comunidade de segurança: Este caso se qualifica como uma vulnerabilidade "Forever-Day" — confirmada, sem correção, em software abandonado sem caminho de remediação disponível. Adequado para classificação sob a tag Unsupported When Assigned conforme a política de EOL da MITRE.
APK analisado: com.ideashower.readitlater.pro_8.33.0.0.apk
Ferramentas: Android Studio, DEX2JAR, revisão manual de código, parsing binário de AXML (UTF-16LE), inspeção de schema Protocol Buffer, extração de strings DEX. Bundle iOS inspecionado via extração de strings e revisão do código-fonte do pipeline JavaScript embutido.
Cadeia de evidências:```
APK acquired └── com.ideashower.readitlater.pro_8.33.0.0.apk
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
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
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
Dynamic evidence └── Video recording 2026-01-02: app fully operational post-sunset on real device
---
## 11. Registro CVE
**ID CVE:** CVE-2026-82090 — Publicado em 2026-08-28 pela MITRE Corporation (CNA). Originalmente submetido como CAN-2026-2030598 via cveform.mitre.org.
**Fornecedor:** Mozilla Corporation
**Produto:** Pocket (Android)
**Versão:** 8.33.0.0
**Tipo de Vulnerabilidade:** Cross-Site Scripting (XSS)
**Descrição (para 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.
Informações Adicionais / Comunicação com o Fornecedor:``` 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.
---
## 12. Referências
- CVE-2026-82090 (registro oficial): 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
- Especificação CVSS v4.0: https://www.first.org/cvss/v4.0/specification-document
- Processo de EOL do MITRE CVE: https://www.cve.org/Resources/General/End-of-Life-EOL-Assignment-Process.pdf
- Regras Operacionais do CNA do MITRE: https://www.cve.org/resourcessupport/allresources/cnarules
- Comportamento do `.html()` do jQuery: https://api.jquery.com/html/
- `addJavascriptInterface` do Android: https://developer.android.com/reference/android/webkit/WebView#addJavascriptInterface(java.lang.Object,%20java.lang.String)
- Apple — descontinuação do `UIWebView`: https://developer.apple.com/documentation/uikit/uiwebview
- Apple — Atualização de Apps que Usam Web Views (prazos do UIWebView na App Store): https://developer.apple.com/news/?id=12232019b
- Read It Later → rebranding para Pocket (17 de abril de 2012): https://blog.getpocket.com/2012/04/introducing-the-all-new-read-it-later-now-called-pocket/
---
*Ing. Zampier Zago (FUNFACTOR1) — Seção 1 — Departamento de Segurança Cibernética, PS 1978 Limited — [email protected] — [www.ps1978ltd.it](http://www.ps1978ltd.it) — https://github.com/FUNFACTOR1*
| Campo | Valor |
|---|
| CVE | CVE-2026-82090 — Publicado em 2026-08-28 — CNA: MITRE Corporation |
| Tipo de vulnerabilidade | XSS Baseado em DOM (0-click) + Abuso de Ponte JavaScript |
| CWE | CWE-79, CWE-116 |
| Status do exploit | 0-click, 0-day — nenhum patch disponível; produto em Fim de Vida |
| Resposta do fornecedor | 2024-07-11 — "Pocket está fora do escopo" (Frida, Mozilla Security Team) |
| Produto afetado | Pocket Android v8.33.0.0 (versão final) |
| ID do pacote | com.ideashower.readitlater.pro |
| Fornecedor | Mozilla Corporation / Read It Later, Inc. |
| Pontuação 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 |
| Severidade | CRÍTICA |
| Primeiro reporte ao fornecedor | 2021-04-19 (bypass de paywall) |
| XSS formalmente reportado à Mozilla Security | 2024-07-10 |
| APK final lançado com a vulnerabilidade intacta | 2025 — v8.33.0.0 |
| Encerramento do serviço | 2025-07-08 |
| Linhagem do código | 18 anos — todas as versões (v0 → v8.33.0.0, 2007 → 2025). Confirmação forense de código a partir do bundle iOS de 2012. |
| Campo | Valor |
|---|
| Tipo | Cross-Site Scripting Baseado em DOM |
| CWE | CWE-79 — Neutralização Imprópria de Entrada Durante a Geração de Página Web |
| CWE Secundário | CWE-116 — Codificação ou Escape Impróprio de Saída |
| Vetor de ataque | Remoto, 0-click (zero interação do usuário pós-entrega) |
| Privilégios necessários | Nenhum |
| Escopo | Alterado — o contexto do WebView cruza a fronteira de confiança para a ponte nativa do Android |
| Métrica | Valor | Justificativa |
|---|
| Vetor de Ataque (AV) | Rede (N) | Payload entregue e executado via internet |
| Complexidade de Ataque (AC) | Baixa (L) | Sem condições de corrida ou proteções de memória a contornar |
| Requisitos de Ataque (AT) | Presentes (P) | O usuário precisa ter salvo pelo menos um artigo antes do ataque para disparar a sincronização em segundo plano |
| Privilégios Necessários (PR) | Nenhum (N) | Nenhuma autenticação necessária no alvo |
| Interação do Usuário (UI) | Nenhuma (N) | Execução automática via serviço em segundo plano após o salvamento |
| Confidencialidade da Vuln. (VC) | Alta (H) | Tokens de sessão, banco de dados de artigos, hábitos de leitura expostos |
| Integridade da Vuln. (VI) | Alta (H) | JS pode alterar o estado do app via métodos da bridge nativa |
| Disponibilidade da Vuln. (VA) | Alta (H) | A disponibilidade do serviço em segundo plano pode ser interrompida |
| Subsequente (SC / SI / SA) | Nenhum (N) | Impacto demonstrado contido dentro do Android Application Sandbox / limite de confiança da WebView. Nenhum pivô para um sistema subsequente separado foi comprovado; SC/SI/SA definidos conservadoramente como Nenhum para evitar exagero |
| Nível de Remediação (RL) | Indisponível (U) | Produto abandonado; nenhum patch previsto |
| Data | Evento | Fonte / Partes |
|---|
| 2021-04-19 | Relatório inicial ao Suporte do Pocket: bypass de paywall permitindo contornar controles de acesso de publishers em sites de notícias italianos. Vídeo, capturas de tela e URLs de exemplo fornecidos. | Zampier Zago → [email protected] |
| 2021-04-22 | Resposta do Suporte do Pocket: solicitou URLs específicas e capturas de tela. | Suporte do Pocket (Manuel) → Zampier Zago |
| 2021-05-17 | Pesquisador forneceu duas URLs de PoC ativas demonstrando o bypass completo de conteúdo. | Zampier Zago → [email protected] |
| 2021–2024 | Nenhuma ação adicional do fornecedor. Posição inicial do fornecedor: "não é culpa do Pocket." O pesquisador duvidou de sua própria descoberta por três anos dada a rejeição definitiva. | — |
| ~junho de 2024 | Pesquisador realiza análise do APK, identifica XSS na WebView (articleview-mobile.js), vetor de abuso da bridge JavaScript, CWE-79 / CWE-200 / CWE-693. | Zampier Zago |
| 2024-05-31 | Caso formalmente reaberto. Confirmação pública de terceiros do bypass de paywall idêntico (bardeen.ai). Pesquisador referencia o relatório original de 2021. | Zampier Zago → [email protected] |
| 2024-06-06 | Suporte do Pocket (Alejandra Galo): escalado internamente, nenhuma correção comprometida. "Nosso Parser não foi projetado para contornar tais Paywalls." | Suporte do Pocket → Zampier Zago |
| 2024-07-02 | Pesquisador envia acompanhamento formal à Equipe de Segurança Pocket/Mozilla via ticket de suporte #151540, referenciando explicitamente o primeiro relatório de 2021 e solicitando reconhecimento formal. | Zampier Zago → [email protected] |
| 2024-07-04, 13:18 CST | Suporte do Pocket (Dayana Galeano): redireciona para [email protected]. "Como você está relatando uma vulnerabilidade de segurança, eu encorajaria você a entrar em contato com [email protected]." | Suporte do Pocket → Zampier Zago |
| 2024-07-10, 21:05 | Pesquisador envia relatório técnico de segurança completo à Mozilla Security ([email protected]) incluindo CWE-79 (XSS), CWE-200 (exposição de informações), CWE-693 (falha de mecanismo de proteção), exemplos de requisição/resposta HTTP, demonstração de payload XSS e análise de impacto. | Zampier Zago → [email protected] |
| 2024-07-11, 09:32 | Resposta da Mozilla Security (Frida): "O Pocket está fora do escopo do nosso programa de bug bounty web e só aceitamos relatórios com severidade crítica." Solicita submissões individuais no HackerOne. Nenhuma correção comprometida. | Equipe de Segurança da Mozilla → Zampier Zago |
| 2024-07-24, 19:00 | Equipe de Privacidade da Mozilla ([email protected]): redireciona para o formulário de bug bounty. Nenhum engajamento substantivo. | Equipe de Privacidade da Mozilla → Zampier Zago |
| 2025 | Mozilla lança a v8.33.0.0 como a versão final do Pocket Android antes do encerramento do serviço. O código vulnerável em articleview-mobile.js (linhas 95–99) está idêntico e não modificado. Nenhum patch de segurança implantado. Nenhum kill-switch ou desinstalação forçada. | Mozilla (público) |
| 2025-07-08 | Serviço do Pocket oficialmente encerrado. O aplicativo permanece instalado e operacional nos dispositivos dos usuários. | Mozilla (público) |
| 2026-01-02 | Evidência em vídeo gravada em dispositivo real: Pocket Android v8.33.0.0 totalmente operacional meses após o encerramento do serviço. Bypass de paywall confirmado ativo. Serviços em segundo plano confirmados em execução. (Versão comprimida disponível para download; original com metadados completos verificáveis disponível sob solicitação.) | Zampier Zago (gravação em vídeo) |
| Aspecto | Android v8.33.0.0 (2025) | iOS v4.5.2 (~2012) |
|---|
| Arquivo vulnerável | assets/html/j/articleview-mobile.js | manifest/cache/j/articleview-mobile.js |
| Sink vulnerável | $(document.body).html(content) L95–99 | $(document.body).html(content) L97–107 |
| Sanitização | Nenhuma | Nenhuma |
| Mecanismo de bridge nativa | addJavascriptInterface → PocketAndroidArticleInterface (Java) | esquema de URL x-ril-cmd: interceptado pelo delegate do UIWebView (Objective-C) |
| Bridge alcança código nativo | Sim | Sim |
| Auto-renderização em segundo plano | Sim — DownloadingService em BOOT_COMPLETED | Não — o artigo precisa ser aberto pelo usuário |
| Interação do usuário necessária | Nenhuma (0-click) | Abrir artigo (1-click) |
| Transporte do artigo | HTTPS | HTTP em texto claro (http://text.getpocket.com/v3beta/mobile) no momento da análise do bundle — vetor MITM adicional na implantação original (endpoint offline desde o encerramento do serviço) |
| Tecnologia WebView | WebView moderno do Android | UIWebView (descontinuado no iOS 12; não aceito pela App Store desde 2020) |