Wat is er aan de hand?
Eind maart is er een kwetsbaarheid gevonden in het Spring Core Framework. Daarmee kan remote code execution (RCE) worden uitgevoerd, zoals eerder ook het geval was bij Log4j. Deze kwetsbaarheid staat bekend als Spring4shell.
Het Spring Framework is een open source framework om makkelijker Java applicaties te bouwen. Een van de kerncomponenten is Spring Core. De kwetsbaarheid CVE-2022-22965 zit in deze Spring Core, niet te verwarren met kwetsbaarheid CVE-2022-22963 die in Spring Cloud Function zit.
Criminelen kunnen deze kwetsbaarheid misbruiken en willekeurige code uitvoeren binnen de applicatie. Daarmee krijgen ze mogelijk toegang tot gevoelige informatie binnen die applicatie. Omdat een applicatie met meerdere rechten actief kan zijn, kan dit leiden tot uitvoer van code met verhoogde rechten op het onderliggende systeem.
Het Nationaal Cyber Security Centrum (NCSC) schaalt deze kwetsbaarheid hoog in: er is een proof-of-concept code verschenen. Er is nog geen geval bekend van actief misbruik; wel zijn er onbevestigde meldingen dat het geprobeerd wordt, laat het NCSC weten.
Wanneer is mijn applicatie kwetsbaar?
Op dit moment zijn de volgende randvoorwaarden bekend. Mogelijk is deze lijst nog niet compleet. Een applicatie is kwetsbaar als het:
- gebruik maakt van het Spring Core Framework (tot en met versie 5.3.17)
- gebruikt maakt van form bindings met “name=value” data
- geen gebruik maakt van een allowlist of denylist waarbij het gebruik van specifieke velden wordt uitgesloten (zoals “class”, “module” en “classLoader”)
- gebruik maakt van Apache Tomcat als de Servlet container
- Packaged is als WAR
- spring-webmvc of spring-webflux als dependency heeft
- en het op Java 9 of hoger draait
Wat moet ik doen?
True adviseert je om na te gaan of je applicatie(s) gebruik maakt van Spring Core Framework. Als dat het geval is, kijk of het mogelijk is om deze software te updaten naar versie 5.3.18 (voor versies 5.3.x) of 5.2.20 (voor versies 5.2.x).
Is het niet mogelijk om het Framework voor je applicatie te updaten, dan geeft Spring’s engineering team deze workarounds mee. Een update van de software blijft echter de beste manier om deze kwetsbaarheid te dichten!
Wat is het verschil met CVE-2022-22963?
CVE-2022-22963 is een andere RCE kwetsbaarheid in Spring. Deze kwetsbaarheid treft echter Spring Cloud Function, die niet in het standaard Spring Framework zit. Het betreft Spring Cloud Function tot en met versies 3.1.6 en 3.2.2. Ook daarvoor zijn updates beschikbaar: Spring Cloud Function versions 3.1.7 en 3.2.3.