Skip to content

Apache Struts : quatre failles dont une RCE par injection OGNL

L'avis CERTFR-2026-AVI-1290 relaie quatre CVE dans Apache Struts, dont CVE-2026-104711, une injection OGNL menant à l'exécution de code. Correctifs en Struts 6.12.0 et 7.4.0.

Publié le 3 min de lecture

La fondation Apache a publié quatre bulletins de sécurité pour Apache Struts, relayés par l'ANSSI dans l'avis CERTFR-2026-AVI-1290 du 9 octobre 2026. La plus sérieuse, CVE-2026-104711, est une injection OGNL menant à l'exécution de code à distance. Les correctifs sont dans Struts 6.12.0 et 7.4.0.

La faille à surveiller : injection OGNL

CVE-2026-104711 (S2-075) est une injection OGNL dans l'ancien RESTful action mapper pouvant conduire à une exécution de code arbitraire à distance. Sont affectées les branches Struts 2.0.0 à 2.3.37 (fin de vie), 2.5.0 à 2.5.33 (fin de vie), 6.0.0 à 6.11.0, et 7.0.0 à 7.3.0 — ces dernières uniquement lorsque la liste blanche OGNL est désactivée. Si vous avez explicitement coupé cette protection sur une 7.x, vous êtes dans la cible immédiate.

Les trois autres CVE

  • CVE-2026-104712 (S2-076) — déni de service : expansion disproportionnée de la réponse lors de la conversion de type de paramètres décimaux. Affecte 2.5.14 à 2.5.33 (fin de vie), 6.0.0 à 6.11.0, 7.0.0 à 7.3.0.
  • CVE-2026-104713 (S2-077) — déni de service : le plugin REST lit le corps des requêtes en mémoire sans borne de taille. Affecte 2.1.8 à 2.3.37 (fin de vie), 2.5.0 à 2.5.33 (fin de vie), 6.0.0 à 6.11.0, 7.0.0 à 7.3.0.
  • CVE-2026-104714 (S2-078) — concurrence : un formateur de messages partagé entre requêtes concurrentes peut exposer la valeur de date ou d'heure d'un utilisateur dans la réponse d'un autre. Impacts divulgation de données et déni de service, sévérité maximale modérée.

Systèmes affectés

  • Vulnérable : Struts 6.x antérieur à 6.12.0, Struts 7.x antérieur à 7.4.0, et les branches Struts 2 (2.x), qui ne sont plus maintenues.
  • Corrigé : 6.12.0 sur la branche 6.x, 7.4.0 sur la branche 7.x.

Apache ne fournit pas de correctif pour les branches 2.x en fin de vie : la seule issue y est la migration.

Exploitation

Aucune exploitation en conditions réelles n'est signalée à ce stade, ni par Apache ni par l'avis CERT-FR, et aucun code d'exploitation public n'est référencé pour ces CVE. La réserve s'impose néanmoins : les injections OGNL dans Struts ont un lourd passif — la faille S2-045 (CVE-2017-5638) est à l'origine de la compromission d'Equifax en 2017. Une RCE OGNL sur un framework web exposé se patche vite.

Que faire

  1. Mettre à jour vers Struts 6.12.0 ou 7.4.0 selon votre branche.
  2. Vérifier la configuration de la liste blanche OGNL sur les déploiements 7.x : si elle est désactivée, CVE-2026-104711 vous expose à la RCE — la réactiver est une mitigation d'appoint immédiate.
  3. Recenser l'usage de l'ancien RESTful action mapper et du plugin REST, composants au cœur de trois des quatre failles.
  4. Planifier la sortie des branches Struts 2.x en fin de vie, qui ne recevront pas de correctif.

Contexte

Quatre CVE d'un coup, dont une RCE, sur un framework encore très présent dans les applications Java d'entreprise : l'intérêt ne tient pas à la nouveauté de la technique — l'OGNL est le terrain de chasse historique de Struts — mais à la surface installée. Le piège serait de ne retenir que la RCE et d'ignorer les trois DoS : sur une application en façade, un déni de service non authentifié par simple requête REST reste une arme de blocage bon marché.

Articles liés