CVE-2015-4495
Corrige ahora. Ella está bajo explotación confirmada por CISA y tiene exploit funcional público.
Declaraciones oficiales de los fabricantes en formato CSAF/VEX: si su producto está afectado, ya corregido o descartado — y por qué. Es afirmación del fabricante, no juicio de Vexday.
Apply updates per vendor instructions.
Resumen
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.
Detalle técnico
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.
Cómo se explota
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).
Versiones
Cómo protegerse
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.
Cómo detectar
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.