CVE-2026-40976 (CVSS 9.1) expose tous les endpoints Spring Boot 4.0.0-4.0.5 sans authentification. Le CERT-FR publie CERTFR-2026-AVI-0759 le 16 juin 2026 : mise à jour immédiate vers 4.0.6+ ou 3.4.17+ impérative.
En bref
- CVE-2026-40976 (CVSS 9.1) : Spring Boot 4.0.0-4.0.5 expose l'intégralité des endpoints applicatifs sans authentification dans les déploiements servlet avec Spring Security personnalisé
- Versions affectées : Spring Boot 4.0.0-4.0.5, 3.4.x avant 3.4.17, 3.3.x avant 3.3.20, 2.7.x avant 2.7.34 ; Spring for GraphQL 2.0.x/1.4.x/1.3.x/1.0.x (désérialisation menant à RCE, CVSS 8.1)
- Action urgente : mettre à jour vers Spring Boot 4.0.6+, 3.4.17+, 3.3.20+ ou 2.7.34+ ; auditer les SecurityFilterChain pour garantir une règle catchall restrictive en fin de chaîne
Les faits
Le 16 juin 2026, le CERT-FR a publié l'avis CERTFR-2026-AVI-0759 relatif à de multiples vulnérabilités critiques dans les produits de l'écosystème Spring, framework Java développé sous l'égide de VMware/Broadcom. La plus sévère, CVE-2026-40976, porte un score CVSSv3.1 de 9.1 selon le vecteur AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N. Elle affecte Spring Boot dans ses versions 4.0.0 à 4.0.5, ainsi que les branches 3.4.x avant 3.4.17, 3.3.x avant 3.3.20, et 2.7.x avant 2.7.34. Avec plusieurs centaines de millions de déploiements Java fondés sur Spring Boot dans le monde, la surface d'attaque potentielle est considérable.
La root cause de CVE-2026-40976 réside dans un comportement défaillant de la configuration de sécurité automatique (auto-configuration) de Spring Boot dans les déploiements basés sur servlet. Lorsqu'un développeur définit une SecurityFilterChain personnalisée couvrant certains chemins mais omettant un catch-all pour le reste des endpoints, Spring Boot 4.0.x adopte par défaut un comportement permissif ("Fail Open" : permit-all implicite) plutôt que restrictif ("Fail Closed" : deny-all par défaut). Tout endpoint non explicitement couvert par une règle d'autorisation devient alors accessible sans authentification. Ce comportement est particulièrement insidieux car la configuration peut sembler correcte au développeur — les endpoints protégés restent protégés — sans révéler le vide de protection sur les autres routes.
La condition de déclenchement implique une SecurityFilterChain avec des règles partielles et une absence de règle catchall. Ce pattern de configuration est malheureusement courant en pratique : les développeurs Spring ajoutent des règles au fur et à mesure des besoins fonctionnels, sans nécessairement terminer la chaîne par un anyRequest().authenticated() ou anyRequest().denyAll(). Dans Spring Boot 4.0.x, ce manque est fatal. La vulnérabilité a été découverte par l'équipe Spring Security de VMware lors d'un audit interne de la branche 4.x, initialement publiée dans les Spring Security Advisories du 14 avril 2026 et reprise dans l'avis CERTFR du 16 juin 2026.
CVE-2026-40972 est une seconde vulnérabilité du même bulletin, affectant le module Spring Boot DevTools. Il s'agit d'une attaque temporelle (timing attack) contre le secret partagé DevTools Remote : en mesurant les temps de réponse lors de tentatives de connexion au mécanisme DevTools Remote, un attaquant sur le même réseau peut récupérer le secret par oracle temporel. Ce secret obtenu, l'attaquant exploite le mécanisme légitime de mise à jour à distance de DevTools pour uploader des classes Java arbitraires dans l'application, aboutissant à une exécution de code à distance (RCE) dans le contexte du processus Spring Boot. DevTools ne devrait pas être actif en production, mais des configurations inadéquates dans des pipelines CI/CD ou des environnements de staging exposés constituent des vecteurs réels et documentés.
CVE-2026-40973 complète ce lot avec une vulnérabilité locale (CVSS 7.0) affectant le répertoire temporaire ApplicationTemp utilisé par Spring Boot au démarrage. Des permissions système insuffisantes sur certains systèmes Linux permettent à un processus local non privilégié de prendre le contrôle du répertoire avant la création par l'application (race condition), y plaçant des fichiers malveillants susceptibles de mener à un détournement de session ou à une exécution de code locale. Ce vecteur est exploitable dans des environnements de conteneurs partagés, de multi-tenancy applicative, ou de serveurs hébergeant plusieurs applications Java concurrentes.
L'avis CERTFR-2026-AVI-0759 couvre également une vulnérabilité de désérialisation dans Spring for GraphQL affectant les versions 2.0.0-2.0.3, 1.4.0-1.4.5, 1.3.0-1.3.8 et 1.0.0-1.0.6 (CVSS 8.1, vecteur AV:N/AC:H/PR:N/UI:N). Les applications Spring for GraphQL exposant des champs paginés (Connection) sont vulnérables : un attaquant peut forger une requête GraphQL malveillante qui déclenche la désérialisation d'objets depuis des classes "gadget" disponibles dans le classpath, aboutissant à une RCE sur le serveur. Le score AC:H indique une complexité d'exploitation élevée (nécessite la présence de classes gadgets spécifiques), mais l'absence de condition d'authentification (PR:N) maintient le niveau de risque élevé.
Les versions corrigées sont Spring Boot 4.0.6, 3.4.17, 3.3.20 et 2.7.34, publiées dans le cadre d'une livraison coordonnée. Spring for GraphQL est corrigé dans les versions 1.3.9+ (branche 1.3.x) et les branches équivalentes dans les autres séries. Les organisations sous contrat de support commercial VMware Tanzu disposent de correctifs backportés additionnels. Il est recommandé de vérifier les versions de toutes les dépendances Spring transitives (spring-security, spring-web, spring-data) dans les projets Maven et Gradle pour s'assurer de l'absence de versions vulnérables non détectées par les seules versions de Spring Boot parent.
Le Centre pour la Cybersécurité Belgique (CCB) avait déjà émis un avertissement prioritaire dès la publication des Spring Security Advisories d'avril 2026, qualifiant la mise à jour de priorité maximale. Le CERT-FR réitère cette recommandation dans CERTFR-2026-AVI-0759, soulignant que la difficulté de détection de CVE-2026-40976 par audit de code statique — la faille se manifeste par une absence de règle plutôt que par une règle erronée — rend particulièrement urgente l'application des correctifs sans attendre un prochain cycle de déploiement planifié.
Impact et exposition
Toute application Spring Boot 4.0.0-4.0.5 avec Spring Security personnalisé et déployée sur serveur servlet est potentiellement exposée à CVE-2026-40976. L'exploitation ne requiert aucun credential, aucune connaissance interne de l'application, et aucune interaction avec un utilisateur légitime. Dans un contexte d'APIs exposées sur Internet — dominant dans les architectures microservices — CVE-2026-40976 permet l'exfiltration de données métier, la modification d'objets applicatifs, et le contournement total des contrôles d'accès. Des données personnelles, financières ou médicales hébergées dans des applications Spring Boot peuvent être exposées directement à quiconque envoie une requête HTTP.
CVE-2026-40972 touche principalement les pipelines CI/CD et environnements de staging où DevTools reste actif par erreur de configuration. Ces environnements sont souvent moins surveillés que la production mais hébergent des versions proches de la prod avec des données réelles ou quasi-réelles. Un attaquant ayant accès au réseau interne (phishing, VPN compromis, latéralisation) peut exploiter DevTools Remote pour obtenir une RCE sans avoir à exploiter une vulnérabilité plus complexe.
Spring Boot est le standard de facto du développement Java d'entreprise : services financiers, santé, administration publique, télécommunications, e-commerce, industrie — tous les secteurs sont potentiellement exposés. En France, la majorité des applications développées par les DSI et ESN utilisent Spring Boot comme socle technique. Le CERT-FR estime que plusieurs dizaines de milliers d'applications pourraient être concernées en France, avec une exposition directe à Internet pour une part significative dans le contexte des architectures API-first.
Recommandations immédiates
- Mettre à jour Spring Boot vers 4.0.6+, 3.4.17+, 3.3.20+ ou 2.7.34+ selon la branche — Spring Security Advisory 2026-04-14
- Mettre à jour Spring for GraphQL vers les versions corrigées selon la branche (1.3.9+ pour la branche 1.3.x)
- Auditer toutes les SecurityFilterChain pour garantir une règle catchall restrictive (anyRequest().authenticated() ou anyRequest().denyAll()) en fin de chaîne
- Désactiver Spring Boot DevTools dans tous les environnements non-développement : spring.devtools.restart.enabled=false, ne jamais configurer spring.devtools.remote.secret en production/staging
- Vérifier les permissions du répertoire temporaire ApplicationTemp sur Linux (chmod 700 recommandé)
- Scanner les APIs exposées pour vérifier les réponses aux endpoints protégés sans authentification (réponse attendue 401/403, toute réponse 200 indique une exposition)
⚠️ Urgence
CVE-2026-40976 (CVSS 9.1) permet l'accès non authentifié à l'intégralité des endpoints d'une application Spring Boot. Toute application Java Spring Boot 4.0.0-4.0.5 exposée sur Internet doit être traitée comme potentiellement vulnérable. La mise à jour immédiate est impérative — aucune interaction attaquant-victime n'est requise pour l'exploitation.
Comment savoir si je suis vulnérable ?
Vérifiez la version de Spring Boot dans votre pom.xml ou build.gradle via la propriété spring-boot-starter-parent ou la commande : mvn dependency:tree | grep spring-boot. Si vous êtes en 4.0.0-4.0.5, 3.4.0-3.4.16, 3.3.0-3.3.19, ou 2.7.0-2.7.33, vous êtes concerné. Pour tester l'exposition à CVE-2026-40976, tentez d'accéder sans token/session à un endpoint protégé : curl -v https://votre-app/api/ressource-protegee — si la réponse est 200 OK au lieu de 401/403, votre application est vulnérable. Pour CVE-2026-40972, vérifiez l'absence de spring.devtools.remote.secret dans vos configurations de production et staging.
Vos applications Spring Boot sont-elles sécurisées ?
Ayi NEDJIMI réalise des audits de code et de configuration pour identifier les expositions Spring Security dans vos applications Java.
Demander un audit applicatifÀ propos de l'auteur
Ayi NEDJIMI
Auditeur Senior Cybersécurité & Consultant IA
Expert Judiciaire — Cour d'Appel de Paris
Habilitation Confidentiel Défense
[email protected]
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-47835 : SQLi Spring AI vector store CVSS 8.6
CVE-2026-47835 (CVSS 8.6) : injection SQL dans le filtrage des métadonnées du vector store Elasticsearch de Spring AI 1.0.x/1.1.x. Le CERT-FR publie CERTFR-2026-AVI-0751 le 15 juin 2026 — patch immédiat vers 1.0.9+/1.1.8+.
CVE-2026-10825 : RCE Moxa NPort ICS, CERTFR alerte
CVE-2026-10825 permet une exécution de code à distance non authentifiée sur les convertisseurs série-Ethernet Moxa NPort. Le CERT-FR publie l'avis CERTFR-2026-AVI-0760 le 16 juin 2026 : patch immédiat requis pour les environnements ICS/SCADA.
Oracle CPU juin 2026 : CVSS 10.0 Fusion Middleware
Le Critical Patch Update Oracle de juin 2026 corrige plus de 300 vulnérabilités dont des failles CVSS 10.0 dans Oracle Fusion Middleware et CVSS 9.9 dans Oracle E-Business Suite et REST Data Services (CVE-2026-46775, CVE-2026-46839), plusieurs exploitables sans authentification à distance.
Un projet cybersécurité ? Parlons-en.
Pentest, conformité NIS 2, ISO 27001, audit IA, RSSI externalisé… nos experts répondent sous 24h pour évaluer votre besoin et vous proposer un accompagnement sur mesure.
Commentaires
Aucun commentaire pour le moment. Soyez le premier à commenter !
Laisser un commentaire