Spring4Shell: kritieke kwetsbaarheid in Spring Java-framework

Een onderzoeker heeft een kritieke kwetsbaarheid gevonden in Spring, een populair Java-framework. Hier leestu hoe het werkt, waarom het gevaarlijk is en hoe u zich ertegen kunt beschermen.

Spring4Shell: kritieke kwetsbaarheid in Spring Java-framework

Onderzoekers hebben een kritieke kwetsbaarheid ontdekt, CVE-2022-22965 in Spring, een open source-framework voor het Java-platform. Helaas zijn details over het beveiligingslek uitgelekt voordat de officiële aankondiging was gepubliceerd en er relevante patches waren vrijgegeven.

De kwetsbaarheid trok onmiddellijk de aandacht van informatiebeveiligingsspecialisten, omdat het potentieel een ernstige bedreiging vormt voor allerlei webtoepassingen. De nieuwe kwetsbaarheid kreeg de naam Spring4Shell, in navolging van het overhypte Log4Shell.

De makers van het VMware Spring-framework hebben al patches uitgebracht om kwetsbare applicaties te repareren, dus we raden alle bedrijven die Spring Framework-versies 5.3 en 5.2 gebruiken aan om onmiddellijk te upgraden naar versie 5.3.18 of 5.2.20.

Wat is Spring4Shell en waarom is deze kwetsbaarheid zo gevaarlijk?

De kwetsbaarheid behoort tot de RCE-klasse, en dat wil zeggen dat een aanvaller op afstand kwaadaardige code mee kan uitvoeren. Volgens de CVSS v3.0-calculator is de ernst ervan momenteel 9,8 op een schaal van 10. De kwetsbaarheid treft Spring MVC- en Spring WebFlux-applicaties die op de Java Development Kit van versie 9 of hoger draaien.

Onderzoekers meldden de ontdekte kwetsbaarheid dinsdag al bij VMware night, maar woensdag werd al proof of concept (PoC) voor de kwetsbaarheid gepubliceerd op GitHub. De PoC werd snel verwijderd, maar niet voordat hij werd opgemerkt door beveiligingsexperts (van wie sommigen het gevaar van de kwetsbaarheid bevestigden). En het is zeer onwaarschijnlijk dat cybercriminelen zo’n krachtige exploit niet hebben opgemerkt.

Het Spring-framework is vrij populair onder Java-ontwikkelaars, wat betekent dat er potentieel veel applicaties kwetsbaar kunnen zijn. Volgens een post van Bleeping Computer zouden Java-applicaties die kwetsbaar zijn voor Spring4Shell een oorzaak kunnen worden van de compromittering van een groot aantal servers. Volgens hetzelfde bericht wordt de kwetsbaarheid bovendien al actief in het wild uitgebuit.

Meer technische details, samen met indicators of compromise voor de Spring4Shell-exploits, zijn te vinden in een blog op Securelist. In dezelfde post staat ook een beschrijving van een andere kritieke kwetsbaarheid in het Spring Java-framework (CVE-2022-22963).

Voorwaarden voor het benutten van een Spring4Shell-kwetsbaarheid

De enige bekende exploitatiemethode van Spring4Shell op het moment van publicatie vereist een specifieke samenloop van omstandigheden. Om de aanval te laten slagen, moeten de volgende onderdelen aan de aangevallen kant worden gebruikt:

  • Java Development Kit van versie 9 of nieuwer;
  • Apache Tomcat als een servlet container;
  • WAR (Web Application Resource)-bestandsformaat in plaats van de standaard JAR;
  • Afhankelijkheden van spring-webmvc of spring-webflux;
  • Spring-frameworkversies 5.3.0 tot 5.3.17, 5.2.0 tot 5.2.19, of ouder.

Het is echter heel goed mogelijk dat er nog meer onbekende mogelijkheden zijn en dat dezelfde kwetsbaarheid op een andere manier kan worden uitgebuit.

Hoe u zich kunt beschermen tegen Spring4Shell

Het belangrijkste advies voor iedereen die het Spring-framework gebruikt, is om te upgraden naar de veilige versies 5.3.18 of 5.2.20.

De Apache Software Foundation heeft ook gepatchte versies van Apache Tomcat 10.0.20, 9.0.62 en 8.5.78 uitgebracht, waarin de aanvalsvector aan de kant van Tomcat is gesloten.

De Spring-ontwikkelaars hebben ook gepatchte versies van de Spring Boot 2.5.12 en 2.6.6-extensies uitgebracht die afhankelijk zijn van de gepatchte versie van Spring Framework 5.3.18.

Indien u om een of andere reden de bovenstaande software niet kunt updaten, dan dient u een van de workarounds te gebruiken die gepubliceerd zijn op de officiële Spring-website.

Om het risico van een succesvolle aanval tot een minimum te beperken, raden we u aan alle servers, evenals alle andere machines die met het internet zijn verbonden, te beveiligen met een vertrouwde beveiligingsoplossing. Als u beveiligingsproducten van Kaspersky gebruikt, moet u ervoor zorgen dat de modules Advanced Exploit Prevention en Network Attack Blocker zijn ingeschakeld.

Tips