CVE-2015-4495
Corrige ahora. Ella está bajo explotación confirmada por CISA y tiene exploit funcional público.
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.