Spring4Shell (CVE-2022-22965) ist eine Schwachstelle zur Remotecodeausführung (RCE), die Spring Core betrifft – ein umfassendes Framework für Java-basierte Unternehmensanwendungen.
Spring4Shell hat seinen Namen von der Log4Shell-Schwachstelle, einer der kritischsten Zero-Day-Bedrohungen überhaupt. Diese betraf eine Java-Softwarekomponente namens Log4j und ermöglichte es Hackern, die Kontrolle über Webserver und Netzwerke zu übernehmen.
Spring4Shell ist eine kritische Schwachstelle für Webanwendungen und Cloud-Dienste. Jede RCE stellt eine ernsthafte Bedrohung dar, und GitHub ist bereits voller POCs (Proofs of Concept), die den Exploit öffentlich machen, sodass Cyberkriminelle ihn nicht übersehen können.
Schwachstellen wie Spring4Shell und Log4Shell werden schnell angegriffen werden, und Hacker werden wahrscheinlich weitere Wege finden, sie auszunutzen – möglicherweise unter Umgehung der Behelfslösungen und Gegenmaßnahmen. Daher ist Wachsamkeit erforderlich.
Eine aktuelle Studie ergab, dass 78 % der Unternehmen jedes Mal für eine Kompromittierung offenstehen, wenn eine neue RCE-Technik entdeckt wird. Sicherheitsexperten sollten Zero-Day-RCE-Schwachstellen daher besondere Aufmerksamkeit widmen.
Siehe die Top-Tools für das Schwachstellenmanagement.
Die Popularität von Spring Core
Das Spring-Core-Framework gehört zu den beliebtesten Java-Frameworks, insbesondere in Unternehmen. Unternehmen nutzen es, um die Entwicklung zu beschleunigen, als Alternative zu Java-EE-Anwendungen.
Das Tool ist vollständig objektorientiert und bietet fortschrittliche Funktionen zum Erstellen Java-basierter Anwendungen. So ermöglicht Spring beispielsweise die Parameterbindung und -extraktion aus Anfragen, wodurch Programmierer diese einfach verarbeiten können.
Mit anderen Worten: Das Framework kann wertvolle Informationen aus HTTP-Anfragen extrahieren und als Schlüssel-Wert-Paare oder Java-Objekte abbilden, die von der Anwendung verwendet werden. Für Entwickler ist das praktischer.
Hacker können Spring4Shell ausnutzen, um Informationen zu überschreiben und Web-Shells hochzuladen, die letztlich zur Remotecodeausführung führen. Dazu werden sie wahrscheinlich eine bösartige Payload über eine HTTP-Anfrage einschleusen, um die anvisierten Java-Objekte zu manipulieren und die vollständige Kontrolle über das Zielsystem zu erlangen.
Spring4Shell-Exploits erklärt
Der Exploit scheint mehrere Komponenten zu erfordern:
- JDK (Java Development Kit) 9++
- spring-webmvc oder spring-webflux
- Spring-Framework-Versionen 5.2.0 bis 5.2.19, 5.3.0 bis 5.3.17 oder ältere Versionen
- Apache Tomcat zur Bereitstellung der Anwendung
- Als WAR-Datei (Web Application Resource) erstellt (nicht als JAR)
Allerdings sagte Microsoft, dass „Jedes System, das JDK 9.0 oder höher sowie das Spring Framework oder davon abgeleitete Frameworks verwendet, als verwundbar betrachtet werden sollte.“
Die meisten POCs nutzten eine REST-API, die HTTP-Anfragen (GET, POST usw.) und Payloads akzeptiert. Die grundlegende Idee besteht darin, bestimmte Funktionen umzuleiten, die im Spring Framework auf Request-Mapping-Annotationen und Plain Old Java Object (POJO)-Parameter angewiesen sind (siehe Screenshot unten):

Angreifer können speziell erstellte HTTP-Anfragen senden, um eine bösartige .jsp-Datei im Stammverzeichnis des Dienstes zu erstellen (Quelle: Microsoft):

