Plataforma
java
Componente
jad-java-decompiler
Corrigido em
1.5.9
CVE-2016-20049 é uma vulnerabilidade de estouro de buffer baseado em pilha no JAD Java Decompiler. Um invasor pode explorar essa falha para executar código arbitrário remotamente. As versões afetadas incluem a 1.5.8e-1kali1. Não há correção oficial disponível no momento.
A vulnerabilidade CVE-2016-20049 afeta o JAD Java Decompiler versões 1.5.8e-1kali1 e anteriores. Trata-se de um estouro de buffer baseado em pilha que permite que atacantes executem código arbitrário. Um atacante pode fornecer strings de entrada maliciosas que excedam 8150 bytes, causando um estouro de buffer na pilha, sobrescrevendo os endereços de retorno e, finalmente, executando shellcode no contexto da aplicação. Esta vulnerabilidade é particularmente preocupante porque o JAD é usado para analisar código Java, o que pode permitir que os atacantes comprometam aplicativos Java e acessem dados confidenciais. A pontuação CVSS é 9,8, indicando um risco crítico.
A exploração da CVE-2016-20049 requer que um atacante seja capaz de controlar a entrada fornecida ao JAD. Isso pode ser alcançado por meio de um arquivo Java malicioso carregado no JAD para descompilação. O atacante pode criar um arquivo Java especialmente projetado contendo uma string de entrada excessivamente longa, acionando o estouro de buffer. Uma vez que o buffer transborda, o atacante pode sobrescrever o endereço de retorno na pilha com o endereço de seu próprio shellcode. Quando a função atual termina, em vez de retornar à localização esperada, o controle é transferido para o shellcode do atacante, permitindo que ele execute comandos arbitrários no sistema com os privilégios do JAD.
Organizations and individuals using JAD Java Decompiler, particularly those relying on older, unpatched versions (1.5.8e-1kali1 and prior), are at significant risk. Systems where JAD is used to analyze potentially untrusted Java code are especially vulnerable, as attackers could craft malicious input to exploit the vulnerability.
• java: Monitor JRE logs for stack overflow errors or unusual process creation related to JAD.
journalctl -u java -g "stack overflow"• generic web: Monitor access logs for unusually large requests directed at JAD.
grep -i '8000+' /var/log/apache2/access.log• generic web: Check response headers for unexpected content or error codes following JAD processing.
curl -I http://your-jad-server/decompile?file=malicious.jar | grep -i 'error'disclosure
Status do Exploit
EPSS
0.09% (percentil 25%)
CISA SSVC
Vetor CVSS
Infelizmente, nenhum patch oficial foi lançado para CVE-2016-20049. A principal mitigação é evitar o uso de versões vulneráveis do JAD. Se o uso do JAD for necessário, é recomendável implementar medidas de segurança adicionais, como executá-lo em um ambiente isolado (sandbox) ou utilizar um sistema de monitoramento de integridade para detectar atividades suspeitas. Além disso, é recomendável manter todos os sistemas atualizados com os últimos patches de segurança para reduzir a superfície de ataque geral. A atualização para uma versão mais recente do JAD, se disponível, seria a solução ideal, mas, dado a falta de um patch oficial, essas medidas de mitigação são cruciais.
Actualizar a una versión parcheada de JAD Java Decompiler que solucione la vulnerabilidad de desbordamiento de búfer. Si no hay una versión parcheada disponible, considere usar un descompilador de Java alternativo.
Análise de vulnerabilidades e alertas críticos diretamente no seu e-mail.
JAD é uma ferramenta usada para descompilar código Java em código fonte legível. Isso pode ser útil para engenharia reversa, análise de malware ou simplesmente para entender como um aplicativo Java funciona.
A vulnerabilidade é grave porque permite que os atacantes executem código arbitrário no sistema. Isso pode permitir que eles roubem dados, instalem malware ou assumam o controle total do sistema.
A melhor maneira de se proteger é evitar o uso de versões vulneráveis do JAD. Se o uso do JAD for necessário, é recomendável executá-lo em um ambiente isolado e manter todos os sistemas atualizados.
Um sandbox é um ambiente isolado que limita o acesso de um aplicativo aos recursos do sistema. Isso pode ajudar a prevenir que um atacante cause danos se eles explorarem uma vulnerabilidade.
Sim, existem várias alternativas ao JAD, como JD-GUI e CFR. É importante pesquisar e escolher uma ferramenta que esteja atualizada e não tenha vulnerabilidades conhecidas.
Envie seu arquivo de dependências e descubra na hora se esta e outras CVEs te atingem.
Envie seu arquivo pom.xml e descubra na hora se você está afetado.