La vulnérabilité 9.1-CVSS permet aux attaquants de contourner les protections RCE dans le moteur de modèles de facto pour l’écosystème Java Spring.
Les responsables de Thymeleaf, un moteur de modèles largement utilisé pour les applications Web Java, ont corrigé une vulnérabilité critique rare qui permet à des attaquants non authentifiés d’exécuter du code malveillant sur les serveurs.
La vulnérabilité, suivie comme CVE-2026-40478, est notée 9,1 sur l’échelle de gravité CVSS et est décrite comme un problème d’injection de modèle côté serveur (SSTI). Thymeleaf dispose d’une protection de type bac à sable qui empêche les entrées de l’utilisateur d’exécuter des expressions dangereuses, mais cette faille permet aux attaquants de contourner ces protections.
« Bien que la bibliothèque fournisse des mécanismes pour empêcher l’injection d’expressions, elle ne parvient pas à neutraliser correctement les modèles de syntaxe spécifiques qui permettent l’exécution d’expressions non autorisées », ont déclaré les développeurs dans leur avis. « Si un développeur d’application transmet directement une entrée utilisateur non validée au moteur de modèle, un attaquant distant non authentifié peut contourner les protections de la bibliothèque pour réaliser une injection de modèle côté serveur (SSTI). »
Thymeleaf est le moteur de modèles de facto dans l’écosystème Java Spring et Spring est le framework le plus populaire pour développer des applications Web en Java. Étant donné que Java est encore largement utilisé pour le développement dans les environnements d’entreprise, cette vulnérabilité est susceptible d’avoir un impact sur de nombreuses applications métier.
Toutes les versions de Thymeleaf antérieures à 3.1.4.RELEASE sont affectées et aucune solution de contournement n’existe. Il est conseillé aux entreprises d’identifier lesquelles de leurs applications utilisent Thymeleaf et de passer à la version 3.1.4.RELEASE dès que possible.
Exploitation simple
Selon les chercheurs de la société de tests de sécurité des applications Endor Labs, l’exploitation est simple et ne nécessite aucun privilège ni condition particulière. Les attaquants doivent simplement contrôler les entrées qui atteignent le moteur d’expression de Thymeleaf, ce qui est un modèle courant dans les applications Web.
Endor Labs note dans son rapport que Thymeleaf dispose de couches de défense en profondeur pour bloquer les expressions dangereuses et que dans ce cas, deux d’entre elles ont échoué. Par exemple, une vérification de chaîne a analysé le texte de l’expression à la recherche de modèles dangereux, tels que new mot-clé suivi d’un espace ASCII, T (références de type Spring Expression Language) et @ (références de bean SpEL dans certains chemins de code). Cependant, la vérification n’a recherché que les caractères d’espace ASCII 0x20, mais l’analyseur du SpEL accepte également les tabulations (0x09), les nouvelles lignes (0x0A) et d’autres caractères de contrôle entre new et le nom de la classe.
Une autre politique bloquait les classes commençant par java.* d’être utilisé dans les références de type T(), mais n’a pas bloqué les types de org.springframework.*, ognl.*ou javax.*.
« Étant donné que les applications Spring typiques ont Spring-Core sur le chemin de classe, des classes comme org.springframework.core.io.FileSystemResource étaient librement constructibles, et cette classe peut créer des fichiers arbitraires sur le disque », ont déclaré les chercheurs.
Ainsi, Endor Labs a pu facilement créer un exploit de validation de principe en combinant les deux : utiliser un caractère de tabulation après new et appeler le org.springframework.core.io.FileSystemResource classe pour créer un fichier sur le disque.
« Avec la bonne classe, un attaquant peut passer de la création de fichiers à l’exécution complète de code à distance, par exemple en instanciant un wrapper ProcessBuilder à partir d’une bibliothèque tierce ou en exploitant le GenericApplicationContext de Spring pour enregistrer et invoquer des beans arbitraires », ont expliqué les chercheurs.
Les vulnérabilités du framework Java Spring lui-même ont été exploitées dans le passé pour compromettre les serveurs Web. Il est donc probable qu’une faille facile à exploiter comme celle-ci soit rapidement adoptée par les attaquants.



