← volver
CVE-2010-0840criticalbajo ataque

CVE-2010-0840

100Vexday Risk Score

Corrige ahora. Ella está bajo explotación confirmada por CISA y tiene exploit funcional público.

ssvc Actcvss 9.8epss 96%
de la publicación al arma258 días
Publicada en NVD1 abr
1ª PoC+258d
metasploit31 mar
CISA KEV+4437d
probabilidad de explotación
96%top 1% de las CVE
explotación observada
CISA + VulnCheck
1 exploit(s) público(s)
Acción exigida por CISAplazo federal: 2022-06-15

Apply updates per vendor instructions.

Resumen

Falha no Java Runtime Environment (Oracle Java SE / Java for Business) que permite a um applet Java malicioso escapar do sandbox de segurança e executar código arbitrário no contexto do usuário, sem autenticação e sem interação além de carregar uma página web. Ficou conhecida como 'Trusted Methods Chaining' e foi amplamente incorporada a kits de exploração automatizados no início dos anos 2010, o que justifica sua presença no catálogo KEV da CISA muito tempo depois da divulgação original.

Detalle técnico

O mecanismo de segurança do JRE (SecurityManager) controla a execução de métodos privilegiados fazendo 'stack walking': para cada chamada a um método que exige privilégio, o runtime percorre a pilha de chamadas e verifica se cada frame pertence a uma classe que possui aquele privilégio. O problema (CWE-863, controle de acesso incorreto) é que essa verificação não trata corretamente o caso em que uma classe não confiável estende uma classe confiável sem sobrescrever o método-alvo: a verificação de pilha encontra a classe pai (confiável) e concede o privilégio, mesmo a invocação originando de código não confiável carregado, por exemplo, via applet. Sami Koivu, pesquisador que reportou a falha via ZDI, descreveu um problema equivalente envolvendo interfaces ('a similar trust issue with interfaces'), abrindo uma segunda via de bypass.

O atacante controla o bytecode do applet/objeto Java malicioso: ele constrói uma hierarquia de classes que abusa dessa lacuna de verificação para encadear chamadas ('trusted methods chaining') até atingir uma API privilegiada da JVM — normalmente algo equivalente a desabilitar o SecurityManager ou obter acesso irrestrito ao sistema de arquivos/processos do host, o que na prática equivale a fugir completamente do sandbox de applets.

A descrição oficial da Oracle no NVD é deliberadamente genérica ('unspecified vulnerability'); o vetor técnico específico só é conhecido porque o pesquisador (Sami Koivu, via ZDI-10-056) publicou a análise, não porque a Oracle confirmou o mecanismo publicamente.

Cómo se explota

Vetor client-side: uma página web hospeda um applet Java malicioso; a vítima só precisa carregá-la com o plugin Java habilitado no navegador para o exploit rodar — não há necessidade de autenticação, e a interação exigida do usuário é mínima (nas configurações de segurança da época, muitos ambientes executavam applets não assinados sem prompt explícito). A ZDI classificou a exploração como de baixa complexidade e sem necessidade de autenticação (AV:N/AC:L/Au:N).

A falha teve PoC pública e módulo Metasploit, e o padrão de exploração (escape de sandbox Java via applet) foi amplamente absorvido por kits de exploração automatizados de infecção drive-by no início dos anos 2010, o que explica sua listagem no catálogo KEV da CISA muito depois de 2010: o registro reflete evidência de exploração ativa continuada, não um ataque pontual isolado.

O resultado final de exploração bem-sucedida é execução de código arbitrário fora do sandbox do applet, no contexto do usuário que executa a JVM — comprometimento completo da estação de trabalho a partir de uma visita a página maliciosa, sem qualquer pré-condição de configuração exótica além de ter o plugin Java ativo no navegador.

Versiones

