Des chercheurs ont découvert une vulnérabilité critique, CVE-2022-22965, dans Spring, un framework open source pour la plateforme Java. Malheureusement, les détails de cette vulnérabilité ont été rendus public avant l’annonce officielle de l’entreprise et avant que les correctifs correspondants ne soient disponibles.
Cette vulnérabilité a immédiatement attiré l’attention des spécialistes en sécurité des informations puisqu’elle représente une sérieuse menace pour de nombreuses applications Web. Tout comme la très célèbre vulnérabilité Log4Shell, cette nouvelle faille s’appelle Spring4Shell.
Les créateurs du framework VMware Spring ont déjà publié plusieurs patchs qui corrigent les applications vulnérables, et nous conseillons à toutes les entreprises qui utilisent les version 5.3 et 5.2 du framework Spring d’installer immédiatement les mises à jour pour utiliser les versions 5.3.18 ou 5.2.20.
Qu’est-ce que Spring4Shell et pourquoi cette vulnérabilité est-elle si dangereuse ?
Cette vulnérabilité est de type RCE, ce qui signifie qu’elle permet aux cybercriminels d’exécuter un code malveillant à distance. Pour le moment, selon CVSS v3.0 Calculator, elle a obtenu un score de 9,8 sur 10. Cette faille affecte les applications Spring MVC et Spring WebFlux qui s’exécutent sous la version 9 ou ultérieure de Java Development Kit.
Les chercheurs ont communiqué la découverte de cette vulnérabilité à VMware mardi soir, mais une preuve de concept de cette faille était publiée sur GitHub dès mercredi. Cette PoC a rapidement été supprimée, mais seulement après que des experts en sécurité s’en soient rendu compte. D’ailleurs, certains ont confirmé le danger de cette faille. Il est très peu probable que les cybercriminels n’aient pas remarqué un exploit de cette envergure.
Le framework Spring est souvent utilisé par les développeurs Java, ce qui signifie que de nombreuses applications pourraient être vulnérables. Selon un article publié par Bleeping Computer, les applications Java vulnérables à Spring4Shell pourraient être une source de compromission pour de nombreux serveurs. De plus, toujours selon cet article, cette vulnérabilité est activement exploitée.
Vous trouverez plus de détails techniques ainsi que les indicateurs de compromission des exploits Spring4Shell dans l’article publié sur notre blog Securelist. On y parle aussi d’une autre vulnérabilité critique dans le framework Spring de Java (CVE-2022-22963).
Les conditions pour exploiter la vulnérabilité Spring4Shell
La seule méthode d’exploitation de Spring4Shell connue pour le moment requiert un concours de circonstances particulières. Pour que l’exploit soit un succès, la victime doit utiliser les éléments suivants :
- Version 9 ou ultérieure de Java Development Kit ;
- Conteneur Servlet Apache Tomcat ;
- Fichier au format WAR (Web Application Resource) au lieu du format par défaut JAR ;
- Dépendance à spring-webmvc ou spring-webflux ;
- Versions 5.3.0 à 5.3.17, 5.2.0 à 5.2.19 ou antérieures du framework de Spring.
Il est toutefois probable qu’il existe d’autres options d’exploitation encore inconnues et que cette même vulnérabilité puisse être exploitée autrement.
Comment vous protéger contre Spring4Shell
Le conseil principal que nous donnons à toute personne qui utilise le framework Spring est d’installer immédiatement les mises à jour 5.3.18 ou 5.2.20.
Apache Software Foundation a également publié les versions corrigées d’Apache Tomcat 10.0.20, 9.0.62 et 8.5.78, ce qui implique que le vecteur d’attaque se servant de Tomcat est clos.
Les développeurs de Spring ont aussi proposé les versions corrigées des extensions Spring Boot 2.5.12 et 2.6.6 qui dépendent de la version corrigée de Spring Framework 5.3.18.
Si, pour une quelconque raison, vous ne pouvez pas mettre à jour le logiciel ci-dessus alors vous devriez utiliser une des alternatives proposées sur le site officiel de Spring.
Pour réduire les risques d’attaque réussie, nous vous invitons à protéger tous les serveurs ainsi que tous les appareils connectés à Internet en installant une solution de sécurité de confiance. Si vous utilisez les produits de sécurité Kaspersky, vérifiez que vous avez activé les modules de Protection avancée contre les Exploits et de Prévention des Intrusions.