PHP2Shell

Dos fallos de ejecución remota de código en el motor de PHP, CVE-2026-109618 y CVE-2026-109619: cómo funcionan, qué demuestran las pruebas de concepto y cómo defenderse.

Informe técnico INF-2026-1087 · 24 de octubre de 2026 · TLP:CLEAR

Portada del informe técnico PHP2Shell, INF-2026-1087
INF-2026-1087TLP:CLEAR

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

  1. Una subida gigante agota la RAM
  2. PHP aborta y libera memoria a medio construir
  3. La memoria queda corrupta

CVE-2026-109619Dos peticiones

  1. La petición 1 muere y deja punteros colgando
  2. La petición 2 los sigue: use-after-free
  3. La memoria queda corrupta

RCE

Ejecución de código en el servidor

FIG·01 · Ambas vías explotan que PHP abandona la limpieza tras un error fatal. Fuente: Bitnaga, análisis sobre PHP.org y Harness.
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.

Cómo lo sirves

Escribe tu versión

El código vulnerable se remonta a PHP 5.4, así que casi cualquier versión en uso está afectada.

Versiones corregidas por rama
RamaCorregida enNota
8.58.5.12Rama estable actual
8.48.4.27Última con soporte de seguridad
8.38.3.36Backport de la distribución o migración
8.28.2.35Backport de la distribución o migración
8.1 y anterioresSin parche oficialBackport 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.

Revisarlo con nuestro equipo

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

0 de 7 · se guarda en este navegador

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.

Respuesta de los proveedores en el borde
ProveedorMedidaLímite
CloudflareReglas gestionadas activas por defecto, también en el plan gratuito, desde el 21.10Solo tráfico que pasa por su proxy
AWS WAFLímite de cuerpo de 8 KB para 109618 y regla propia para 109619Controles compensatorios
VercelReglas WAF antes de la divulgación para los patrones conocidosNo 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

Según Wiz, Calif y OpenAI, modelos de IA ayudaron a convertir un bug de memoria sutil en exploits funcionales en días. Cuando armar un exploit cuesta tan poco, lo que era «demasiado difícil de explotar» pasa a ser un objetivo viable.
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

PHP2Shell en un minuto · 1:05 · Salta a un capítulo:

Para leer y compartir

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.

Ver todos los informes

¿Te afecta alguna de estas amenazas?

Nuestro equipo puede ayudarte a evaluar la exposición de tus sistemas y a priorizar la respuesta.

Qué te preocupa

Al enviar aceptas que Bitnaga te contacte para atender tu consulta. Política de privacidad. O escríbenos a hola@bitnaga.es