PHP tiene una falla crítica (CVE-2026-109619): un worker puede reutilizar memoria de una petición anterior y esto permite ejecutar código de forma remota y sin autenticación. Afecta a servidores con PHP 8.2, 8.3, 8.4 y 8.5 anteriores a las versiones corregidas, tanto con Apache mod_php como con PHP-FPM. Actualiza PHP cuanto antes y reinicia todos los workers.
Qué está pasando
PHP guarda cierta información global (errores, sesiones, objetos y extensiones) que el proceso worker conserva entre peticiones, pero que apunta a memoria de una sola petición. Esa información debe limpiarse antes de liberar la memoria. Si no se limpia, la petición siguiente que atiende el mismo worker puede leer datos que ya no existen (use after free). Con una manipulación cuidadosa de la memoria, un atacante puede llegar a ejecutar código remotamente.
El ataque necesita dos pasos en peticiones distintas que lleguen al mismo worker. Primero, una operación deja datos "huérfanos", por ejemplo cuando un error fatal la interrumpe: falta de memoria, Maximum execution time exceeded, fallo de require o errores de compilación. Después, otra operación usa esos datos antes de que PHP inicialice la nueva petición. Los dos casos confirmados son los avisos generados por configuraciones INI aplicadas por petición (por ejemplo, en .htaccess, php_value o parámetros PHP_VALUE enviados a FPM) y el progreso de subida de archivos de sesión (session.upload_progress), que viene activado por defecto.
El caso más sólido afecta a PHP 8.5 con fatal_error_backtraces activado y se demostró con ejecución remota de código en Apache mod_php. El caso de progreso de subida de sesión se validó tanto en mod_php como en PHP-FPM. Cambiar error_reporting, usar @ o desactivar display_errors o log_errors no protege, porque PHP accede a los datos antes de decidir si muestra o registra el aviso.
El impacto confirmado es ejecución remota de código sin autenticación con los privilegios del proceso web, además de fuga de información de memoria. Tener varios workers o reciclarlos reduce la probabilidad de éxito, pero no elimina el problema. Según el aviso, no existe una mitigación por configuración que cubra todos los casos.
Vulnerabilidades
| CVE | CVSS | Descripción |
|---|---|---|
| CVE-2026-109619 | — | Uso de memoria liberada en PHP por estado global que sobrevive entre peticiones del mismo worker (errores, sesión, objetos y extensiones). Permite fuga de memoria y ejecución remota de código sin autenticación. |
Productos afectados
| Producto | Versiones afectadas | Versión corregida |
|---|---|---|
| PHP (php-src) 8.2 | < 8.2.35 | 8.2.35 |
| PHP (php-src) 8.3 | < 8.3.36 | 8.3.36 |
| PHP (php-src) 8.4 | < 8.4.27 | 8.4.27 |
| PHP (php-src) 8.5 | < 8.5.12 | 8.5.12 |
Qué hacer ahora
- Identifica todos los servidores con PHP y verifica la versión instalada (por ejemplo, con
php -vophpinfo()), incluyendo los que usan Apache mod_php, PHP-FPM o LSAPI. - Actualiza a PHP 8.2.35, 8.3.36, 8.4.27 o 8.5.12 según tu rama. Es la única mitigación confiable.
- Reinicia todos los workers de PHP (Apache, PHP-FPM u otros) después de actualizar.
- Aplica también las recomendaciones del aviso relacionado GHSA-w8hw-w9fx-j79w (https://github.com/php/php-src/security/advisories/GHSA-w8hw-w9fx-j79w).
- Considera dejar
session.upload_progress.enabled=0aunque ya hayas actualizado, si no usas esa función.
Si no puedes actualizar de inmediato
Medidas temporales: reducen la exposición, pero no reemplazan la actualización.
- En PHP 8.5, si no puedes actualizar, define
fatal_error_backtraces=0de forma administrativa y reinicia todos los workers. Esto elimina el caso de ejecución remota confirmado, pero no cubre los demás. - Define
session.upload_progress.enabled=0de forma administrativa y reinicia todos los workers para bloquear el caso de progreso de subida de sesión. - Elimina los errores fatales en rutas que un atacante pueda alcanzar: subidas, importaciones, páginas de error, destructores, serialización, plugins y extensiones. Evita también que peticiones del atacante provoquen
Maximum execution time exceededde forma predecible. - Elimina los avisos generados por extensiones o por el servidor durante la limpieza al final de cada petición.
- Elimina los avisos de configuración INI aplicada por petición. Prefiere
php.ini, el pool de FPM o la configuración de inicio del servidor por sobre.htaccess,php_valueoPHP_VALUE, y quita las directivas obsoletas. - Si el rendimiento no es crítico, limita cada worker a una sola petición con
pm.max_requests=1. - Haz una auditoría aislada con
log_errors=On, unerror_logfuncional yerror_reporting=E_ALL. Revisa los logs de Apache, PHP-FPM y del proxy en busca de advertencias, deprecaciones, errores fatales yMaximum execution time exceeded. Que no aparezcan errores en los logs no garantiza que el servidor esté a salvo.
Te ayudamos a revisar sin costo si tus servidores o equipos usan una versión afectada por esta alerta, y qué conviene hacer primero.
Parte por los servidores expuestos a Internet que usan Apache con mod_php o que permiten overrides por directorio (.htaccess), y por las instalaciones con PHP 8.5: ahí están los casos confirmados. No olvides los servidores olvidados o heredados, los hostings compartidos, los contenedores con imágenes antiguas y los paneles de administración internos, que suelen quedar fuera de los ciclos de actualización. Si dependes de un proveedor de hosting, confírmale por escrito qué versión de PHP tienes y cuándo la actualizará.
Mientras actualizas, desactivar session.upload_progress.enabled casi nunca afecta a las aplicaciones y reduce bastante la exposición. Aprovecha para limpiar directivas obsoletas en .htaccess y en la configuración por sitio. Recuerda que el problema no termina al instalar el paquete: hasta que reinicies todos los workers, sigue activa la versión vulnerable.
Cómo te ayuda UpTech
Mientras aplicas la actualización, podemos definir en Cerberus WAF reglas específicas para las rutas y parámetros vulnerables de tu sitio. Reduce la exposición, pero no reemplaza el parche.
Conocer el servicio → Servicios Gestionados TICon Gestión de Parches, las actualizaciones de seguridad de sistemas operativos y aplicaciones se aplican de forma programada, sin depender de que alguien lea esta alerta a tiempo.
Conocer el servicio → Respaldo y MonitoreoLos respaldos inmutables (RPO desde 15 minutos) te dejan un punto de restauración limpio si la falla llega a ser explotada.
Conocer el servicio →Referencias
- https://github.com/php/php-src/security/advisories/GHSA-6wmf-4rv5-p3rp
- https://www.cve.org/CVERecord?id=CVE-2026-109619