El fallo está en el motor
INF-2026-1087Vulnerabilidad críticaTLP:CLEAR
Dos fallos en el motor de PHP permiten ejecutar código en el servidor con una sola petición HTTP, sin autenticación. Una aplicación sin un solo fallo en su código sigue expuesta.
- 9,2
- CVSS v4.0Ambas, crítica
- 2
- CVE encadenadasRCE sin iniciar sesión
- ~70 %
- De la webFunciona sobre PHP
- 5.4
- Versión mínimaAfectada desde entonces
Hay prueba de concepto pública y la ventana entre divulgación y ataque se mide en horas. Parchea a 8.5.12, 8.4.27, 8.3.36 u 8.2.35 y reinicia los workers.
Dos caminos hasta tu servidor
Las dos CVE nacen del mismo sitio: cómo reacciona PHP cuando se queda sin memoria a mitad de una petición.
Abandona la tarea, salta a un punto de recuperación y se salta la limpieza. Quedan referencias que apuntan a memoria que ya no existe, y cada CVE aprovecha ese hueco por su camino.
CVE-2026-109618Una petición
- Una subida gigante agota la RAM
- PHP aborta y libera memoria a medio construir
- La memoria queda corrupta
CVE-2026-109619Dos peticiones
- La petición 1 muere y deja punteros colgando
- La petición 2 los sigue: use-after-free
- La memoria queda corrupta
RCE
Ejecución de código en el servidor
- CVE-2026-109618 · una petición
- Una subida sobredimensionada agota la RAM antes de que PHP termine de preparar la petición. Al abortar, su limpieza libera memoria a medio construir y la corrompe. En Apache con mod_php ocurre durante el arranque, antes de cargar el código de la aplicación.
- CVE-2026-109619 · dos peticiones
- Un worker atiende muchas peticiones por turnos y guarda punteros globales, como el de
session.upload_progress, activo por defecto. Una petición que muere a medias los deja apuntando a memoria liberada y la siguiente los sigue: un use-after-free (CWE-416) que funciona también en PHP-FPM.
Por qué no hace falta iniciar sesión. En el montaje más común, Apache con mod_php, PHP procesa la subida maliciosa durante su propio arranque, antes de ejecutar una sola línea de tu sitio. Login, permisos y validaciones no llegan a intervenir. Y apenas deja rastro: en los registros solo aparece un error rutinario de memoria agotada.
¿Está parcheado tu PHP?
Escribe tu versión, o pega lo que devuelve php -v, y elige cómo lo sirves. Te decimos qué dice el informe de tu caso.
Escribe tu versión
El código vulnerable se remonta a PHP 5.4, así que casi cualquier versión en uso está afectada.
| Rama | Corregida en | Nota |
|---|---|---|
| 8.5 | 8.5.12 | Rama estable actual |
| 8.4 | 8.4.27 | Última con soporte de seguridad |
| 8.3 | 8.3.36 | Backport de la distribución o migración |
| 8.2 | 8.2.35 | Backport de la distribución o migración |
| 8.1 y anteriores | Sin parche oficial | Backport de la distribución o migración |
La versión que cuenta es la que corre: tras actualizar y reiniciar, compruébala con php -v o phpinfo(). Fuente: PHP.org, 21.10.2026; datos del informe a 24.10.2026.
Qué hacer hoy
Parchear es la única solución completa. Actualiza a la versión de tu rama y reinicia el servidor y los workers: una aplicación que sigue en pie no significa que el motor se haya recargado.
Checklist de respuesta
Si aún no puedes parchear
Cambiar de versión puede alterar el código que corre encima, y el software heredado a veces se rompe al subir de rama. Mientras buscas una vía, reduce el riesgo:
- Baja los límites de subida de archivos y de tamaño de POST.
- Desactiva
session.upload_progress.enabled. Solo frena una vía de 109619 y nada contra 109618. - Pon una regla WAF delante del tráfico del exploit. Es un puente: saldrán variantes.
- Inventaría dónde corre PHP antes de que lo haga un atacante.
El borde: CDN y WAF
El borde es el sitio ideal para mitigar: una sola regla protege miles de orígenes en minutos, y los grandes proveedores desplegaron firmas incluso antes de la divulgación. Pero un WAF solo ve el tráfico que pasa por él y lee las subidas de forma distinta a PHP.
Ningún WAF cierra PHP2Shell: reduce la exposición y compra horas. El cierre llega con el parche y el reinicio.
| Proveedor | Medida | Límite |
|---|---|---|
| Cloudflare | Reglas gestionadas activas por defecto, también en el plan gratuito, desde el 21.10 | Solo tráfico que pasa por su proxy |
| AWS WAF | Límite de cuerpo de 8 KB para 109618 y regla propia para 109619 | Controles compensatorios |
| Vercel | Reglas WAF antes de la divulgación para los patrones conocidos | No cubre peticiones directas a un backend externo |
Bloquea también el acceso directo al origen, para que nadie esquive el borde. Marcos como NIS2 o el art. 32 del RGPD piden medidas apropiadas: el WAF ayuda, junto al parche, nunca en su lugar.
La IA acorta el camino
Convertir un bug en un exploit fiable era la parte lenta de un ataque. Es justo la que la IA automatiza mejor.
DíasDel bug al exploit, con IA
MesesAntes
- Dependencia silenciosa del open source
- Una pieza invisible sostiene buena parte de internet, y cuando falla, falla todo a la vez. Es el patrón de Log4Shell y Heartbleed, y se repetirá.
- El reto es organizativo
- Parchear es fácil cuando el código lo permite. Lo difícil es encontrar cada instalación y saber quién la mantiene: PHP2Shell pone a prueba si sabes qué software corre en tu entorno.
- Cambia el cálculo de riesgo
- Si armar un exploit cuesta días y no meses, ya no basta con apostar a que nadie se tomará la molestia.
Del bug al ataque, en horas.
Estado de explotación, en evolución. Al cierre del informe, PHP y CISA aún no confirmaban explotación con éxito a escala ni figuraban las CVE en el catálogo KEV. watchTowr, Patchstack, Cloudflare y Aikido sí reportaron intentos, algunos con la PoC pública.
El informe completo
Para leer y compartir
- Informe técnico en PDF11 páginas · 850 KB
- Vídeo horizontal 16:91:05 · MP4 · 5,6 MB
- Vídeo vertical 9:16Para redes · MP4 · 5,2 MB
TLP:CLEAR: puedes compartirlo sin restricciones.
Fuentes del informe
- Harness · php2shell: the flaw hiding all across the web
- Cloudflare · despliegue de reglas WAF para php2shell
- AWS · Security Bulletin 2026-143-AWS
- Vercel · php2shell security bulletin
- Dark Reading · 'PHP2Shell' Bugs Signal Red Alert
- Sonatype · PHP2Shell Makes PHP Inventory and Patch Ownership Urgent
- Canadian Centre for Cyber Security · Alerta AL26-026
- NVD · CVE-2026-109618 y CVE-2026-109619
Datos verificados a 24.10.2026. Por tratarse de un incidente en curso, contrasta el estado de explotación y los avisos oficiales antes de distribuirlo.
Más informes
Cada informe explica una amenaza de principio a fin y termina con lo que hay que hacer.
¿Te afecta alguna de estas amenazas?
Nuestro equipo puede ayudarte a evaluar la exposición de tus sistemas y a priorizar la respuesta.
Al enviar aceptas que Bitnaga te contacte para atender tu consulta. Política de privacidad. O escríbenos a hola@bitnaga.es
