
PHP 8.5.11 - Crítico - Remoto - UAF - CVE-2026-109619 PHP2Shell. Backtrace fatal del mismo worker y luego diagnóstico de INI en Apache mod_php. Laboratorio frente a 8.5.12. Aviso: RCE inferido.
Cualquiera en internet puede comunicarse con tu sitio PHP de la misma forma en que lo hace un navegador, sin contraseña. En la última versión afectada de PHP 8.5, puede forzar que una petición muera con un error fatal y luego enviar una segunda petición al mismo worker. PHP 8.5 conserva un backtrace de ese fatal en la memoria global del worker después de que el heap de la petición haya desaparecido. La segunda petición lo lee mientras aplica un flag INI residual, antes de que el motor se haya reiniciado. En este laboratorio esa segunda petición mata al proceso hijo de Apache. El PHP Group demostró que el mismo patrón puede convertirse en ejecución remota de código como el worker web.
Clase: UAF / Crash Alcance: Remoto
PHP 8.5.11 (php:8.5.11-apache) frente a 8.5.12 parcheado - php.net
CVE-2026-109619 es un estado obsoleto global del worker. El laboratorio fija Apache prefork a un solo hijo, produce un fatal con fatal_error_backtraces=On, y luego lo consume con php_flag auto_detect_line_endings on / report_memleaks off por directorio aplicados antes de php_request_startup(). 8.5.11: el productor devuelve 200 fatal, el consumidor reinicia la conexión, el log de Apache muestra zend_mm_heap corrupted. 8.5.12: la misma secuencia de dos fases se mantiene en pie (consumer-ok). El RCE del aviso se infiere del GHSA.
| ID | CVE-2026-109619 |
| Aviso | GHSA-6wmf-4rv5-p3rp |
| Clase | UAF / Crash (RCE inferido del aviso) |
| Alcance | Remoto (HTTP no autenticado, mismo worker) |
| CWE | CWE-416 / CWE-825 |
| CVSS | Crítico: 9.2 CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H (PHP Group) |
| Producto | PHP |
| Afectados | PHP 8.2 anterior a 8.2.35, 8.3 anterior a 8.3.36, 8.4 anterior a 8.4.27, 8.5 anterior a 8.5.12 (fijado en el laboratorio 8.5.11, la rama del backtrace es 8.5) |
| Corregido | 8.2.35 / 8.3.36 / 8.4.27 / 8.5.12 (21 oct 2026) |
| Autenticación | ninguna |
| Licencia | GNU Affero GPL v3.0 |
| Laboratorio | solo 127.0.0.1 |
Relacionado: CVE-2026-109618 OOM longjmp (pareja de PHP2Shell).
| Método | Sink | Privilegio |
|---|---|---|
GET /producer.php sin autenticar y luego GET /consumer.php en el mismo hijo prefork de Apache | El fatal_error_backtraces de 8.5 nunca se reinicia al apagar; el diagnóstico INI ocurre antes de php_request_startup() | Disponibilidad (probado en laboratorio): mata ese hijo (zend_mm_heap corrupted, reinicio de conexión) en 8.5.11. Integridad (inferido): puntero de backtrace colgante; el proveedor demostró RCE como www-data. Reconocimiento (inferido): divulgación de restos del heap de la petición. |
| La misma secuencia de dos fases en 8.5.12 | reinicio completo del estado | Cerrado (probado en laboratorio): el cuerpo del consumidor es consumer-ok, el worker se mantiene en pie. |
error_reporting / display_errors / @ | la advertencia sigue consumiendo el estado obsoleto | Cerrado como mitigación. Se accede al estado global antes de que PHP decida si reportar el diagnóstico. |
.user.ini del pool FPM | se aplica después de la inicialización normal | Cerrado como este consumidor temprano. FPM necesita PHP_VALUE / PHP_ADMIN_VALUE del frontend. El progreso de subida de sesión es una segunda rama confirmada por el proveedor (mod_php y FPM); este laboratorio usó la rama del backtrace de 8.5. |
Login, reverse shell, .so personalizado | n/a | Cerrado. No se intentó control de RIP. |
Probado en laboratorio frente a inferido: el UAF/crash en el mismo worker frente al control parcheado está probado en laboratorio. El RCE se infiere de GHSA-6wmf-4rv5-p3rp.
Requiere: Apache apache2handler prefork fijado a un solo worker. PHP 8.5 fatal_error_backtraces=On. Diagnóstico INI por directorio. php:8.5.11-apache oficial frente a php:8.5.12-apache.
python3 php-stale-global-uaf-Abraxas-Labs.py
o cd lab && ./run.sh. Loopback 127.0.0.1:18222 (8.5.11) frente a 127.0.0.1:18223 (8.5.12). Proyecto de Compose cve-2026-109619. Testigo CVE-2026-109619-UAF-WITNESS. Última línea:
SUCCESS CVE-2026-109619 vuln-uaf=yes vuln-crash=yes patched-ok=yes sapi=apache2handler pin=same-worker vuln-image=php:8.5.11-apache patched-image=php:8.5.12-apache how=backtrace crash=connection-reset CVE-2026-109619-UAF-WITNESS
Solo laboratorio autorizado. Se comunica con loopback.
Actualice a PHP 8.5.12 (o 8.2.35 / 8.3.36 / 8.4.27). Hasta entonces: fatal_error_backtraces=0 en 8.5 (solo este productor); session.upload_progress.enabled=0 (solo la rama de sesión); elimine el INI obsoleto por solicitud; pm.max_requests=1 si puede permitírselo. No existe una mitigación de configuración genérica completa.
Abraxas Labs [email protected]