PHP — Parches de Emergencia para Dos Vulnerabilidades Críticas de Ejecución Remota de Código PHP2Shell (CVE-2026-109618)
Fecha de publicación: 21 de octubre de 2026
Categoría: Vulnerability / Web Security
Introducción
El equipo de desarrollo de PHP ha emitido de forma imprevista actualizaciones de emergencia destinadas a solucionar dos vulnerabilidades críticas de Ejecución Remota de Código (RCE) que residen directamente en el motor del lenguaje. Las fallas, agrupadas bajo la denominación PHP2Shell, afectan a prácticamente todas las versiones de PHP desplegadas desde la rama 5.4. El hallazgo fue reportado de manera coordinada por investigadores de Wiz, Calif y el equipo de seguridad de OpenAI, quienes contaron con la colaboración del equipo de seguridad de PHP y Google Gemini para la elaboración de los parches. Ante el surgimiento de intentos de explotación en la naturaleza y la filtración de detalles previos al anuncio oficial, se han liberado las versiones 8.5.12, 8.4.27, 8.3.36 y 8.2.35, así como backports específicos para ramas descontinuadas.
¿Qué es PHP2Shell? (Análisis General)
PHP2Shell no es una vulnerabilidad limitada a una aplicación o framework web específico (como WordPress o Laravel), sino un fallo estructural arraigado profundamente en el motor de ejecución de PHP. Esto implica que cualquier sitio web alojado en una versión vulnerable de PHP se encuentra expuesto al riesgo de ejecución arbitraria de código, incluso si el código fuente de la aplicación desarrollada a medida está completamente limpio y seguro.
El vector de riesgo se incrementa drásticamente en entornos que utilizan el módulo mod_php de Apache, donde un atacante no autenticado puede activar la condición de ataque antes de que se ejecute una sola línea de código de la aplicación.
Resumen Técnico de los CVEs (Datos Oficiales NVD)
- CVE-2026-109618
- Puntuación CVSS v4.0: 9.2 (CRITICAL)
- Vector CVSS oficial:
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N - Clasificación CWE oficial: CWE-416 (Use After Free), CWE-755 (Improper Handling of Exceptional Conditions), CWE-824 (Access of Uninitialized Pointer), CWE-1325 (Improperly Controlled Resource Consumption).
- Catálogo CISA KEV: No reportado.
- CVE-2026-109619
- Puntuación CVSS v4.0: 9.2 (CRITICAL)
- Vector CVSS oficial:
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N - Clasificación CWE oficial: CWE-416, CWE-755, CWE-824, CWE-1325.
- Catálogo CISA KEV: No reportado.
¿Cómo funciona? (Análisis Técnico)
El análisis técnico revelado por los equipos de investigación y el proyecto PHP detalla mecanismos complejos relacionados con la gestión de memoria interna del intérprete:
- Flujo inicial de infección y CVE-2026-109618: PHP utiliza la función
longjmp()ante errores de falta de memoria (OOM) para abandonar de forma abrupta el contexto actual y abortar el procesamiento de la solicitud. Sin embargo, ciertos contextos no gestionan correctamente este escenario, dejando la memoria de la solicitud en un estado no inicializado (uninitialized state) antes de realizar una nueva asignación. El subsiguiente procedimiento de limpieza de la solicitud puede leer o realizar saltos lógicos sobre esta memoria corrupta, permitiendo que múltiples estrategias de OOM desencadenen consistentemente una ejecución remota de código. - Mecanismo de estado global y CVE-2026-109619: PHP mantiene diversos estados globales que apuntan temporalmente a zonas de memoria de las solicitudes. En determinados escenarios, este estado global no se restablece correctamente o se repone de manera errónea tras un reseteo. Como resultado, el estado global hace referencia a memoria de solicitudes que ya ha sido liberada (Use-After-Free). Las solicitudes posteriores pueden leer o bifurcar sobre este estado obsoleto antes de que sea completamente inicializado, logrando el control del flujo de ejecución.
- Exfiltración de memoria de trabajadores: Además del riesgo de RCE, los atacantes demostraron que es posible leer directamente la memoria activa de los procesos de trabajo (workers) de PHP sin necesidad de lograr ejecución de código previa. Dicha memoria suele contener credenciales sensibles, tokens de autenticación, claves de API y certificados pertenecientes a otras solicitudes concurrentes.
Sistemas / Entornos Afectados
Cualquier instalación de PHP que procese solicitudes web está expuesta, incluyendo PHP-FPM, mod_php de Apache, php-cgi, FrankenPHP y LiteSpeed.
| CVE | Categoría (CWE) | Impacto | CVSS | Vector (resumido) |
|---|---|---|---|---|
| CVE-2026-109618 | CWE-416, CWE-755, CWE-824, CWE-1325 | Ejecución Remota de Código / Lectura de Memoria | 9.2 (Critical) | AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H |
| CVE-2026-109619 | CWE-416, CWE-755, CWE-824, CWE-1325 | Ejecución Remota de Código / Lectura de Memoria | 9.2 (Critical) | AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H |
- Versiones afectadas y parches oficiales:
- Rama PHP 8.5: Vulnerable en versiones inferiores a 8.5.12 (Parche: 8.5.12)
- Rama PHP 8.4: Vulnerable en versiones inferiores a 8.4.27 (Parche: 8.4.27)
- Rama PHP 8.3: Vulnerable en versiones inferiores a 8.3.36 (Parche: 8.3.36)
- Rama PHP 8.2: Vulnerable en versiones inferiores a 8.2.35 (Parche: 8.2.35)
Mitigación y Detección
Remediación
La única solución definitiva y completa es actualizar el tiempo de ejecución de PHP a las versiones parcheadas mencionadas y reiniciar los servicios web (Apache, PHP-FPM y procesos de larga duración). Las distribuciones Linux y proveedores de LTS han incorporado los parches en sus paquetes; se aconseja verificar los registros de cambios (changelog) de los paquetes en lugar de confiar únicamente en la cadena de versión.
Si no es posible actualizar de inmediato, existen configuraciones temporales de mitigación parcial (que no garantizan seguridad total):
- Para CVE-2026-109618: Configurar
memory_limit=-1para impedir que las aplicaciones lo sobrescriban, mantenerpost_max_sizeen valores bajos y aplicar límites estrictos de tamaño de solicitud en el servidor web o proxy inverso. - Para CVE-2026-109619: Establecer
session.upload_progress.enabled=0y reiniciar los workers; en PHP 8.5, configurar adicionalmentefatal_error_backtraces=0.
“La única mitigación real es parchear y actualizar PHP. Lamentablemente sé demasiado sobre la complejidad interna de estos fallos.” — Gina Peter Banyard, Desarrollador Core de PHP.
Detección
Los equipos de seguridad defensiva (Blue Team) deben monitorear los registros de errores y telemetría de red bajo los siguientes indicadores:
- Peticiones multiparte inusuales seguidas de errores de límite de memoria (
memory_limit) o respuestas HTTP 500 repetidas. - Cookies de respuesta
PHPSESSIDcon tamaños anómalos o sospechosos. - Reinicios inexplicables y recurrentes en los procesos de trabajo de PHP.
Recapitulando
Las vulnerabilidades PHP2Shell representan una de las amenazas más graves descubiertas a nivel de infraestructura web en los últimos años, afectando al motor de PHP con más de una década de antigüedad en su código subyacente. El uso de modelos de inteligencia artificial por parte de los investigadores aceleró la transformación de estas primitivas en exploits funcionales viables, evidenciando un cambio en la velocidad con la que las fallas complejas de bajo nivel pueden ser operacionalizadas. La actualización inmediata de los runtimes es un requisito indispensable para garantizar la integridad de los servidores web a nivel global.
Referencias
- Khandelwal, S. (2026). PHP Issues Emergency Patches for Two Critical PHP2Shell RCE Flaws as Exploit Attempts Emerge. The Hacker News. https://thehackernews.com/2026/10/php-issues-emergency-patches-for-two.html
- PHP Project. (2026). GHSA-w8hw-w9fx-j79w: PHP longjmp OOM vulnerability. GitHub Security Advisory. https://github.com/php/php-src/security/advisories/GHSA-w8hw-w9fx-j79w
- PHP Project. (2026). GHSA-6wmf-4rv5-p3rp: PHP global state memory corruption vulnerability. GitHub Security Advisory. https://github.com/php/php-src/security/advisories/GHSA-6wmf-4rv5-p3rp
- Wiz, Calif, & OpenAI. (2026). PHP2Shell: Critical RCE Vulnerabilities in PHP Runtime. https://www.php2shell.com/
- PHP Security Advisory. (2026). PHP 8.2.35, 8.3.36, 8.4.27, 8.5.12 Released. https://www.php.net/archive/2026.php#2026-10-21-5
- Cloudflare. (2026). PHP Vulnerabilities WAF Protection and Early Attack Observations. https://blog.cloudflare.com/php-vulnerabilities-waf-protection
- WatchTowr. (2026). Technical FAQ and Reproduction Analysis for PHP CVE-2026-109618. https://watchtowr.com/intelligence/php-cve-2026-109618-faq/