
Configuração e recriação do exploit para CVE-2022-42889 Text4Shell.
Para encontrar o relatório completo de configuração e recriação do exploit, localize o arquivo CVE-2022-42889-Project Vulnerability Exploitation Report. A VM utilizada para construir e executar o exploit não está incluída neste repositório.
Configuração e recriação do exploit para CVE-2022-42889 Text4Shell.
O CVE-2022-42889, também conhecido como "Text4Shell", foi uma vulnerabilidade crítica na biblioteca Apache Commons Text, uma biblioteca frequentemente usada em aplicações Java para processamento de texto e fornecimento de complementos ao tratamento de texto do Java Development Kit (JDK) padrão. As versões da biblioteca Apache Common Text, que datam de 2018, 1.5 a 1.9 da biblioteca Apache Common Text, foram relatadas como afetadas. A vulnerabilidade decorre do tratamento inseguro de entrada na classe StringSubstitutor, que permite que atacantes explorem recursos de interpolação de strings da biblioteca. Isso pode resultar em execução remota de código (RCE) ao processar entrada maliciosamente elaborada, apresentando riscos significativos para aplicações que dependem dessa biblioteca. Portanto, o CVE-2022-42889 foi considerado uma vulnerabilidade crítica e recebeu uma pontuação base CVSS 3.x de 9,8, devido ao impacto severo que poderia ter nos sistemas afetados, incluindo o comprometimento total do sistema.
Esta vulnerabilidade foi comparada às infames vulnerabilidades Log4Shell (CVE-2021-44228) e Spring4Shell (CVE-2022-22965) devido ao seu potencial de ser explorada em aplicações baseadas em Java. Ao contrário do Log4Shell e Spring4Shell, que eram vulneráveis mesmo nos casos de uso mais básicos, nem todos os usuários da biblioteca Apache Common Text seriam afetados, pois a biblioteca deve ser usada de uma maneira específica para expor a superfície de ataque e tornar a vulnerabilidade explorável.
A demonstração do exploit utiliza a prova de conceito do GitHub de cyberhack255, que fornece todos os scripts e ferramentas necessários para executar o exploit. Abaixo está uma breve descrição de como a exploração será realizada:
A demonstração utiliza um Dockerfile que configura um contêiner Docker para executar uma aplicação Java empacotada como um arquivo JAR gordo (text4shell-poc.jar). Ela usa a imagem oficial do tempo de execução OpenJDK 8 baseada no Alpine Linux, que fornece um ambiente mínimo e leve. O arquivo instala o bash para permitir scripts bash durante a demonstração. A porta 8080 é exposta para permitir acesso externo ao contêiner durante a execução do exploit.
Esta PoC focará na elaboração de um payload malicioso que explora o mecanismo de substituição de strings na biblioteca Apache Commons Text. O payload terá como alvo a chave de busca script, invocando o método StringSubstitutor.createInterpolator(). Para esta demonstração, o payload criará remotamente um novo arquivo dentro do Docker.