Saltar al contenido principal
CVE-2026-109618 · CVE-2026-109619

Parche de seguridad PHP (php2shell)

php2shell son dos fallos críticos de PHP publicados el 21 de octubre de 2026 (CVSS v4.0 9.2, sin autenticación). Afectan a cualquier web que sirva peticiones con PHP, sea WordPress, Drupal, Joomla, Magento, PrestaShop o Laravel. Están corregidos en 8.5.12, 8.4.27, 8.3.36 y 8.2.35.

¿Tienes esta vulnerabilidad? Te actualizamos PHP, aplicamos la mitigación temporal donde todavía no se pueda actualizar y revisamos que no haya rastro de intrusión.

Qué ha pasado

php2shell: dos fallos críticos en el propio intérprete

El 21 de octubre de 2026 el proyecto PHP publicó versiones nuevas para corregir CVE-2026-109618 y CVE-2026-109619. Adelantó la publicación a las 14:00 UTC porque el día anterior un post en Hacker News había filtrado los identificadores antes del embargo.

CVE-2026-109618 es una corrupción de memoria: si PHP se queda sin memoria a mitad de preparar los datos de la petición, la limpieza trata datos inválidos como válidos. Basta una petición multipart manipulada que agote la memoria aunque su tamaño parezca dentro de los límites. CVE-2026-109619 deja estado interno liberado entre peticiones, y una petición posterior en el mismo worker lo reutiliza. Huntress lo describe como un use-after-free en el heap sin autenticación, con fuga de memoria y ejecución remota de código con los privilegios del worker web.

El fallo está en PHP, así que actualizar el CMS o los plugins no lo corrige. Según php.net afecta a todas las instalaciones que sirven peticiones web: PHP-FPM, Apache con mod_php, php-cgi, FrankenPHP y LiteSpeed. El riesgo es mayor con mod_php, donde Rapid7 indica que es explotable antes de que llegue a ejecutarse el código de la aplicación. Wiz demostró ejecución remota sin autenticación contra WordPress, Drupal y Joomla, y una vía de fuga de memoria que podría exponer contraseñas, tokens, API keys y certificados.

A 21 de octubre, Rapid7 esperaba explotación y varios equipos la estaban reproduciendo; Huntress no la había observado en sus clientes. El NCSC británico y CERT-EU emitieron alertas ese mismo día. PHP está detrás de cerca del 69,7 % de las webs cuyo lenguaje de servidor se conoce, según W3Techs.

Fuentes: php.net · Rapid7 · Huntress · NCSC · Infosecurity Magazine

¿Estás afectado?

Versiones corregidas de PHP

Si tu servidor sirve peticiones web con PHP y su versión es anterior a la de su rama en esta tabla, estás afectado. Las distribuciones Linux con soporte extendido sacaron sus paquetes antes: ahí manda el aviso de tu proveedor, no el número.

Rama Corregida en Nota
8.5 8.5.12
8.4 8.4.27
8.3 8.3.36
8.2 8.2.35 Fin de vida el 31-dic-2026
8.1, 8.0, 7.4 Sin versión oficial PHP publicó backports mínimos en código fuente para quien compile
7.3 y anteriores Sin corrección Migrar a una rama con soporte

Revisa esto

  • Tu web es WordPress, Drupal, Joomla, Magento, PrestaShop, Laravel o cualquier otra aplicación PHP accesible desde internet.
  • php -v o php-fpm -v dan un número inferior al de tu rama en la tabla.
  • Usas Apache con mod_php: es la configuración de más riesgo.
  • Usas el PHP de tu distribución Linux: el número puede no cambiar aunque el paquete esté parcheado, así que hay que mirar el aviso del proveedor.
  • Estás en un hosting compartido: actualiza el proveedor, pero puedes ver la versión en el panel o con phpinfo() y pedirle la fecha.
Mientras tanto

Si hoy no puedes actualizar

Estas son las mitigaciones temporales que publicó el proyecto PHP. Reducen la exposición mientras preparas la actualización, pero no la sustituyen.

  1. 01 Pon session.upload_progress.enabled=0 en php.ini o en el pool de PHP-FPM y reinicia todos los workers. Con ini_set() o .user.ini no sirve.
  2. 02 En PHP 8.5, además, fatal_error_backtraces=0.
  3. 03 Limita en el servidor web o en el proxy el tamaño de la petición y el número de campos, partes y cabeceras.
  4. 04 post_max_size=8M si la web no admite subidas de ficheros; 32M si las admite.
  5. 05 Si no puedes actualizar, busca indicios de compromiso y puertas traseras. Si tampoco puedes mitigar, el NCSC recomienda plantearse desconectar el sistema.
Cómo lo hacemos

Siete pasos, en este orden