Mit anderen Worten: Unter bestimmten Bedingungen (z. B. durch die Request-Mapping-Funktion von Spring) ist es möglich, interne Variablen von der Clientseite aus zu ändern.
Da das Framework über eine Request-Mapping-Funktion verfügt, können Hacker vorhersagen, welche Methoden anhand einer bestimmten URI aufgerufen werden. Zudem ist die Parameter-/Eigenschaftsbindung für Entwickler praktisch, da sie einige Felder automatisch anhand von URI-Parametern befüllt. Sie ist jedoch auch sehr vorhersehbar und anfällig für unerwünschte Verkettungen.
Mit dem getClassLoader()Accessor können Hacker die Eigenschaften des AccessLogValve-Objekts in der Tomcat-Pipeline manipulieren. So kann sich das Zugriffsprotokoll eines verwundbaren Tomcat-Webservers in eine Reverse Shell verwandeln.
Ein solcher unbefugter Shell-Zugriff kann je nach Serverkonfiguration und den für die Bereitstellung geltenden Sicherheitsrichtlinien zu den schlimmsten Folgen führen – vom Diebstahl von Zugangsdaten bis zur Ausweitung von Berechtigungen auf Root-Ebene.
Auch wenn der Exploit technisch recht anspruchsvoll wirken mag, werden öffentliche POCs und das offene Bereitstellen des Codes die Hürde deutlich senken. Ich habe zahlreiche Python-Skripte gesehen, die den Angriff automatisieren können.
Hacker nutzen die Schwachstelle bereits aus
CISA nahm auf die Schwachstelle in seinen Katalog auf, und Checkpoint hob hervor mehrere wichtige Zahlen:
- Rund 37.000 Versuche, die Spring4Shell-Schwachstelle auszunutzen
- In den ersten vier Tagen waren 16 % der Organisationen weltweit von Ausnutzungsversuchen betroffen
- Softwareanbieter sind die am stärksten betroffene Branche: 28 % der Organisationen waren betroffen
- Die am stärksten betroffene Region ist Europa mit etwa 20 % Betroffenen
Microsoft berichtete von einem „geringen Volumen an Ausnutzungsversuchen bei Cloud-Diensten im Zusammenhang mit den Schwachstellen in Spring Cloud und Spring Core“ und forderte die Nutzer nachdrücklich auf, ihre aktuelle Konfiguration zu überprüfen.
So erkennen und schützen Sie sich vor Spring4Shell
Da die Schwachstelle RCE ermöglicht, kann die Überwachung verdächtiger Aktivitäten, insbesondere ausgehender Verbindungen, dabei helfen, den Exploit zu erkennen.
Microsoft hat insbesondere einen Schnelltest beschrieben, mit dem sich feststellen lässt, ob Sie durch Spring4Shell gefährdet sind:
curl host:port/path?class.module.classLoader.URLs%5B0%5D=0Jede HTTP-400-Antwort ist ein positiver Treffer!
Unternehmen, die auf Spring-Framework-Versionen 5.2 und 5.3 setzen, sollten schnellstmöglich auf die Versionen 5.2.20 und 5.3.18 aktualisieren.
Alternativ kann Apache Tomcat auf folgende Versionen gepatcht werden: 8.5.78, 9.0.62, 10.0.20.
Das Spring-Projekt veröffentlichte eine Reihe von Gegenmaßnahmen und Empfehlungen. Organisationen, die derzeit kein Update durchführen können, können beispielsweise auf Java 8 zurückstufen oder die Bindung an bestimmte Felder deaktivieren.
Auch VMware veröffentlichte ausführliche Sicherheitshinweise. Der Schweregrad ist für alle von Spring4Shell betroffenen Produkte als kritisch eingestuft. Derzeit gibt es noch nicht für alle Produkte Abhilfemaßnahmen. Die Untersuchung dauert an, Nutzer können jedoch Behelfslösungen anwenden, um die Bedrohung zu begrenzen.
Lesen Sie als Nächstes: SANS beschreibt wichtige Schritte zum Schutz kritischer Infrastrukturen angesichts der Cyberbedrohungen durch Russland und die USA.





