
CVE-2026-109618/109619 Investigación de explotación de session.upload_progress en PHP — POC y análisis
Investigación de seguridad independiente sobre las vulnerabilidades críticas de session.upload_progress en PHP (CVSS v4.0 9.2).
Autor: Qi Deng (@ikow)
Fecha: 2026-10-21
Análisis completo: qideng.substack.com
Dos vulnerabilidades críticas de RCE previas a la autenticación en el manejador session.upload_progress del núcleo de PHP, que afectan a PHP 5.4.0 hasta 8.5.x. Este repositorio contiene POCs de verificación y la configuración del laboratorio para pruebas de seguridad autorizadas.
| Cadena | Tipo | Condiciones | Verificado |
|---|---|---|---|
| Inyección de archivo de sesión + LFI | Error lógico | upload_progress=On (predeterminado) + LFI en la aplicación | ✅ RCE |
| UAF en var_destroy → Sobrescritura del manejador | Corrupción de memoria | unserialize() + /proc/self/mem | ✅ ASAN + RCE |
Discrepancia de manejador → __destruct | Deserialización | Discrepancia de manejador entre directorios + gadget POP | ✅ RCE |
session.use_only_cookies (PR #22113)__destruct en var_destroy — heap-use-after-free confirmado por ASANPS(serializer) no se restablece en RSHUTDOWN — fuga del serializador entre peticiones en FPM__destruct se ejecuta ante un FALLO de decodificación — inyección de objetos mediante discrepancia de manejador + datos finalespoc/
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
Esta investigación es únicamente para pruebas de seguridad autorizadas y fines educativos. No la utilice contra sistemas que no sean de su propiedad o para los que no tenga autorización explícita de prueba.
MIT