Aplicamos el mismo procedimiento en cada servidor: primero saber qué versión hay en cada sitio, después corregir y al final comprobar que nadie entró antes del parche.

Inventario
versión por servidor
Mitigación
temporal
Actualización
8.5.12 · 8.4.27 · 8.3.36
Verificación
en producción
Indicios
logs · ficheros
Secretos
si procede
Vigilancia
nuevos avisos
01

Inventario de versiones

Listamos cada servidor, contenedor y hosting donde corre PHP, con la versión de la CLI y la de FPM, el modo (FPM, mod_php, CGI) y quién lo mantiene. La web olvidada en un servidor viejo es la que se queda sin parchear.

02

Mitigación inmediata

Donde la actualización no puede hacerse en el momento, desactivamos session.upload_progress en php.ini o en el pool, limitamos tamaño y partes de las peticiones y reiniciamos los workers.

03

Actualización

Subimos a la versión corregida de tu rama o al paquete parcheado de tu distribución. Si sigues en 8.1 o anterior, te explicamos las dos salidas: compilar con los backports o migrar a una rama con soporte.

04

Verificación

Comprobamos la versión que atiende de verdad las peticiones, no solo la de la línea de comandos, y que la web, los formularios y las subidas siguen funcionando.

05

Revisión de indicios de compromiso

Revisamos logs de acceso y de error, ficheros modificados recientemente en el directorio de la web y usuarios administradores nuevos en el CMS.

06

Rotación de secretos, si procede

Si hay señales de acceso, o el servidor estuvo expuesto a la fuga de memoria, cambiamos contraseñas de base de datos, claves de API, tokens y certificados.

07

Vigilancia de nuevos avisos

Dejamos anotado qué versión tiene cada servidor y qué avisos seguir (PHP, tu distribución, tu CMS), para que la siguiente actualización empiece desde ese inventario.

Antes y después

Lo que suele quedarse a medias

Parchear a toda prisa Con el procedimiento
Se actualiza el servidor principal y el de staging se queda en 8.3.30
Lista de servidores con la versión antes y después
php -v dice 8.3.36, pero FPM sigue sirviendo con la versión antigua porque nadie lo reinició
Versión comprobada en el proceso que atiende las peticiones, con FPM reiniciado
Nadie mira los logs de los días en que la web estuvo expuesta
Logs y ficheros revisados para el periodo de exposición
Las claves de la base de datos siguen siendo las de antes del fallo
Secretos rotados cuando hay indicios o riesgo de fuga

¿No sabes qué versión de PHP tiene tu web?

Consultoría gratuita →
FAQ

Preguntas frecuentes sobre php2shell

¿Qué es php2shell?
Es el nombre con el que se conocen CVE-2026-109618 y CVE-2026-109619, dos fallos críticos (CVSS v4.0 9.2) en el intérprete de PHP publicados el 21 de octubre de 2026. Permiten a un atacante sin credenciales corromper la memoria del proceso que atiende las peticiones web y, según Huntress, llegar a ejecutar código y filtrar memoria.
¿Mi WordPress está afectado aunque tenga los plugins al día?
Sí, si el PHP del servidor es anterior a 8.5.12, 8.4.27, 8.3.36 u 8.2.35, según tu rama. El fallo está en el intérprete, así que actualizar WordPress o los plugins no lo corrige.
¿Basta con desactivar session.upload_progress?
Reduce la exposición mientras preparas la actualización, pero el proyecto PHP la presenta como mitigación temporal. Además tiene que ir en php.ini o en el pool de FPM, con los workers reiniciados: ini_set() y .user.ini no sirven.
Sigo en PHP 7.4 u 8.0, ¿qué hago?
Esas ramas, y la 8.1, ya no reciben versiones oficiales. PHP publicó backports mínimos en código fuente para quien compile su propio PHP, y algunas distribuciones Linux con soporte extendido tienen paquetes parcheados. Si ninguna de las dos cosas aplica, la salida es migrar a una rama con soporte, lo que suele obligar a revisar el código de la aplicación.
¿Y si estoy en un hosting compartido?
Quien actualiza PHP es el proveedor. Tú puedes comprobar la versión desde el panel o con phpinfo(), preguntar al proveedor cuándo actualiza y, si la plataforma lo permite, cambiar la web a una versión corregida.
Empecemos

Cuéntanos dónde corre tu PHP

Empezamos por el inventario: qué versión tiene cada servidor, qué hay que hacer hoy y qué puede esperar a una ventana de mantenimiento.

Parche de seguridad PHP (php2shell)

Cuéntanos tu reto. Te proponemos solución.

Sin compromiso. En menos de 24 h recibes una propuesta con alcance, plazos y presupuesto. Sin letra pequeña.

Agenda call gratuita →