← voltar
CVE-2016-3427criticalsob ataqueCWE-284

CVE-2016-3427

80Vexday Risk Score

Priorize a correção. Ela está sob exploração confirmada pelo CISA.

ssvc Actcvss 9.8epss 92%
da publicação à arma
Publicada no NVD21 de abr.
CISA KEV+2577d
probabilidade de exploração
92%top 1% das CVEs
exploração observada
simCISA + VulnCheck
Ação exigida pela CISAprazo federal: 2023-06-02

Apply updates per vendor instructions.

Resumo

Falha de desserialização insegura no componente JMX do Java SE (RMI server), que permite a um atacante remoto sem autenticação comprometer totalmente confidencialidade, integridade e disponibilidade de qualquer aplicação que exponha uma porta JMX RMI acessível pela rede. O impacto real depende inteiramente de o JMX estar exposto externamente — a maioria dos deployments (ex.: Apache Cassandra) vincula JMX apenas a localhost por padrão, o que neutraliza o vetor remoto.

Detalhamento técnico

A causa raiz está na implementação do servidor RMI usado pelo componente JMX do JDK/JRE: ao desserializar as credenciais de autenticação recebidas durante o handshake de conexão JMX, o código não restringia quais classes Java podiam ser instanciadas a partir do stream serializado. Isso é uma instância clássica de desserialização insegura (CWE-502), na mesma família de falhas que geraram a onda de vulnerabilidades ligadas a gadget chains (commons-collections e afins) em 2015-2016. O ponto exato corrigido no OpenJDK é identificado internamente como JDK-8144430, descrito pelos mantenedores como 'unrestricted deserialization of authentication credentials' no subsistema JMX.

O atacante controla o byte stream serializado enviado ao endpoint RMI/JMX durante a etapa de autenticação. Se houver no classpath da aplicação alguma classe explorável (gadget) capaz de executar código arbitrário durante a desserialização — algo comum em stacks Java corporativas que carregam bibliotecas como commons-collections — o resultado prático é execução remota de código, não apenas negação de serviço ou leitura de dados, apesar da descrição oficial da Oracle ser genérica ('unspecified vulnerability').

A falha não exige que o atacante conheça credenciais JMX válidas: o problema ocorre na fase de tratamento das credenciais recebidas, antes da validação bem-sucedida. Isso explica o vetor CVSS AV:N/PR:N/UI:N — não é necessário privilégio nem interação do usuário, apenas alcançar a porta RMI/JMX exposta.

A vulnerabilidade afeta o runtime Java em si, não uma aplicação específica; por isso qualquer software Java que habilite JMX remoto (com.sun.management.jmxremote) sobre uma JVM vulnerável herda o problema. O aviso da Apache Cassandra é o exemplo documentado mais claro disso: o projeto não corrigiu código próprio, apenas alertou os usuários de que a falha estava na JVM subjacente e que a mitigação prática, dado o binding padrão local do JMX, era baixa urgência para a maioria dos ambientes.

Como é explorada

O vetor de exploração é rede: o atacante precisa alcançar a porta JMX RMI da aplicação (a porta de registro configurada, normalmente acompanhada por uma porta RMI dinâmica secundária usada pelo protocolo). Não é necessária autenticação prévia nem interação de usuário — a falha está no próprio processamento das credenciais de autenticação enviadas na conexão. Isso torna o pré-requisito prático mais relevante o oposto do que a manchete sugere: a condição decisiva não é 'sem autenticação', é 'JMX exposto para fora de localhost/rede confiável'.

Na prática, a maioria das aplicações que embutem JMX (bancos de dados, message brokers, application servers) segue a convenção de vincular o listener JMX apenas a 127.0.0.1 por padrão — como o próprio aviso da Apache Cassandra deixa explícito. Ambientes onde alguém habilitou JMX remoto explicitamente (para monitoramento via ferramentas como JConsole/VisualVM, ou management consoles) e abriu a porta para a rede, incluindo cenários com firewall mal configurado ou containers expondo a porta sem isolamento, são os que carregam o risco real descrito pelo CVSS 9.8.

