← back
CVE-2015-4495highunder attackCWE-346

CVE-2015-4495

98Vexday Risk Score

Patch now. It under exploitation confirmed by CISA and has a working public exploit.

ssvc Actcvss 8.8epss 69%
from disclosure to weapon2 days
Published on NVDAug 8
1st PoC+2d
CISA KEV+2482d
exploitation probability
69%top 1% of all CVEs
observed exploitation
yesCISA + VulnCheck
4 public exploit(s)
Action required by CISAfederal deadline: 2022-06-15

Apply updates per vendor instructions.

Summary

Falha na engine XPConnect do Firefox permite que JavaScript malicioso, executado no contexto de uma página web, obtenha acesso a um 'setter' nativo (o setter de location de uma janela privilegiada) através do visualizador de PDF embutido (PDF.js). Isso quebra a Same Origin Policy e permite ler arquivos locais arbitrários — sem execução de código, mas com exfiltração de segredos como chaves SSH, histórico de shell e credenciais de clientes FTP. Importa porque foi explorada in-the-wild antes da correção, via anúncio malicioso veiculado em site de notícias russo, com upload dos arquivos roubados para um servidor na Ucrânia.

Technical detail

A causa raiz (CWE-346, violação de origem confiável / bypass de mesma origem; também relacionado a CWE-668, exposição de recurso a esfera de controle incorreta) está na interação entre o mecanismo de isolamento de contexto JavaScript do Firefox e o PDF Viewer (PDF.js), que roda como código privilegiado dentro do navegador. O pesquisador Cody Crews (Bugzilla 1178058) documentou a cadeia: folhas de estilo carregadas via C++ para o pretty-print de XML ficam acessíveis por document.styleSheets, mesmo sem aparecer em document.childNodes. A partir dessas referências, um atacante alcança o contexto de execução XBL e, subindo a cadeia de protótipos até Object, usa o método nativo __lookupSetter__ (equivalente a Object.getOwnPropertyDescriptor(win, 'location').set) para obter o setter nativo de 'location' de uma janela à qual não deveria ter acesso.

How it’s exploited

Com o setter de location em mãos, o atacante o aplica sobre a janela do PDF Viewer e injeta uma URI javascript: nesse contexto — que herda privilégios elevados por fazer parte do PDF.js embutido. A partir daí, o código injetado carrega um recurso local via esquema resource://, contexto que tem permissão de leitura de arquivo, e o conteúdo carregado fica acessível ao script do atacante. Não há execução arbitrária de código nativo: o ganho é leitura de arquivo e potencial escalonamento de privilégio dentro do próprio browser (acesso a janelas como about:home).

Versions

Affected
Firefox anterior a 39.0.3; Firefox ESR 38.x anterior a 38.1.1; Firefox OS anterior a 2.2.
Fixed in
Firefox 39.0.3; Firefox ESR 38.1.1; Firefox OS 2.2. Distribuições Linux corrigiram via pacotes baseados nessas versões (ex.: RHSA-2015:1581 trazendo Firefox 38.1.1 ESR).

How to protect

Atualizar para Firefox 39.0.3, Firefox ESR 38.1.1 ou Firefox OS 2.2 corrige a falha — a correção removeu o registro do PlayPreview do PDF Viewer e ajustou XPConnect para não converter um 'expanded principal' herdando o principal do carregamento atual, entre outros patches (bugs 1178058 e 1179262). Distribuições Linux empacotaram o mesmo fix: RHEL via RHSA-2015:1581 (pacotes Firefox baseados em 38.1.1 ESR) e openSUSE via os avisos listados.

How to detect

Segundo o próprio blog de segurança da Mozilla, o exploit observado 'não deixa rastro de que foi executado na máquina local' — não há artefato confiável de disco ou log local para confirmar exploração pós-fato. O único sinal prático é de rede/publicidade: consumo de anúncio malicioso servido por rede de ads em site legítimo, seguido de conexão de upload de arquivos para um servidor então identificado como hospedado na Ucrânia; não há IOC (domínio/IP) publicado de forma persistente para caça retroativa. Bloqueadores de anúncio podem ter impedido a entrega do payload em alguns casos, mas isso é incidental, não uma defesa garantida.

Researched and written with AI from the vendor advisory and public analysis, with the sources above. Always confirm the fixed version in the official advisory before acting.
The PDF reader in Mozilla Firefox before 39.0.3, Firefox ESR 38.x before 38.1.1, and Firefox OS before 2.2 allows remote attackers to bypass the Same Origin Policy, and read arbitrary files or gain privileges, via vectors involving crafted JavaScript code and a native setter, as exploited in the wild in August 2015.
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Affected products
n/a · n/a
⚠ Public resources, to assess the exposure of systems you control or are authorized to test. Test only with authorization.