Seguridad de la IA
PHP corrige los fallos críticos PHP2Shell revelados mediante investigación asistida por IA
PHP publicó correcciones para dos fallos críticos de seguridad de memoria tras investigaciones de Calif, OpenAI y Wiz asistidas por IA, mientras se notificaban intentos de ataque.
PHP publicó el 21 de octubre actualizaciones de seguridad de emergencia para dos vulnerabilidades críticas denominadas conjuntamente PHP2Shell, tras investigaciones en las que participaron Calif, OpenAI y Wiz. Las versiones corregidas son PHP 8.5.12, 8.4.27, 8.3.36 y 8.2.35. Tanto CVE-2026-109618 como CVE-2026-109619 tienen una puntuación de gravedad CVSS 4.0 de 9,2. Bajo las condiciones necesarias, un atacante puede ejecutar código sin autenticación; los investigadores también demostraron la divulgación de memoria de procesos que contiene información sensible.
Ambos avisos incluyen entre las versiones afectadas los lanzamientos anteriores dentro de esas cuatro ramas. Los investigadores rastrearon el código afectado hasta PHP 5.4, por lo que se trata de un problema del entorno de ejecución que abarca varias generaciones de aplicaciones. La advertencia de PHP comprende despliegues web con Apache mod_php, PHP-FPM, php-cgi, FrankenPHP y LiteSpeed. Un entorno vulnerable puede exponer una aplicación cuyo código sea seguro, pero las vías de ataque disponibles dependen del despliegue y del ciclo de vida de las solicitudes.
CVE-2026-109618 afecta a lo que sucede cuando se agota la memoria. PHP utilizaba un salto no local para abandonar el procesamiento, lo que podía interrumpir una operación antes de que sus datos internos de solicitud estuvieran completamente inicializados. La limpieza posterior podía leer esos datos incompletos como si fueran válidos y provocar corrupción de memoria. Es un fallo de gestión de errores e inicialización. El parche sustituye esa salida brusca por una respuesta controlada en un punto seguro de ejecución, además de terminar inmediatamente el proceso al alcanzar un umbral de memoria superior.
CVE-2026-109619 se refiere al estado interno que sobrevive a la solicitud propietaria de su memoria. Un error fatal, o determinados diagnósticos durante el cierre, puede dejar a un proceso de trabajo persistente con una referencia a almacenamiento liberado. Otra solicitud que llegue al mismo proceso puede usar el valor obsoleto antes de que la inicialización habitual lo borre. El aviso describe casos confirmados relacionados con las trazas de errores fatales de PHP 8.5 y el progreso de carga de las sesiones. La explotación requiere tanto una operación que deje estado residual como otra posterior que lo consuma.
Apache mod_php presenta el mayor riesgo evaluado: un ataque demostrado puede alcanzar el procesamiento vulnerable antes de que se ejecute código de la aplicación. PHP-FPM termina un proceso de trabajo cuando falla el inicio de la solicitud, bloqueando esa secuencia concreta. Sin embargo, el aviso sobre estado residual confirma una vía de FPM dependiente de la aplicación después de un inicio satisfactorio, cuando una operación interrumpida deja estado para una solicitud posterior. Las métricas de gravedad señalan una alta complejidad de ataque y condiciones adicionales de ejecución, junto con la ausencia de privilegios o interacción del usuario necesarios.
OpenAI afirmó que Calif identificó un fallo crítico con GPT-5.6 Sol a través de su iniciativa Patch the Planet. La PHP Foundation registra un informe del investigador Ryan A, de Calif, el 11 de agosto y otro informe independiente de OpenAI sobre la misma causa raíz ese día. El relato de Calif explica que el conocimiento del investigador sobre la historia de las vulnerabilidades de PHP ayudó a orientar la investigación; el descubrimiento inicial no dependió de un modelo inédito ni de un entorno especial de pruebas.
Wiz investigó y notificó de forma independiente las vulnerabilidades, presentando sus hallazgos el 24 de agosto. Su equipo utilizó Wiz Atlas, Gemini 4 Argon y GPT-5.6 Sol, y atribuyó a Argon un trabajo sustancial en descubrimiento, detección y validación de parches. Wiz demostró ataques contra despliegues de prueba de WordPress, Drupal y Joomla, además de una divulgación de memoria independiente. Describió pruebas repetidas y adaptaciones a distintas disposiciones de memoria, en lugar de un único exploit que funcione automáticamente en cualquier instalación de PHP.
Los mantenedores de PHP dirigieron las correcciones y la publicación. La Foundation señaló que habían surgido indicios del problema de agotamiento de memoria al abordar resultados de una auditoría de Quarkslab de 2024 organizada a través de OSTIF. Las decisiones sobre compatibilidad, rendimiento y extensiones habían retrasado una solución. OpenAI aportó apoyo a la investigación y coordinación con proveedores de infraestructura, mientras la Foundation financió a los ingenieros que trabajaban en la corrección. Los nuevos informes establecieron un impacto práctico de un problema cuyas posibilidades de explotación anteriores seguían sin demostrarse.
La divulgación se aceleró después de que los identificadores CVE empezaran a circular el 20 de octubre. La Foundation trasladó la publicación coordinada del 22 de octubre a las 14:00 UTC al 21 de octubre a las 14:00 UTC. Explicó que los distribuidores todavía necesitaban tiempo para terminar sus paquetes. Calif publicó después por error un vídeo de demostración, posteriormente eliminado, que reveló algunos detalles adicionales limitados. Las correcciones y los avisos técnicos ya son públicos.
Cloudflare afirmó que sus protecciones predeterminadas llegaron a los clientes que usan su WAF gratuito o de pago a las 03:02 UTC del 21 de octubre, y notificó tráfico de ataque con intentos de variar las cargas. Por separado, la Foundation dijo que no había encontrado exploits funcionales entre las pruebas de concepto en circulación que había inspeccionado hasta el momento de la divulgación. Estas observaciones no establecen una cifra confirmada de servidores comprometidos. Cloudflare siguió pidiendo aplicar los parches de PHP, y PHP señala que los cambios de configuración y el filtrado solo ofrecen protección parcial.
Las distribuciones y los proveedores de soporte a largo plazo recibieron los parches de antemano y pueden entregar paquetes con correcciones adaptadas. PHP 8.1 y versiones anteriores siguen fuera del soporte de seguridad ordinario del proyecto original, aunque este facilitó adaptaciones mínimas del código fuente para 7.4, 8.0 y 8.1 debido a la gravedad. Esos parches excepcionales no convierten las ramas antiguas en versiones con soporte. Para las aplicaciones alojadas, la corrección depende por tanto del entorno de ejecución PHP proporcionado por el operador, no solo de actualizar un sistema de gestión de contenidos.