A presença no catálogo KEV da CISA confirma exploração ativa observada, mas as fontes consultadas não trazem detalhes públicos de campanha específica, ferramenta de exploração pública ou grupo de ameaça associado — apenas o registro de que a exploração em cenário real ocorreu, reforçando que serviços JMX expostos continuam sendo alvo years após a divulgação, tipicamente por scanners automatizados que buscam portas RMI/JMX abertas na internet.

Versões

Afetadas
Oracle Java SE: 6 até 6u112 (inclusive), 7 até 7u98, 8 até 8u76; Java SE Embedded 8 até 8u76; Oracle JRockit R28 anterior a R28.3.9. Downstream: Apache Cassandra em todas as versões anteriores a 2.1.22, 2.2.18, 3.0.22, 3.11.8 e 4.0-beta2 (por depender de JVMs vulneráveis, não por falha própria de código).
Corrigidas em
Oracle Java SE 6u113, 7u99, 8u77; Java SE Embedded 8u77; JRockit R28.3.9. Backports OpenJDK equivalentes distribuídos pelos mantenedores de distribuições Linux (ex.: java-1.8.0-openjdk corrigido via RHSA-2016:0650, abril de 2016; correções subsequentes também empacotadas em java-1.7.0-ibm/java-1.7.1-ibm via RHSA-2016:1430 e RHSA-2017:1216). Apache Cassandra: 2.1.22, 2.2.18, 3.0.22, 3.11.8, 4.0-beta2 (ou, alternativamente, atualizar apenas a JVM subjacente sem trocar a versão do Cassandra).

Como se proteger

A correção do fornecedor está nas atualizações do Java SE do Critical Patch Update de abril de 2016: Oracle JDK/JRE 6u113, 7u99 e 8u77, Java SE Embedded 8u77, e JRockit R28.3.9. Distribuições baseadas em OpenJDK receberam o mesmo fix (JDK-8144430) nos respectivos updates de abril/maio de 2016 — por exemplo, o pacote java-1.8.0-openjdk do Red Hat Enterprise Linux 7 foi corrigido via RHSA-2016:0650. Após atualizar, é necessário reiniciar todas as instâncias em execução da JVM para que a correção tenha efeito; o processo antigo continua vulnerável mesmo com o pacote atualizado no disco.

Se a atualização da JVM não for viável imediatamente, o controle compensatório real e eficaz é de rede, não de configuração da aplicação: garantir que a porta JMX RMI não esteja acessível de fora de localhost ou de uma rede de gerenciamento restrita — via bind explícito a 127.0.0.1, firewall, ou removendo a flag que habilita JMX remoto quando não for estritamente necessário. Softwares como Apache Cassandra já vinculam JMX apenas localmente por padrão, o que por si só já mitiga o vetor remoto sem qualquer patch adicional — mas isso deve ser verificado, não assumido, em cada instalação.

Habilitar autenticação e SSL no JMX (com.sun.management.jmxremote.authenticate=true, .ssl=true) não elimina a falha, porque o problema ocorre na etapa de processamento das credenciais em si, antes da validação — não é uma mitigação confiável para este CVE específico, apenas reduz a superfície geral de ataque ao JMX. A mitigação que efetivamente resolve é a atualização da JVM; isolamento de rede é o paliativo aceitável até isso ocorrer.

Como detectar

Não há assinatura de payload confiável, porque a exploração depende de gadget chains presentes no classpath de cada aplicação — o conteúdo do objeto serializado malicioso varia. O sinal mais prático em log/tráfego é monitorar conexões de rede não esperadas às portas de registro JMX RMI e às portas RMI dinâmicas associadas, especialmente origem externa à rede de gerenciamento; conexões RMI sucedidas seguidas de exceções de desserialização ou crashes inesperados da JVM no processo que expõe JMX são indício de tentativa de exploração. Auditar quais processos Java têm com.sun.management.jmxremote habilitado e se a porta está de fato vinculada a localhost é o passo de detecção/triagem mais confiável antes mesmo de olhar tráfego.

Pesquisado e redigido com IA a partir do advisory do fornecedor e de análises públicas, com as fontes acima. Confira sempre a versão corrigida no advisory oficial antes de agir.
Unspecified vulnerability in Oracle Java SE 6u113, 7u99, and 8u77; Java SE Embedded 8u77; and JRockit R28.3.9 allows remote attackers to affect confidentiality, integrity, and availability via vectors related to JMX.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Produtos afetados
n/a · n/a