
Exploitation de CVE-2026-109618/109619 via session.upload_progress en PHP — POC et analyse
Recherche de sécurité indépendante sur les vulnérabilités critiques PHP session.upload_progress (CVSS v4.0 9.2).
Auteur : Qi Deng (@ikow)
Date : 2026-10-21
Analyse complète : qideng.substack.com
Deux vulnérabilités critiques de RCE pré-authentification dans le gestionnaire session.upload_progress du cœur de PHP, affectant PHP 5.4.0 jusqu'à 8.5.x. Ce dépôt contient des POC de vérification et une configuration de laboratoire pour des tests de sécurité autorisés.
| Chaîne | Type | Conditions | Vérifié |
|---|---|---|---|
| Injection de fichier de session + LFI | Bug logique | upload_progress=On (par défaut) + LFI de l'application | ✅ RCE |
| UAF var_destroy → Écrasement de gestionnaire | Corruption mémoire | unserialize() + /proc/self/mem | ✅ ASAN + RCE |
Incohérence de gestionnaire → __destruct | Désérialisation | Incohérence de gestionnaire inter-répertoires + gadget POP | ✅ RCE |
session.use_only_cookies (PR #22113)__destruct de var_destroy — heap-use-after-free confirmé par ASANPS(serializer) non réinitialisé dans RSHUTDOWN — fuite de sérialiseur inter-requêtes dans FPM__destruct déclenché en cas d'ÉCHEC de décodage — injection d'objet via incohérence de gestionnaire + données de finpoc/
verify_session_injection.py — Verify filename injection into session files
verify_uaf_asan.php — Trigger ASAN heap-use-after-free (var_destroy)
verify_handler_mismatch.py — Verify handler mismatch → object deserialization
lab/
docker-compose.yml — PHP 8.2.34 FPM + nginx lab environment
Dockerfile — Vulnerable PHP build
php.ini — Lab configuration
setup.sh — One-click lab setup
docs/
ANALYSIS.md — Full technical analysis
# Start the lab
cd lab && ./setup.sh
# Verify session injection
python3 poc/verify_session_injection.py --target http://127.0.0.1:18080
# Verify UAF (requires ASAN build)
docker exec php-asan-lab php poc/verify_uaf_asan.php
# Verify handler mismatch
python3 poc/verify_handler_mismatch.py --target http://127.0.0.1:18080
session.upload_progress); Immediate mitigation (does NOT fix all attack paths)
session.upload_progress.enabled = Off
session.use_only_cookies = On
Cette recherche est destinée uniquement à des tests de sécurité autorisés et à des fins éducatives. Ne l'utilisez pas contre des systèmes que vous ne possédez pas ou pour lesquels vous ne disposez pas d'une autorisation explicite de test.
MIT