PHP2Shell: actualiza por CVE-2026-109618 y CVE-2026-109619
El 21 de octubre de 2026 el proyecto PHP publicó correcciones para dos fallos críticos en el manejo de peticiones. CISA metió los dos en la lista de explotados cinco días después. Actualizar es el arreglo completo.
El equipo de seguridad de PHP divulgó dos vulnerabilidades el 21 de octubre de 2026, después de que el detalle se filtrara el 20 de octubre, antes del embargo. Se registran como CVE-2026-109618 y CVE-2026-109619. PHP puntuó cada una con 9,2 en CVSS v4. El apodo de los avisos es PHP2Shell.
Los fallos están en el motor que atiende peticiones web, no en una aplicación concreta. Las validaciones de un framework no quedan delante cuando el fallo ocurre antes de que corra el código de la aplicación.
Qué son los dos CVE
CVE-2026-109618 es un use-after-free en el camino donde falla una reserva de memoria al arrancar la petición y la limpieza posterior se fía de un estado a medio construir. CVE-2026-109619 es un use-after-free en el que un worker conserva estado global que todavía apunta a memoria de una petición ya terminada. El aviso de PHP dice que cualquiera de los dos puede llevar a ejecución remota de código sin inicio de sesión.
NVD puntuó el primero con 9,8 y el segundo con 8,1 en CVSS 3.1. Antes del lanzamiento circuló un 10,0. La PHP Foundation dijo que la puntuación que sostiene es 9,2. Usa la del fabricante para ordenar el trabajo, y la lista de CISA para ordenar la prisa.
Qué instalaciones de PHP están expuestas
El aviso nombra todo PHP que sirva peticiones web: PHP-FPM, Apache con mod_php, php-cgi, FrankenPHP y LiteSpeed. PHP considera mod_php el riesgo más alto porque una petición sin autenticar puede alcanzar el fallo antes de que corra código de la aplicación. El camino del primer fallo se describe desde PHP 7.3.0, y el del estado viejo desde PHP 5.4.0. Las ramas anteriores a 8.2 están fuera de soporte de seguridad.
La alerta de CISA del 21 de octubre, actualizada el 26, dice el mismo alcance y añade que los dos CVE entraron en el catálogo de vulnerabilidades explotadas el 26 de octubre de 2026, con plazo federal el 29 de octubre. Cloudflare reportó una ráfaga grande de intentos en la primera hora tras el anuncio. Ver sondas no es lo mismo que una intrusión confirmada en tu máquina. Es motivo para parchear el mismo día.
Las versiones que lo corrigen
Instala PHP 8.5.12, 8.4.27, 8.3.36 u 8.2.35, en la rama que ya uses. PHP 8.2 llega al fin de vida el 31 de diciembre de 2026, así que un equipo que pueda pasar a 8.3 o más nuevo debería planear ese salto junto a la actualización de seguridad, no en lugar de ella.
PHP publicó mitigaciones para quien no pueda reiniciar todavía. El proyecto dice que esas medidas cortan caminos concretos y no dejan la instalación a salvo. El arreglo completo es subir de versión y reiniciar php-fpm o Apache para que el binario viejo ya no esté cargado.
Qué hacer después de actualizar el paquete
Busca todos los intérpretes, no solo el del sitio principal. Imágenes de cron, paneles viejos y aparatos de proveedor suelen traer su propio PHP. La nota de WaterISAC del 29 de octubre señaló paneles expuestos a internet — Joomla, Laravel, XWiki y otros — como los sitios donde ya miran los atacantes.
Tras el reinicio, lee el registro de acceso desde el 17 de octubre, cuando Amazon reportó una sonda temprana, y trata archivos de administración inesperados o tareas programadas nuevas como un incidente. Rotar secretos que la aplicación pueda leer es razonable si el equipo estuvo expuesto y no puedes probar que las sondas fallaron. Este artículo no describe cómo se disparan los fallos.
La alerta de CISA, actualizada el 26 de octubre de 2026, y el aviso de seguridad de PHP del 21 de octubre de 2026.
https://www.php.net/archive/2026.php#2026-10-21-5
Preguntas frecuentes
¿Un sitio estático necesita este parche?
Solo si el servidor ejecuta PHP y responde HTTP con él. Un bucket estático sin intérprete PHP queda fuera del aviso. Un proxy inverso delante de PHP no quita el fallo.
¿Basta la mitigación durante el fin de semana?
PHP dice que las mitigaciones publicadas reducen caminos concretos y no son un arreglo completo. Programa la actualización a 8.5.12, 8.4.27, 8.3.36 u 8.2.35 y reinicia el servicio que carga el intérprete.
¿Qué CVE debe nombrar el ticket de cambio?
Nombra CVE-2026-109618 y CVE-2026-109619. Viajan en las mismas versiones y CISA listó los dos el 26 de octubre de 2026.