PHP2Shell: dos fallas críticas en PHP y qué hacer esta semana
PHP2Shell son dos fallas críticas en el núcleo de PHP (CVE-2026-109618 y CVE-2026-109619) que permiten ejecutar código sin login. Ya se explotan. Qué versión necesitas, cómo revisarla y qué hacer si no puedes parchear hoy.

Respuesta corta
PHP2Shell son dos fallas críticas en el núcleo de PHP, CVE-2026-109618 y CVE-2026-109619, con CVSS 9.2. Permiten ejecutar código en el servidor sin iniciar sesión y afectan a PHP 5.4 en adelante. Ya hay ataques. Las versiones corregidas, del 21 de octubre de 2026, son 8.5.12, 8.4.27, 8.3.36 y 8.2.35.
El martes 21 de octubre, el Puerto de Róterdam, el portal de gobierno Overheid.nl y varios hospitales de Países Bajos sacaron sus sitios de internet. El Ministerio del Interior de Francia puso todos los suyos en «mantenimiento preventivo». Nadie reportó un ataque. Se desconectaron por precaución, porque esa mañana se supo que el lenguaje en el que corren tenía dos agujeros críticos.
El lenguaje es PHP. Es el mismo que mueve WordPress, Drupal, Joomla y Magento. Si tu empresa tiene un sitio web, una tienda en línea o un sistema interno con más de cinco años, es muy probable que corra PHP.
Respuesta corta. PHP2Shell son dos fallas críticas en el núcleo de PHP, CVE-2026-109618 y CVE-2026-109619, con CVSS 9.2. Permiten ejecutar código en el servidor sin iniciar sesión y afectan a PHP 5.4 en adelante. Ya hay ataques. Las versiones corregidas, del 21 de octubre de 2026, son 8.5.12, 8.4.27, 8.3.36 y 8.2.35.
¿Qué es PHP2Shell y por qué es tan grave?
Son dos errores de manejo de memoria en el propio intérprete de PHP. Uno aparece cuando PHP se queda sin memoria a mitad de una petición y deja datos a medio inicializar. El otro deja referencias a memoria ya liberada que una petición posterior, atendida por el mismo proceso, puede reutilizar. Encadenados, permiten ejecutar código en el servidor.
Tres cosas lo hacen grave:
- No hace falta un error en tu aplicación. Wiz demostró que hasta un «Hello World» es vulnerable. La falla está debajo de WordPress, no dentro.
- No hace falta login. Basta una petición HTTP armada con cuidado.
- Ya se explota. Cloudflare reportó tráfico de ataque contra sus clientes antes de la publicación oficial, porque el detalle se filtró antes de tiempo.
Wiz, que encontró las fallas, dice que corresponden a cerca del 70% de los sitios web del mundo. BleepingComputer da un rango de 75% a 80%. Censys contó 3,082,629 hosts y 56,663,669 propiedades web con PHP visibles desde internet. Wiz lo compara con Log4Shell, de 2021: no por la técnica, sino por lo difícil que va a ser parchear todo.
¿Qué versión de PHP necesitas?
El 21 de octubre de 2026 el equipo de PHP publicó cuatro versiones corregidas. Lo que tienes que mirar es el número completo, no solo la rama.
| Si corres… | Sube a… | Nota |
|---|---|---|
| PHP 8.5 | 8.5.12 | En 8.5 también aplica la mitigación fatal_error_backtraces=0 mientras actualizas |
| PHP 8.4 | 8.4.27 | Soportada |
| PHP 8.3 | 8.3.36 | Soportada |
| PHP 8.2 | 8.2.35 | Llega a fin de vida el 31 de diciembre de 2026: planifica el salto a 8.4 o 8.5 |
| PHP 7.4, 8.0 y 8.1 | Sin versión oficial | Solo hay parches mínimos de código fuente o arreglos de tu distribución o proveedor LTS. Lo sano es migrar |
| PHP 5.4 a 7.3 | Sin arreglo | Vulnerable y sin parche. Migrar o aislar |
Un detalle que confunde: en un hosting compartido, el selector de PHP suele decir «8.2» y nada más. Eso no te dice si tienes 8.2.34 (vulnerable) u 8.2.35 (corregida). Pídele al proveedor el número exacto, por escrito.
¿Cómo revisas qué versión corre tu sitio?
- Con acceso al servidor: ejecuta
php -v. Si usas contenedores, hazlo dentro de cada uno:docker exec <contenedor> php -v. Cada imagen trae su propio PHP. - En WordPress: Herramientas → Salud del sitio → Información → Servidor. Ahí aparece la versión de PHP completa.
- En hosting compartido o administrado: abre un ticket y pregunta tres cosas. Qué versión exacta corre tu cuenta, si ya aplicaron 8.x.y corregida y, si no, cuándo.
- Si administras varios sitios: haz la lista completa hoy. Sitio, servidor, versión de PHP y quién la actualiza. Esa lista es el trabajo.
¿Qué encontré al revisar mis propios sistemas?
Esta mañana hice la revisión completa, sistema por sistema, con php -v en cada uno. Uno de ellos tenía una versión vulnerable. Lo respaldé, lo actualicé a la versión corregida y verifiqué que siguiera funcionando. Todo en la misma mañana.
No lo cuento por el susto. Lo cuento porque ese sistema lo había montado yo hace pocas semanas, con versiones fijas y documentadas. Aun así, la falla estaba ahí. Si te pasa con un sistema que conoces de memoria, imagina con el sitio que armó otra persona hace tres años.
¿Qué haces si no puedes actualizar hoy?
Actualizar es la única corrección completa. El equipo de PHP lo dice así: «no hay mitigaciones completas, actualizar es la única opción segura». Mientras llegas ahí, estas medidas reducen el riesgo:
| Medida | Qué hace | Límite |
|---|---|---|
| WAF de Cloudflare | Bloquea los patrones de ataque conocidos. Activo en todos los planes con WAF, incluido el gratuito, desde las 3:02 UTC del 21 de octubre | Los atacantes ya mutan las cargas para evadir las reglas. Es temporal |
session.upload_progress.enabled=0 |
Desactiva una de las rutas del segundo CVE. PHP.net lo volvió a recomendar el 23 de octubre en un aviso aparte | Hay que reiniciar todos los workers |
post_max_size bajo |
Reduce el tamaño de las peticiones que pueden forzar el error de memoria. BleepingComputer cita 8M sin subidas y 32M con subidas | No cierra la falla |
| Bloquear multipart donde no se usa | Si tu aplicación no recibe formularios con archivos, corta esas peticiones antes de que lleguen a PHP | Solo sirve si de verdad no los usas |
| Desconectar | Recomendación del NCSC británico cuando no hay parche ni mitigación posible. Es lo que hicieron el 21 de octubre varias instituciones europeas | Pierdes el servicio, pero no el servidor |
Dos aclaraciones. Actualizar WordPress, sus plugins o el tema no corrige nada de esto: la falla vive en PHP. Y el aviso de PHP menciona memory_limit=-1 como mitigación principal del primer CVE. Úsala solo si el servidor tiene otro límite de memoria por fuera, como un contenedor con tope. Sin eso, cambias un riesgo por otro.
La pregunta ya no es si tu sitio tiene plugins al día. Es si alguien sabe, con número exacto, qué versión de PHP corre debajo.
¿Por qué la IA importa en esta historia?
Según la cronología de Wiz, la primera falla se encontró el 19 de agosto de 2026 con apoyo de modelos de IA (Gemini 4 Argon y GPT-5.6 Sol). Al día siguiente ya tenían ejecución remota contra Drupal. A los dos días, contra WordPress. Wiz lo resume así: los modelos de frontera redujeron de forma sustancial la barrera para convertir una falla vieja en un exploit.
Esta vez lo hicieron investigadores, con divulgación coordinada y dos meses para preparar el parche. La misma capacidad está disponible para quien no coordina con nadie. Lo práctico para tu empresa es que la ventana entre «se publica la falla» y «alguien la explota» se acorta. Tu ciclo de parcheo también tiene que acortarse.
¿Qué hacer esta semana?
- Haz el inventario. Cada sitio, tienda, intranet o sistema con PHP, con su versión exacta y quién la actualiza.
- Actualiza a 8.5.12, 8.4.27, 8.3.36 u 8.2.35. Empieza por lo que está expuesto a internet y por lo que corre con mod_php.
- Si dependes de un hosting, pide confirmación por escrito. Versión exacta y fecha de aplicación.
- Si no puedes parchear hoy, pon un WAF delante y aplica
session.upload_progress.enabled=0. - Si corres PHP 8.1 o anterior, agenda la migración. Esta no será la última falla, y ya no hay versiones oficiales para esas ramas.
- Revisa los logs. Wiz sugiere buscar peticiones multipart raras seguidas de errores de memoria o respuestas 500 repetidas, y cookies
PHPSESSIDanormalmente grandes.
Puntos clave
- PHP2Shell son dos fallas críticas en el núcleo de PHP, CVE-2026-109618 y CVE-2026-109619, con CVSS v4 de 9.2.
- Permiten ejecución remota de código sin autenticación y afectan a PHP 5.4 en adelante.
- Las versiones corregidas, del 21 de octubre de 2026, son 8.5.12, 8.4.27, 8.3.36 y 8.2.35. PHP 8.1 y anteriores no tienen versión oficial.
- Actualizar WordPress o sus plugins no las corrige: hay que actualizar PHP.
- Cloudflare ya vio ataques y activó reglas WAF en todos sus planes, incluido el gratuito.
- Las fallas se encontraron con apoyo de modelos de IA: la ventana entre publicación y explotación se acorta.
Si mañana alguien te pregunta qué versión de PHP corre el sitio de tu empresa, ¿sabrías la respuesta con número exacto, o tendrías que preguntarle a alguien más?
Preguntas frecuentes
¿Qué es PHP2Shell?
Es el nombre que Wiz le dio a dos vulnerabilidades críticas en el núcleo de PHP, CVE-2026-109618 y CVE-2026-109619, publicadas el 21 de octubre de 2026. Ambas tienen CVSS v4 de 9.2 y permiten ejecución remota de código sin autenticación. Afectan a toda versión de PHP de la última década, desde la 5.4.
¿Qué versión de PHP necesito para estar protegido?
Según el aviso de PHP.net, las versiones corregidas son 8.5.12, 8.4.27, 8.3.36 y 8.2.35. PHP 8.1 y anteriores ya no reciben versiones oficiales: el equipo de PHP publicó parches mínimos de código fuente para 7.4, 8.0 y 8.1, pero lo recomendado es subir a una rama soportada o pedir el arreglo a tu distribución o proveedor LTS.
¿Actualizar WordPress y sus plugins me protege de PHP2Shell?
No. Las fallas están en el intérprete de PHP, no en WordPress, Drupal, Joomla ni sus plugins. Wiz demostró que incluso una aplicación 'Hello World' es vulnerable. Lo que hay que actualizar es PHP en el servidor. Si tu hosting administra PHP, el que tiene que actualizar es el proveedor.
¿Cómo sé qué versión de PHP corre mi sitio?
Si tienes acceso al servidor, ejecuta php -v. En WordPress, entra a Herramientas, Salud del sitio, Información, y abre la sección Servidor. En hosting compartido, el panel suele mostrar solo la rama (por ejemplo 8.2), no el número de parche: pídele al proveedor la versión exacta por escrito.
¿Qué hago si no puedo actualizar PHP hoy?
Pon el sitio detrás de un WAF con reglas para estas fallas: Cloudflare las activó en todos sus planes, incluido el gratuito. Aplica las mitigaciones temporales del aviso, como session.upload_progress.enabled=0 y un post_max_size bajo. PHP aclara que ninguna mitigación es completa. Si nada de eso es posible, el NCSC británico recomienda desconectar el sistema hasta parchear.
¿Esto te pasa a ti? Hablemos de tu caso.
Bibliografía
- PHP.net — Security advisory y versiones 8.5.12, 8.4.27, 8.3.36 y 8.2.35 (21 oct 2026) — fuente primaria: versiones corregidas, CVSS v4 9.2, estado de PHP 8.1 y anteriores, parches mínimos de código fuente para 7.4/8.0/8.1, fin de vida de PHP 8.2 el 31 de diciembre de 2026 y el aviso informativo del 23 de octubre sobre session.upload_progress
- PHP — GHSA-w8hw-w9fx-j79w, CVE-2026-109618: RCE via OOM corruption — descripción técnica, SAPI confirmada (Apache mod_php) y lista de mitigaciones temporales
- Wiz — PHP2Shell (21 oct 2026) — nombre PHP2Shell, cronología (descubrimiento el 19 de agosto, reporte el 24 de agosto), uso de modelos de IA, RCE demostrada contra WordPress, Drupal y Joomla, y la cifra del 70% de los sitios web. Wiz es anunciante de KrebsOnSecurity
- Cloudflare Blog — protección WAF para las vulnerabilidades de PHP (21 oct 2026) — reglas WAF en todos los planes con WAF, incluido Free, activas desde las 3:02 UTC del 21 de octubre, y tráfico de ataque observado
- Censys — Advisory CVE-2026-109618 / CVE-2026-109619 — 3,082,629 hosts y 56,663,669 propiedades web con PHP expuestas; la cifra subió respecto del primer reporte (2.58 millones y 54.9 millones) por mejoras de detección
- BleepingComputer — PHP ships emergency patches for critical PHP2Shell flaws (Sergiu Gatlan, 21 oct 2026) — SAPI afectadas, mitigaciones temporales, cita de Cloudflare sobre ataques tempranos y recomendación del NCSC
- KrebsOnSecurity — Widespread PHP Flaw May Cause Many Site Outages Today (21 oct 2026) — noticia de origen: sitios de gobierno en Europa fuera de línea (según Reuters) y comparación con Log4Shell
- Reuters vía The Star — EU agency warns websites may need to be taken offline as PHP prepares patches (Raphael Satter y otros, 21 oct 2026) — sitios desconectados por precaución: Puerto de Róterdam, Overheid.nl, hospitales neerlandeses y el Ministerio del Interior de Francia
Sigue leyendo
- Ciberseguridad & ParcheoBigDiskBuster: el zero-day que deja a Windows Defender sin actualizacionesBigDiskBuster es un zero-day de denegación de servicio que bloquea las actualizaciones de Microsoft Defender Antivirus en segundo plano. Sin CVE asignado, sin parche real. Qué implica si tu pyme solo tiene Defender.
- Ciberseguridad & Parcheo974 parches de Microsoft en un día: cuáles te aplicanMicrosoft publicó 974 parches el 8 de septiembre de 2026, con 2 zero-days y 113 críticos. Qué instalar primero en una pyme y cómo priorizar sin adivinar.
- IA & CiberseguridadOpenAI acaba de vender el arma y el escudo en la misma tiendaOpenAI lanzó GPT-5.6-Cyber, entrenado para encontrar vulnerabilidades y construir exploits. Qué significa para una pyme que la construcción de exploits deje de ser cara.