PHP - CVE-2026-91765
Date de publication :
Il s'agit d'une vulnérabilité dans l'extension SOAP de PHP.
PHP est un langage de script généraliste, exécuté côté serveur et largement utilisé pour le développement d'applications web. Son extension SOAP est un composant qui sert à créer des serveurs et des clients de services web SOAP.
La fonction cleanup_xml_node() du parseur XML SOAP parcourt le document de manière récursive, sans limite de profondeur. Cette fonction est appelée après l'analyse par libxml2, sur le chemin emprunté par SoapServer::handle() via php://input. Une récursion identique existe dans le décodeur de valeurs SOAP master_to_zval_int(), qui suit les références href et peut être orienté vers un cycle. Elle existe aussi dans la fonction de recherche de nœuds WSDL get_node_with_attribute_recursive_ex(). Une requête HTTP POST avec des dizaines de milliers d'éléments XML imbriqués suffit à épuiser la pile. Le processus plante alors avec un SIGSEGV. Aucune authentification ni configuration particulière n'est requise. Sous PHP-FPM, le worker qui traite la requête meurt. Un flux de requêtes épuise le pool de workers et met l'endpoint hors service. Le plantage ne donne pas le contrôle de l'exécution.
Elle permet à un attaquant non authentifié, à distance, de provoquer un déni de service sur tout endpoint SoapServer.
Informations
La faille est activement exploitée : Non
Un correctif existe : Oui
Une mesure de contournement existe : Non
Déni de service (à distance)
Exploitation
CWE-674 : Uncontrolled Recursion
Détails sur l'exploitation
• Vecteur d'attaque : Réseau
• Complexité de l'attaque : Faible
• 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 : Non
Preuve de concept
Une preuve de concept est disponible en sources ouvertes.
Systèmes ou composants affectés
• PHP versions 8.2.x antérieures à 8.2.34
• PHP versions 8.3.x antérieures à 8.3.35
• PHP versions 8.4.x antérieures à 8.4.26
• PHP versions 8.5.x antérieures à 8.5.11
Solutions ou recommandations
• PHP 8.3 versions 8.3.35 et supérieures
• PHP 8.4 versions 8.4.26 et supérieures
• PHP 8.5 versions 8.5.11 et supérieures