Afectadas
Segundo a Oracle (CPU de março de 2010): Java SE e Java for Business 6 Update 18 e anteriores, 5.0 Update 23 e anteriores, 1.4.2_25 e anteriores. Distribuições derivadas seguiram numeração própria — por exemplo, builds HP-UX JDK/JRE 6.0.06 ou anterior, 5.0.19 ou anterior, e SDK/JRE 1.4.2.24 ou anterior foram listadas como vulneráveis pela HP.
Corregidas en
Não há, nas fontes consultadas, confirmação explícita do número de 'Update' da Oracle que corrigiu a falha upstream. Fornecedores que redistribuem o JRE confirmaram correção em builds posteriores: HP-UX JDK/JRE 6.0.07 ou superior, 5.0.20 ou superior, SDK/JRE 1.4.2.25 ou superior (bulletin de junho de 2010); Apple e openSUSE publicaram atualizações equivalentes entre abril e setembro de 2010 conforme os respectivos advisories.

Cómo protegerse

A correção definitiva é atualizar o JRE/JDK para além das versões listadas como vulneráveis pela Oracle (6 Update 18, 5.0 Update 23 e 1.4.2_25, conforme o CPU de março de 2010). As fontes consultadas confirmam builds corrigidas por fornecedores que redistribuem JRE em datas posteriores: a HP, em bulletin de junho de 2010, lista como corrigidas as versões HP-UX JDK/JRE 6.0.07, 5.0.20 e SDK/JRE 1.4.2.25 (numeração de build própria da HP, não necessariamente idêntica à nomenclatura 'Update' da Oracle); Apple e openSUSE também publicaram atualizações de segurança para seus pacotes Java entre abril e setembro de 2010. Não há, nas fontes consultadas, confirmação explícita do número de 'Update' Oracle upstream que introduziu a correção — qualquer versão anterior a essas atualizações de maio/junho de 2010 deve ser tratada como vulnerável.

Se a atualização não for viável de imediato, o controle compensatório real é desabilitar ou desinstalar o plugin Java do navegador (ou bloquear a execução de applets/Java Web Start), já que o vetor primário é drive-by via applet em página web — isso neutraliza a exploração remota sem depender de patch, ao custo de quebrar qualquer aplicação legítima que dependa de applets.

Manter apenas antivírus atualizado ou confiar no sandbox padrão do navegador não mitiga a falha: o próprio mecanismo de sandboxing do SecurityManager é o que está sendo contornado pelo exploit, então soluções que assumem que o sandbox funciona não detectam nem bloqueiam o ataque.

Cómo detectar

Não há assinatura de rede única e confiável: o exploit é entregue como bytecode Java (classe/applet), frequentemente ofuscado e variando por kit de exploração, dentro de payloads HTTP legítimos de arquivos .jar/.class. Em logs de proxy web, procurar downloads de .jar/.class hospedados em domínios recém-registrados ou incomuns seguidos de tráfego de saída atípico originado do host. Em endpoint, o indicador mais confiável é comportamental: o processo java.exe/javaw.exe gerando processos filhos inesperados (interpretadores de comando, downloaders, binários desconhecidos) pouco depois de uma sessão de navegação — padrão característico de exploração bem-sucedida de exploits Java client-side da era dos kits de exploração automatizados.

Investigado y redactado con IA a partir del advisory del fabricante y análisis públicos, con las fuentes citadas. Verifica siempre la versión corregida en el advisory oficial antes de actuar.
Unspecified vulnerability in the Java Runtime Environment component in Oracle Java SE and Java for Business 6 Update 18, 5.0 Update 23, and 1.4.2_25 allows remote attackers to affect confidentiality, integrity, and availability via unknown vectors. NOTE: the previous information was obtained from the March 2010 CPU. Oracle has not commented on claims from a reliable researcher that this is related to improper checks when executing privileged methods in the Java Runtime Environment (JRE), which allows attackers to execute arbitrary code via (1) an untrusted object that extends the trusted class but has not modified a certain method, or (2) "a similar trust issue with interfaces," aka "Trusted Methods Chaining Remote Code Execution Vulnerability."
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Productos afectados
n/a · n/a
⚠ Recursos públicos, para evaluar la exposición de sistemas que controlas o estás autorizado a probar. Prueba solo con autorización.