Im Web-Framework Apache Struts, das zur Erstellung von Webanwendungen in Java unter Verwendung des MVC (Model-View-Controller)-Paradigmas eingesetzt wird, wurde eine Sicherheitsanfälligkeit (CVE-2024-53677) entdeckt. Diese Sicherheitsanfälligkeit ermöglicht es einem externen Angreifer, eine Datei an beliebiger Stelle im Dateisystem auf dem Server zu speichern, indem ein speziell gestalteter HTTP-Request gesendet wird. Das Problem betrifft die Versionen von 2.0.0 bis 2.3.37, von 2.5.0 bis 2.5.33 und von 6.0.0 bis 6.3.0.2 und tritt in Anwendungen auf, die die Komponente FileUploadInterceptor für den Datei-Upload verwenden.
Die Sicherheitsanfälligkeit wird durch das Fehlen einer ordnungsgemäßen Überprüfung der Parameter verursacht, die beim Hochladen von Dateien übermittelt werden. Wenn der Angreifer Zugang zu den Upload-Funktionen im auf Apache Struts basierenden Web-Interface hat, kann er einen Wert wie „../../../../../webapps/ROOT“ angeben und somit eine Datei außerhalb des Verzeichnisses für hochgeladene Daten speichern (Prototyp eines Exploits). Mit der Möglichkeit, Dateien in beliebige Teile des Dateisystems zu schreiben, können eigene Befehle ausgeführt werden. Server, indem Skripte oder Konfigurationsdateien überschrieben werden, soweit es die Berechtigungen des Benutzers zulassen, unter dem die Webanwendung ausgeführt wird. Wenn die Webanwendung in einem Apache Tomcat-Container ausgeführt wird, der mit Root-Rechten gestartet wird, kann ein Angreifer privilegierten Zugriff auf das System erlangen.
Schwachstellen in Apache Struts sind relevant, da dieses Framework in Unternehmenssystemen, die über das Web zugänglich sind, weit verbreitet ist. Laut RedMonk wurde das Apache Struts Framework in 65% der Webanwendungen von Fortune-100-Unternehmen eingesetzt. Im Jahr 2017 führte ein Angriff auf das Informationssystem von Equifax, das eine verwundbare Version von Apache Struts verwendete, zu einer Datenpanne, bei der die persönlichen Daten von 143 Millionen US-Bürgern offengelegt wurden.
Quelle: opennet.ru
