Verwirrung um kritische Sicherheitslücke im Umfeld des Spring-Framework
Das Spring-Entwicklerteam stellt Patches für zwei Sicherheitslücken zur Verfügung. Daneben droht jedoch mit Spring4Shell eine weitere Gefahr.
![](https://heise.cloudimg.io/width/610/q85.png-lossy-85.webp-lossy-85.foil1/_www-heise-de_/imgs/18/3/4/4/5/1/8/0/shutterstock_2033447216.jpg-ef68da6b3dfcd382.jpeg)
(Bild: Sashkin/Shutterstock.com)
Im Umfeld des quelloffenen Java-Frameworks Spring sind offenbar drei Sicherheitslücken aufgetaucht. Zum einen findet sich in der noch recht unklaren Berichterstattung ein Hinweis auf eine Zero-Day-Sicherheitslücke namens Spring4Shell und eine Denial-of-Service-Schwachtstelle (DoS) unter CVE-2022-22950 in Spring Framework sowie eine Schwachstelle in den Spring Cloud Functions mit der CVE-Nummer CVE-2022-22963.
Nach Log4Shell kommt Spring4Shell?
Bereits Ende des Jahres 2021 sorgte die kritische Zero-Day-Lücke namens Log4Shell in der verbreiteten Java-Logging-Bibliothek Log4j für Aufregung. Betroffen waren unter anderem Dienste von Apple, Twitter, Steam, Amazon. Angreifer konnten die Sicherheitslücke ausnutzen, indem sie manipulierte Anfragen an einen verwundbaren Server oder eine angreifbare Anwendung schickten.
Ähnliches scheint sich nun im Kern des Frameworks Spring abzuspielen. Zwar gibt es noch keine offizielle CVE-Nummer, doch beispielsweise Cyber Kendra, ein Newsportal für Cybersecurity, berichtet über eine Schwachstelle namens Spring4Shell. Offenbar sorgt diese im Spring-Kern mit einer JDK-Version größer oder gleich 9.0 für Probleme.
In der JDK9-Version (und jünger) des Spring-Frameworks können Angreifer offenbar unter bestimmten Voraussetzungen das AccessLogValve
-Objekt und manipulierte Feldwerte über die Parameter-Bindungsfunktion des Frameworks erhalten, wodurch der Pipeline-Mechanismus ausgelöst wird und beliebige Felder beschrieben werden. Die Schwachstelle scheint Funktionen zu betreffen, die die RequestMapping-Annotation und POJO-Parameter (Plain Old Java Object) verwenden.
Weitere Informationen sind nach Angaben des Portals nicht bekannt. Die Cybersecurity-Plattform Rapid7 hat die Remote Code Execution via Spring4Shell inzwischen bestätigt. Auf dem offiziellen Spring-Blog findet sich eine erste Ankündigung zur Sicherheitslücke. Darüber hinaus liegen die Versionen 5.3.18 und 5.2.20 zum patchen vor. Laut Blogbeitrag arbeitet das Entwicklerteam an den jeweiligen Spring-Boot-Versionen.
Denial of Service Expression
Überdies liegt unter der CVE-Nummer CVE-2022-22950 ein weiterer Bericht über eine Sicherheitslücke in Spring Framework vor.
Laut dem Beitrag ist es in den Versionen 5.3.0 bis 5.3.16 und älteren, nicht mehr unterstützten Versionen des Spring Framework möglich, ebenso einen SpEl-Ausdruck bereitzustellen, der eine Denial-of-Service-Expression (DoS) verursachen kann. Derartige Attacken legen IT-Infrastrukturen und Internetverbindungen lahm, indem sie Server so lange mit Millionen von Anfragen bombardieren, bis diese nicht mehr antworten können oder abstürzen.
Betroffenen wird empfohlen, Spring Framework auf Version 5.3.17 oder jünger zu aktualisieren. Das Entwicklerteam hat bereits mit der Veröffentlichung des Updates Maßnahmen zum Schließen der Schwachstelle ergriffen. Auf GitHub finden sich weitere Informationen zum Patch der Sicherheitslücke.
Sicherheitslücke in Spring Cloud Function entdeckt
Offenbar ist auch in Spring Cloud Function, ein auf Spring Boot basierenden funktionalen Computing-Framework, eine Sicherheitslücke aufgetreten. Unter der CVE-Nummer CVE-2022-22963 findet sich ein Bericht zu einer "Spring Expression Resource Access Vulnerability". Genauer heißt es darin, dass es in den Versionen 3.1.6, 3.2.2 und älteren der Spring Cloud Function bei der Verwendung von Routing-Funktionen möglich ist, dass Angreifer einen speziell gestalteten Spring Expression Language-Ausdruck (SpEl) einspielen können, der ihnen den Zugriff auf lokale Ressourcen ermöglicht. Betroffenen Nutzerinnen und Nutzern wird das Update auf Spring Cloud Function 3.1.7, beziehungsweise 3.2.3 empfohlen.
Im Sommer 2017 hatte das Spring-Team mit Spring Cloud Function ein neues Projekt vorgestellt, das sich dem damaligen Trendthema Serverless Computing widmet. Es handelt sich dabei und ein neues Programmiermodell für Anwendungen, die mit Spring Boot erstellt sind. Dabei sind die Funktionen auf die eigentliche Geschäftslogik begrenzt.
Spring Cloud Functions haben Wrapper für @Bean-Elemente vom Typ Function, Consumer und Supplier, mit denen sie für die Außenwelt als HTTP-Endpunkte und/oder als Listener beziehungsweise Publisher von Message Streams über Tools wie RabbitMQ oder Kafka erreichbar sind. Die Funktionsobjekte lassen sich zusammen mit einem isolierten Classloader als JAR-Dateien (Java Archive) paketieren.
Die Cybersecurity-Plattform Rapid 7 fasst die aktuellen Ereignisse in dieser doch noch unklaren Lage in einem Blogbeitrag zusammen. Darin wird deutlich, dass es sich bei dem oben genannten Fall offenbar nicht, wie erst angenommen, um eine Remote Code Execution (RCE) handelt. Da der Entdecker dieser Schwachstelle seine Hinweise in chinesischer Sprache verfasst hat, liegt hier offenbar ein Übersetzungsfehler vor.
(mdo)