Erneut macht eine Schwachstelle im Java Spring Framework Schlagzeilen. Dabei muss zwischen CVE-2022-22963, einer Schwachstelle, die Remote Code Execution in der Spring Cloud-Funktionalität ermöglicht, und einer bisher nicht mit einer CVE-ID versehenen Schwachstelle in "Spring Core" unterschieden werden.
Für CVE-2022-22963 gibt es bereits Aktualisierungen, die kritische Remote Code Execution innerhalb von "Spring Core" verlangt kurzfristig schnelle Lösungen.
Seit einem GitHub-Commit am 30. März 2022, der einen Proof of Concept (PoC)-Code für eine Schwachstelle in Spring Core beinhaltet, zeigte sich relativ schnell, dass es als unauthentifizierter Nutzer möglich ist, Betriebssystembefehle auszuführen. Es gibt jedoch zum aktuellen Zeitpunkt noch keine klare Aussage, welche Webapplikationen anfällig sind. Es ist allerdings davon auszugehen, dass Applikationen, die regulär im Einsatz sind, über diese Schwachstelle angegriffen werden können.
Betroffen scheinen zunächst alle Java Development Kit (JDK)-Versionen 9 und aufwärts zu sein, sofern Spring Core eingesetzt wird. Aktuell gibt es noch keine Aktualisierungen durch den Hersteller, um die Sicherheitslücke zu schließen. Für die Sicherheitslücke verantwortlich scheint eine Kombination der @RequestMapping-Annotation mit den "Plain Old Java Object"-Parametern zu sein.
Dabei werden die @RequestMapping- sowie die @GetMapping- und @PostMapping-Annotation genutzt, um eine URL festzulegen, worüber eine bestimmte Funktion aufrufbar ist. Beispielsweise würde der nachfolgende Codeblock den URL-Pfad /foobar zugänglich machen:
@RequestMapping("/foobar")
Dann kann eine Anfrage an diesen Pfad mit Parametern dazu führen, dass einige Eigenschaften festgelegt oder überschrieben werden. Darüber ist es zum Beispiel auch möglich, die Logging-Konfiguration eines Apache Tomcat zu verändern. So wäre es denkbar, eine sogenannte Web-Shell über die folgenden Aufrufe zu erhalten:
class.module.classLoader.resources.context.parent.pipeline.first.pattern=<Inhalt-der-Webshell>
&class.module.classLoader.resources.context.parent.pipeline.first.suffix=.jsp
&class.module.classLoader.resources.context.parent.pipeline.first.directory=webapps/ROOT
&class.module.classLoader.resources.context.parent.pipeline.first.prefix=webshell
&class.module.classLoader.resources.context.parent.pipeline.first.fileDateFormat=
Dies schreibt eine Datei mit dem Namen "webshell.jsp" in den Ordner "webapps/ROOT" und ist daraufhin aus dem Internet aufrufbar.
Für andere Webserver, die das Spring Framework einsetzen, müssen die Exploits entsprechend angepasst werden, da diese Logging-Funktionen nicht existieren.
Im nachfolgenden Screenshot ist zu sehen, dass sogar eine Standardapplikation des Spring-Tutorials anfällig für die Schwachstelle ist:
Es wird spekuliert, dass die Hersteller von Spring bereits an einem Patch für die Sicherheitslücke arbeiten. Bis dahin könnten folgende Maßnahmen ergriffen werden, um den Impact möglichst gering zu halten:
Aktuell gehen viele Sicherheitsforscher davon aus, dass diese Schwachstelle nicht so großflächig ausnutzbar ist, wie es die Log4j-Schwachstelle war. Trotzdem sollte überprüft werden, ob eine verwundbare Version im Einsatz ist.
Benötigen Sie Unterstützung bei einem Incident? Unsere Abteilung für Digitale Forensik und Incident Response ist für Sie da.
04.11.2024
- 06.11.2024
Secu2: Incident Response
06.11.2024
SySS bei der Konradin Mediengruppe
14.11.2024
- 15.11.2024
SySS auf der IPA-Jahrestagung
21.11.2024
- 22.11.2024
SySS auf der Handelsblatt Jahrestagung Cybersecurity
Ihr direkter Kontakt zu SySS +49 (0)7071 - 40 78 56-0 oder anfrage@syss.de | IN DRINGENDEN FÄLLEN AUSSERHALB DER GESCHÄFTSZEITEN +49 (0)7071 - 40 78 56-99
Als Rahmenvertragskunde wählen Sie bitte die bereitgestellte Rufbereitschaftsnummer
Ihr direkter Kontakt zu SySS +49 (0)7071 - 40 78 56-0 oder anfrage@syss.de
IN DRINGENDEN FÄLLEN AUSSERHALB DER GESCHÄFTSZEITEN +49 (0)7071 - 40 78 56-99
Als Rahmenvertragskunde wählen Sie bitte die bereitgestellte Rufbereitschaftsnummer
Direkter Kontakt
+49 (0)7071 - 40 78 56-0 oder anfrage@syss.de
IN DRINGENDEN FÄLLEN AUSSERHALB DER GESCHÄFTSZEITEN
+49 (0)7071 - 40 78 56-99
Als Rahmenvertragskunde wählen Sie bitte die bereitgestellte Rufbereitschaftsnummer