CVE-2026-104711 est une injection OGNL critique (CVSS 9.8) dans le legacy RESTful action mapper d'Apache Struts permettant à un attaquant non authentifié d'exécuter du code arbitraire via une URI forgée.
En bref
- CVE-2026-104711 — injection OGNL dans Apache Struts CVSS 9.8 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H), exploitation via l'URI de requête, RCE sans authentification
- Systèmes affectés : Apache Struts 2.0.0–2.3.37, 2.5.0–2.5.33, 6.0.0–6.11.0, 7.0.0–7.3.0 — uniquement si le RestfulActionMapper legacy est activé dans struts.xml
- Action urgente : mettre à jour vers Struts 2.5.34+, 6.11.1+ ou 7.3.1+ — ou désactiver immédiatement le legacy RESTful action mapper dans struts.xml
Les faits
Le 5 octobre 2026, la fondation Apache Software Foundation a publié l'advisory ASF-2026-003 révélant CVE-2026-104711, une vulnérabilité critique d'injection OGNL (Object-Graph Navigation Language) dans le legacy RESTful action mapper du framework Apache Struts. Avec un score CVSS v3.1 de 9.8, cette faille permet à un attaquant non authentifié d'injecter et d'exécuter des expressions OGNL arbitraires via une URI HTTP spécialement construite, conduisant à une exécution de code distante (RCE) sur le serveur hébergeant l'application Struts. La faille est classifiée sous CWE-917 (Improper Neutralization of Special Elements used in an Expression Language Statement).
Apache Struts est l'un des frameworks Java EE les plus répandus dans le monde de l'entreprise. On le retrouve massivement dans les applications bancaires, les portails gouvernementaux, les systèmes ERP et les plateformes e-commerce d'envergure. L'historique du framework en matière de sécurité est marqué par plusieurs vulnérabilités OGNL catastrophiques, dont la tristement célèbre CVE-2017-5638 qui avait permis la compromission d'Equifax en 2017 avec l'exfiltration des données personnelles de 147 millions d'Américains. CVE-2026-104711 s'inscrit dans cette lignée de vulnérabilités systémiques liées à l'évaluation d'expressions OGNL.
Techniquement, la vulnérabilité réside dans la classe RestfulActionMapper du framework. Ce composant est chargé de faire correspondre les URI HTTP aux actions Struts dans le style RESTful. Son comportement défaillant est le suivant : le RestfulActionMapper extrait le nom d'action directement depuis le segment de chemin de l'URI sans effectuer de validation ni d'encodage des caractères spéciaux. Ainsi, une URI contenant un payload OGNL encodé dans le chemin conduit à ce que le nom d'action extrait soit une expression OGNL exécutable. Ce nom d'action est ensuite transmis à l'interpréteur OGNL du framework dans un contexte d'évaluation, permettant l'exécution du payload OGNL fourni par l'attaquant avec les privilèges du processus Java.
L'interpréteur OGNL de Struts est particulièrement puissant : il permet d'accéder à l'ensemble des objets Java disponibles dans le contexte de l'application, d'invoquer des méthodes réflexives, et d'exécuter des commandes système via des appels à Runtime.getRuntime().exec() ou des interfaces équivalentes. Des payloads publics permettant d'obtenir un reverse shell ou d'écrire un webshell sur le disque du serveur circulent dans la communauté de recherche en sécurité, bien qu'aucun exploit finalisé de qualité ransomware n'ait été publiquement divulgué à la date de rédaction de cet article.
La bonne nouvelle relative de cette faille est qu'elle ne concerne que les applications utilisant spécifiquement le RestfulActionMapper legacy, configuré dans struts.xml. Les applications utilisant le mapper par défaut, le restful2 mapper, ou le plugin Struts REST ne sont pas affectées par CVE-2026-104711. Cependant, dans les grandes organisations disposant d'un parc applicatif Struts étendu avec plusieurs générations d'applications, il est fréquent que certaines applications héritées aient conservé cette configuration pour des raisons de compatibilité avec des clients existants.
Les versions affectées couvrent un spectre particulièrement large : Struts 2.0.0 à 2.3.37 (branche 2.x fin de vie), 2.5.0 à 2.5.33, 6.0.0 à 6.11.0 (branche principale actuelle), et 7.0.0 à 7.3.0 (branche dernière génération). La présence de branches en fin de vie dans le périmètre affecté est un indicateur de la longévité de ce mapper legacy dans le codebase Struts, et de l'ancienneté des applications Java d'entreprise utilisant ces configurations. Selon les statistiques de téléchargement Maven Central, les branches Struts 2.5 et 6.x cumulent des millions de téléchargements mensuels, illustrant l'ampleur potentielle du parc exposé.
La fondation Apache a fourni des correctifs pour toutes les branches supportées dans son advisory ASF-2026-003 du 5 octobre 2026. Les versions corrigées sont Struts 2.5.34, 6.11.1 et 7.3.1. La branche 2.3.x étant officiellement en fin de vie, aucun patch officiel n'est prévu ; les utilisateurs de cette branche sont invités à migrer vers une version supportée ou à désactiver immédiatement le RestfulActionMapper. Un correctif pour la branche 2.3.x est néanmoins disponible via le service EOL Fix d'HeroDevs pour les organisations ayant souscrit à leur offre de support étendu.
Il est important de noter que CVE-2026-104711 partage des similarités techniques avec CVE-2016-3081, qui exploitait le mécanisme de Dynamic Method Invocation pour injecter des expressions OGNL. Cette faille de 2016 a récemment été ajoutée par la CISA à son catalogue KEV suite à son exploitation par le groupe Flax Typhoon dans des campagnes d'intrusion ciblant des infrastructures critiques. Cette résurgence des vecteurs d'attaque Struts OGNL souligne que même des vulnérabilités anciennes restent opérationnellement exploitables dans des parcs applicatifs non mis à jour, et que CVE-2026-104711 suivra probablement le même chemin d'exploitation prolongée si les correctifs ne sont pas appliqués rapidement.
Impact et exposition
CVE-2026-104711 constitue une menace critique pour toute organisation déployant des applications Java basées sur Apache Struts avec le legacy RESTful action mapper activé. La particularité de cette vulnérabilité est qu'elle cible une fonctionnalité configurée explicitement : les équipes de sécurité doivent auditer leurs applications Struts pour identifier quelles instances utilisent cette configuration spécifique, ce qui nécessite une connaissance approfondie du parc applicatif.
Dans les environnements enterprise typiques, les applications Java de génération ancienne sont souvent moins bien maintenues, moins fréquemment mises à jour, et parfois dépourvues d'équipes dédiées. Ce sont précisément ces applications qui présentent le plus de risque d'utiliser le RestfulActionMapper legacy. Un attaquant réussissant à exploiter CVE-2026-104711 obtient une exécution de code avec les privilèges du serveur d'application Java, lui permettant de déployer des webshells, d'exfiltrer des données, de pivoter vers d'autres systèmes du réseau interne, ou d'installer des outils de ransomware.
Compte tenu de l'historique d'exploitation intensive des vulnérabilités OGNL Struts — groupes de ransomware, acteurs étatiques, et scriptkiddies utilisant des exploits publics — il est probable que CVE-2026-104711 sera intégrée dans des frameworks d'exploitation automatisés dans les semaines suivant sa publication, augmentant considérablement le volume d'attaques opportunistes.
Recommandations immédiates
- Inventorier toutes les applications Apache Struts et identifier celles configurées avec le RestfulActionMapper (rechercher struts.mapper.class=rest dans les fichiers struts.xml et struts.properties)
- Mettre à jour vers Struts 2.5.34, 6.11.1 ou 7.3.1 — advisory Apache Software Foundation ASF-2026-003
- Si mise à jour impossible : désactiver le RestfulActionMapper dans struts.xml en supprimant la ligne de configuration du mapper legacy
- Déployer une règle WAF bloquant les URI contenant des séquences d'injection OGNL encodées dans le chemin de requête pour les applications Struts exposées
- Auditer les logs d'accès Apache/Tomcat pour détecter des URI suspects depuis le 5 octobre 2026
- Migrer les applications utilisant Struts 2.3.x (fin de vie) vers une version maintenue
⚠️ Urgence — RCE sans authentification, vecteur de ransomware connu
Les frameworks Struts vulnérables avec le legacy RESTful mapper activé sont directement exploitables depuis Internet. Les groupes de ransomware ont historiquement ciblé les failles OGNL Struts dans les jours suivant leur divulgation. Si vous ne pouvez pas patcher immédiatement, désactivez le RestfulActionMapper legacy dès maintenant.
Comment savoir si je suis vulnérable ?
Exécutez la commande suivante sur vos serveurs hébergeant des applications Struts : grep -r "struts.mapper.class" /chemin/vers/application/ --include="*.xml" --include="*.properties". Si le résultat contient la valeur rest, votre application utilise le RestfulActionMapper legacy et est potentiellement vulnérable si votre version de Struts est dans les plages affectées. Vérifiez la version de Struts dans le fichier pom.xml ou via le manifeste du JAR avec unzip -p struts2-core-*.jar META-INF/MANIFEST.MF | grep Implementation-Version.
Votre parc applicatif Java est-il exposé ?
Ayi NEDJIMI réalise des audits de sécurité applicatifs et identifie les frameworks vulnérables dans vos environnements de production.
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-97229 : GitLab CVSS 10.0 RCE sans auth via CI/CD regex
CVE-2026-97229 est une vulnérabilité CVSS 10.0 dans GitLab CE/EE permettant l'exécution de code distante sans authentification via une expression régulière forgée dans un fichier de configuration CI/CD, corrigée le 12 octobre 2026.
CVE-2026-104286 : FortiMail Zero-Day CVSS 9.8 exploité avant patch
Fortinet confirme l'exploitation active de CVE-2026-104286, un zero-day CVSS 9.8 dans FortiMail permettant d'écrire des fichiers arbitraires sans authentification avant la disponibilité du correctif.
CVE-2021-3199 : ONLYOFFICE RCE CVSS 9.8 exploité par Flax Typhoon — CISA KEV
CVE-2021-3199 (CVSS 9.8) est une vulnérabilité de path traversal menant à RCE dans ONLYOFFICE Document Server, ajoutée au CISA KEV le 8 octobre 2026 suite à son exploitation active par le groupe APT chinois Flax Typhoon.
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