
Exploit Python pour CVE-2026-109618 : exploite la corruption de tas de session.upload_progress de PHP pour écraser zend_call_function et parvenir à une exécution de commandes à distance.
██████╗ ██╗ ██╗██████╗ ██████╗ ███████╗██╗ ██╗███████╗██╗ ██╗ ██╔══██╗ ██║ ██║██╔══██╗╚════██╗██╔════╝██║ ██║██╔════╝██║ ██║ ██████╔╝ ███████║██████╔╝ █████╔╝███████╗███████║█████╗ ██║ ██║ ██╔═══╝ ██╔══██║██╔═══╝ ██╔═══╝ ╚════██║██╔══██║██╔══╝ ██║ ██║ ██║ ██║ ██║██║ ███████╗███████║██║ ██║███████╗███████╗███████╗ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚══════╝╚══════╝╚═╝ ╚═╝╚══════╝╚══════╝╚══════╝
Exploit d'exécution de code à distance via la progression d'upload de session PHP (CVE-2026-109618)
CVE-2026-109618 est une vulnérabilité critique de corruption de mémoire et de logique dans le moteur PHP, liée au suivi de la progression des uploads de fichiers via les sessions (session.upload_progress).
La faille réside dans la manière dont le pointeur externe post_bytes_processed est mis en cache lors de la première phase de la requête (FILE_START) et ne se rafraîchit pas correctement lors des événements d'upload suivants. En combinant une condition de course, la libération destructive des arbres Hash (HashTable.pDestructor = zval_ptr_dtor) et un heap spray contrôlé à l'aide de structures remplies (t[] tables naturelles compactées), il est possible d'écraser des pointeurs de fonction internes du moteur (tels que zend_call_function) afin de rediriger le flux d'exécution vers system() avec des commandes arbitraires.
L'outil nécessite la bibliothèque rich pour le rendu de l'interface console, des bannières et des panneaux interactifs.
git clone [https://github.com/Ghxstsec/php2shell-poc.git](https://github.com/Ghxstsec/php2shell-poc.git)
cd php2shell-poc
Installez les dépendances requises
pip install -r requirements.txt
(Ou simplement : pip install rich)
🚀 Utilisation et exemples
Exécutez le script avec les paramètres appropriés pour le système ciblé :
python3 php2shell.py -u "[https://target-domain.com/path/index.php](https://target-domain.com/path/index.php)" -c "uname -a; id"
Options de ligne de commande Paramètre Description Valeur par défaut -u, --url URL complète du point de terminaison PHP vulnérable Obligatoire -c, --command Commande à exécuter sur le système d'exploitation uname -a; id; echo JACKALPOC --sid Identifiant de session personnalisé (PHPSESSID) a1b2c3d4e5f6a7b8c9d0e1f2a3 --stall Durée du blocage en secondes 1.35 --dtor Adresse mémoire divulguée de zval_ptr_dtor (hex/int) 0 --call Adresse mémoire explicite pour zend_call_function Calculée via l'offset --dry Mode simulation : génère et enregistre la charge utile binaire sur le disque False 🛠️ Détails techniques
Heap Spraying : Utilise un bloc de 149 éléments (table naturelle compactée avec des bins de 320 octets) pour garantir la réutilisation du bloc de mémoire libéré.
Prise en charge SAPI : Conçu pour les environnements évalués sous des architectures CGI/FastCGI et des serveurs front-end compatibles (tels que LiteSpeed LSAPI / Apache / Nginx).
Dry Run : Permet de vider le flux d'octets exact de la charge utile multipart générée à des fins d'analyse forensique ou de débogage à l'aide du flag --dry.
🛠️ Détails techniques
Versions affectées : PHP 5.4 jusqu'à PHP 8.x (correctifs publiés par les mainteneurs de PHP pour 8.2, 8.3, 8.4 et 8.5).
Heap Spraying : Utilise un bloc de 149 éléments (table naturelle compactée avec des bins de 320 octets) pour garantir la réutilisation du bloc de mémoire libéré.
Prise en charge SAPI : Conçu pour les environnements évalués sous des architectures CGI/FastCGI et des serveurs front-end compatibles (tels que LiteSpeed LSAPI / Apache / Nginx).
Dry Run : Permet de vider le flux d'octets exact de la charge utile multipart générée à des fins d'analyse forensique ou de débogage à l'aide du flag --dry.
📦 Fichier requirements.txt
rich>=13.0.0
urllib3>=1.26.0
⚠️ Avis juridique (Clause de non-responsabilité)
Ce logiciel a été créé exclusivement à des fins éducatives, de recherche en sécurité et d'audit autorisé (Pentesting). L'auteur (Ghxstsec) décline toute responsabilité en cas de mauvaise utilisation ou de dommages causés par l'usage inapproprié de ce script sur des systèmes non autorisés.