Spring4Shell : la faille Java qui fait pschitt ?

Log4Shell situation Spring4Shell

Bientôt une semaine qu’on a connaissance de Spring4Shell. Quels risques cette faille qui affecte le framework Spring semble-t-elle réellement poser ?

A-t-on surestimé le potentiel de nocivité de Spring4Shell ? Voilà bientôt une semaine qu’on a connaissance de cette faille qui touche le cœur fonctionnel de Spring (framework Java). Et qu’on cherche, non sans difficulté, des applications effectivement vulnérables.

Dans l’absolu, il s’agit d’une vulnérabilité critique (9,8 sur l’échelle CVSS) : elle peut servir à prendre le contrôle d’une machine à distance. Mais dans la pratique, les exploits dont on a connaissance nécessitent que soient réunies des conditions bien spécifiques. Le PoC de référence ne fonctionne, par exemple, qu’avec certaines versions de Spring et de JDK, avec un paramétrage particulier, des déploiements en WAR et Tomcat en back-end.

Spring4Shell

L'équipe du projet Spring résume la situation :

- Sont potentiellement affectées, les applications qui utilisent des versions de Spring et de JDK vulnérables

- Ont davantage de risque de l'être, celles qui, en plus, font appel à la fonction @RequestMapping avec des paramètres au format POJO (Plain Old Java Object)

- Sont encore plus à risque, celles qui reposent sur Tomcat

On pourra s'appuyer sur cette hiérarchie pour prioriser les correctifs. En évitant de s'estimer à l'abri : Spring4Shell est « suffisamment générique » pour ouvrir la porte à une variété de PoC, nous explique-t-on. Même s'il peut être, entre autres, difficile, pour des attaquants, d'identifier à distance une version de Spring.

La meilleure option ? Patcher Spring. À défaut, on pourra patcher Tomcat (versions 8.5.78, 9.0.62 et 10.0.20), downgrader JDK (versions 8 et antérieures)... ou, en dernier recours, modifier la configuration de @RequestMapping.

Chez F5 comme chez Fortinet, on n'a pour le moment pas détecté de produit vulnérable. VMware, au contraire, en a identifié plusieurs dans son portefeuille Tanzu. En l'occurrence :

- Application Service (depuis la version 2.10 ; patché)
- Application Service for VMs (2.11 et ultérieures ; patché)
- Operations Manager (à partir de la 2.8 ; patché)
- Kubernetes Grid Integrated Edition (1.11 et suivantes ; pas encore patché)