Thymeleaf 3.1.3 et antérieures souffrent d'un bypass de sandbox d'expressions (CVE-2026-40477, CVSS 9.0) menant à une SSTI puis à l'exécution de code Java arbitraire.
En bref
- CVE-2026-40477 : bypass de sandbox d'expressions dans Thymeleaf, CVSS 9.0
- Versions affectées : Thymeleaf 3.1.3.RELEASE et antérieures, correction dans 3.1.4.RELEASE
- Exploitation non authentifiée : SSTI vers RCE si du contenu utilisateur alimente un template
- Action urgente : mettre à jour la dépendance Maven, valider tous les inputs templates
Les faits
L'équipe Thymeleaf a publié le 17 avril 2026 un correctif de sécurité pour la CVE-2026-40477, une faille permettant le contournement du mécanisme de restriction d'accès aux objets Java depuis les expressions de template. Référencée par GitLab Advisory Database et l'agrégateur Vulnerability-Lookup, la vulnérabilité affecte le moteur de templates serveur Thymeleaf jusqu'à la version 3.1.3.RELEASE incluse. Le score CVSS officiel atteint 9.0, avec un vecteur d'attaque réseau, sans authentification ni interaction utilisateur requise. Le défaut résulte d'une faiblesse dans le sandbox d'expressions du moteur : certains objets sensibles, normalement hors d'atteinte des templates, restent accessibles via des constructions d'expressions spécifiques. Combiné à la pratique répandue d'injection de variables utilisateur dans le rendu Thymeleaf, ce bypass ouvre la voie à une Server-Side Template Injection capable d'aboutir à l'exécution de code arbitraire sur le serveur d'application Java. Aucune exploitation publique active n'est confirmée à ce stade, mais des proof-of-concept circulent déjà dans les communautés de chercheurs.
Thymeleaf est intégré par défaut à de nombreuses applications Spring Boot, ce qui amplifie la surface d'exposition. Le scénario de risque le plus courant survient lorsqu'un développeur, par méconnaissance des bonnes pratiques, transmet directement une chaîne issue d'un paramètre HTTP — par exemple un message d'erreur personnalisé, un sujet d'e-mail, ou un nom d'utilisateur — au rendu Thymeleaf via StandardTemplateResolver sans passer par les variables typées. Le bypass autorise alors l'attaquant à invoquer des méthodes Java arbitraires, jusqu'à Runtime.getRuntime().exec() et la prise de contrôle complète du serveur applicatif.
Impact et exposition
Le périmètre concerné est considérable : Thymeleaf est l'un des moteurs de templates les plus utilisés dans l'écosystème Spring, présent dans une part significative des applications Java web déployées en entreprise. Selon les statistiques d'usage publiées par Maven Central, plusieurs millions de téléchargements mensuels documentent l'ampleur de la dépendance. Toutes les applications utilisant une version 3.1.3 ou antérieure et acceptant du contenu utilisateur dans le pipeline de templates sont exposées. La vulnérabilité est particulièrement insidieuse car elle ne déclenche pas d'erreur visible : un attaquant peut tester silencieusement la possibilité d'évasion sandbox via des payloads bénins avant de pivoter vers une exploitation complète. Les contextes les plus à risque incluent les portails self-service, les outils de génération de PDF basés sur Thymeleaf, les moteurs de notifications e-mail, et tout endpoint exposant des aperçus de templates personnalisables. La complexité d'exploitation est qualifiée de faible par la notice CVSS, ce qui signifie qu'un payload générique peut suffire à compromettre une grande partie des cibles vulnérables.
Recommandations immédiates
- Mettre à jour la dépendance
org.thymeleaf:thymeleafvers la version 3.1.4.RELEASE — advisory GitLab Maven Database CVE-2026-40477 - Auditer le code applicatif pour identifier toute alimentation directe de templates par des paramètres utilisateur non validés
- Préférer systématiquement le passage de variables typées via le contexte Thymeleaf plutôt que la concaténation dans la chaîne template
- Activer un Content Security Policy strict sur les pages générées pour limiter les répercussions en cas de compromission
- Mettre en place un WAF avec des règles ciblant les patterns d'injection d'expressions
${T(...)}et*{#...} - Surveiller les journaux applicatifs à la recherche d'erreurs de parsing d'expression Thymeleaf inhabituelles
⚠️ Urgence
Les proof-of-concept publics rendent l'exploitation triviale dans les jours à venir. Les applications Spring Boot exposées sur Internet et utilisant Thymeleaf doivent prioriser le déploiement du patch 3.1.4 sous 48 à 72 heures. La présence de Thymeleaf comme dépendance transitive doit également être vérifiée — un audit Maven complet via mvn dependency:tree est recommandé avant toute conclusion.
Comment savoir si je suis vulnérable ?
Inspectez votre fichier pom.xml ou build.gradle pour identifier la version de Thymeleaf utilisée. Exécutez mvn dependency:tree | grep thymeleaf pour révéler les versions transitives. Toute version antérieure à 3.1.4.RELEASE est concernée. Vérifiez ensuite si votre code passe des chaînes utilisateur au moteur de templates via process() ou processToString() sans encapsulation dans le contexte de variables nommées.
Existe-t-il une mitigation sans mise à jour ?
Aucune mitigation officielle n'est documentée par l'éditeur en dehors de la mise à jour. La seule contre-mesure provisoire consiste à s'assurer qu'aucune entrée utilisateur n'est jamais transmise comme template texte au moteur. Toute logique applicative qui combine des chaînes utilisateur dans un template avant rendu doit être réécrite pour utiliser exclusivement des variables nommées passées via le contexte.
Pour aller plus loin
Les vulnérabilités d'injection dans les frameworks Java restent un vecteur récurrent. Voir notre analyse récente de la RCE critique n8n via injection, ainsi que l'exploitation WebSocket de Marimo. Pour le panorama complet du mois, consulter le bilan du Patch Tuesday avril 2026 et notre dossier sur la gestion des zero-days en 2026.
Votre infrastructure est-elle exposée ?
Ayi NEDJIMI réalise des audits ciblés pour identifier et corriger vos vulnérabilités.
Demander un auditÀ propos de l'auteur
Ayi NEDJIMI
Auditeur Senior Cybersécurité & Consultant IA
Expert Judiciaire — Cour d'Appel de Paris
Habilitation Confidentiel Défense
ayi@ayinedjimi-consultants.fr
Ayi NEDJIMI est un vétéran de la cybersécurité avec plus de 25 ans d'expérience sur des missions critiques. Ancien développeur Microsoft à Redmond sur le module GINA (Windows NT4) et co-auteur de la version française du guide de sécurité Windows NT4 pour la NSA.
À la tête d'Ayi NEDJIMI Consultants, il réalise des audits Lead Auditor ISO 42001 et ISO 27001, des pentests d'infrastructures critiques, du forensics et des missions de conformité NIS2 / AI Act.
Conférencier international (Europe & US), il a formé plus de 10 000 professionnels.
Domaines d'expertise
Ressources & Outils de l'auteur
Testez vos connaissances
Mini-quiz de certification lié à cet article — propulsé par CertifExpress
Articles connexes
CVE-2026-34197 : RCE Apache ActiveMQ Jolokia ajoutée au KEV
Apache ActiveMQ Classic est concernée par la CVE-2026-34197, une RCE via l'API Jolokia (CVSS 8.8) ajoutée au KEV CISA après exploitation active confirmée.
CVE-2026-35546 : firmware non auth Anviz CX2/CX7 (RCE 9.8)
Les terminaux de contrôle d'accès Anviz CX2 Lite et CX7 acceptent un upload firmware non authentifié (CVE-2026-35546, CVSS 9.8) menant à une RCE complète, sans patch éditeur.
CVE-2026-20180 : RCE critique Cisco ISE (CVSS 9.9)
Cisco corrige CVE-2026-20180 (CVSS 9.9), une RCE authentifiée dans Identity Services Engine permettant l'accès root sur la plateforme NAC.
Commentaires
Aucun commentaire pour le moment. Soyez le premier à commenter !
Laisser un commentaire