Apache - CVE-2026-104711

Date de publication :

Il s'agit d'une vulnérabilité d'injection d'expression OGNL dans le mapper d'actions RESTful historique (legacy) du framework Apache Struts.

Apache Struts est un framework Java open source de développement d'applications web selon le modèle MVC (Modèle-Vue-Contrôleur). Il gère les actions, les vues et le traitement des requêtes HTTP des applications qui l'embarquent. Il est maintenu par l'Apache Software Foundation.

Une requête HTTP spécialement forgée injecte une expression OGNL (Object-Graph Navigation Language) évaluée côté serveur. Les applications qui utilisent le mapper d'actions par défaut, le mapper restful2 ou le plugin Struts REST ne sont pas concernées. Struts 7 n'est touché que si la liste d'autorisation OGNL est désactivée, alors qu'elle est activée par défaut. Aucune authentification préalable n'est mentionnée par l'éditeur.

Elle permet à un attaquant distant de provoquer l'exécution de code arbitraire sur le serveur.

Informations

La faille est activement exploitée : Non

Un correctif existe : Oui

Une mesure de contournement existe : Oui

Risques

Exécution de code arbitraire (à distance)

Exploitation

La vulnérabilité exploitée est du type
CWE-917 : Improper Neutralization of Special Elements used in an Expression Language Statement ('Expression Language Injection')

Détails sur l'exploitation
•   Vecteur d'attaque : Réseau
•   Complexité de l'attaque : Élevée
•   Privilèges nécessaires pour réaliser l'attaque : Aucun
•   Interaction d'un utilisateur ayant accès au produit est-elle nécessaire : Non
•   L'exploitation de la faille permet d'obtenir des droits privilégiés : En attente d’information

Preuve de concept
Actuellement, aucune preuve de concept n'est disponible en sources ouvertes.

Systèmes ou composants affectés

•   Apache Struts versions 2.0.0 jusqu'à 2.3.37 (fin de vie)
•   Apache Struts versions 2.5.0 jusqu'à 2.5.33 (fin de vie)
•   Apache Struts versions 6.0.0 jusqu'à 6.11.0
•   Apache Struts versions 7.0.0 jusqu'à 7.3.0, uniquement si la liste d'autorisation OGNL est désactivée

Contournement provisoire

•   Struts 2.0.0 jusqu'à 2.3.37 et 2.5.0 jusqu'à 2.5.33 : utiliser le mapper d'actions par défaut, le mapper restful2 ou le plugin Struts REST à la place du mapper RESTful historique
•   Struts 6.0.0 jusqu'à 6.11.0 : utiliser le mapper d'actions par défaut, le mapper restful2 ou le plugin Struts REST à la place du mapper RESTful historique
•   Struts 7.0.0 jusqu'à 7.3.0 : utiliser le mapper d'actions par défaut, le mapper restful2 ou le plugin Struts REST, ou conserver la liste d'autorisation OGNL activée (configuration par défaut, non affectée)

Solutions ou recommandations

•   Apache Struts versions 6.12.0 et supérieures (branche 6.x)
•   Apache Struts versions 7.4.0 et supérieures (branche 7.x)
•   Aucun correctif n'est listé pour les branches 2.0.0 à 2.3.37 et 2.5.0 à 2.5.33 (fin de vie), l'éditeur recommande de migrer vers 6.12.0 ou 7.4.0 ou de ne plus utiliser le mapper RESTful historique