PHP2Shell: vulnerabilidad crítica en PHP (CVE-2026-109618 y CVE-2026-109619) y cómo proteger tu web

Vulnerabilidad crítica PHP2Shell en PHP y protección de aplicaciones web

Clientes de Webexperto: todos nuestros servidores fueron parcheados contra la vulnerabilidad PHP2Shell el mismo día en que se publicó la actualización de seguridad de PHP (21 de octubre de 2026).

El 21 de octubre de 2026 el equipo de PHP publicó una actualización de seguridad urgente para corregir la vulnerabilidad PHP2Shell, formada por dos fallos críticos (CVE-2026-109618 y CVE-2026-109619). Ambos permiten, en determinadas condiciones, la ejecución remota de código sin autenticación en servidores que sirven páginas web con PHP. Ya se han detectado intentos de explotación reales, por lo que no es una alerta teórica.

Si tu empresa tiene una web corporativa, una tienda online o una aplicación desarrollada en PHP, en este artículo te explicamos qué ha ocurrido, qué versiones están afectadas, cómo comprobar si tu servidor es vulnerable y cómo actualizar PHP sin romper tu web.

Qué es PHP2Shell: las dos vulnerabilidades críticas de PHP

PHP2Shell es el nombre con el que se conoce a dos fallos de seguridad del propio intérprete de PHP, no de un CMS o un plugin concreto. Ambos afectan al ciclo de vida de las peticiones web, es decir, a la forma en que PHP prepara y limpia la memoria cada vez que alguien visita una página.

CVE-2026-109618: ejecución remota por corrupción de memoria (OOM)

Según el aviso oficial del proyecto PHP, si PHP se queda sin memoria a mitad de la preparación de una petición, los datos internos pueden quedar inicializados solo en parte. Al limpiar la petición, PHP puede tratar esos datos inválidos como válidos, lo que abre la puerta a la ejecución de código.

CVE-2026-109619: ejecución remota por estado global obsoleto

El segundo aviso describe que cierto estado interno de una petición puede sobrevivir después de liberarse su memoria. Una petición posterior atendida por el mismo proceso puede usar ese estado antes de que se reinicie correctamente.

Las dos vulnerabilidades han recibido una puntuación de 9,2 sobre 10 (CVSS v4.0) según los análisis publicados, y PHP las califica como críticas. Puedes consultar las fichas en el NVD (CVE-2026-109618) y NVD (CVE-2026-109619).

Infografía del riesgo de PHP2Shell: petición web maliciosa, fallo interno de PHP y ejecución remota de código

Por qué la vulnerabilidad PHP2Shell es tan grave

Lo que hace especialmente peligrosa la vulnerabilidad PHP2Shell es la combinación de tres factores:

  • No requiere credenciales: un atacante puede intentarlo enviando peticiones web, sin usuario ni contraseña.
  • Afecta a PHP, no a tu código: según el aviso oficial, en Apache con mod_php se ha demostrado un ataque que se dispara antes de que se ejecute el código de la aplicación. Tener WordPress o PrestaShop al día no basta.
  • Explotación activa: los detalles se filtraron el 20 de octubre, antes de la publicación prevista, y empresas de seguridad como watchTowr y Amazon han registrado intentos de explotación.

El NCSC británico llegó a recomendar desconectar los servidores que no puedan actualizarse.

Versiones de PHP afectadas por la vulnerabilidad PHP2Shell

Según el comunicado oficial de php.net, estas son las versiones que corrigen el problema:

Rama de PHPVersiones vulnerablesVersión corregida
PHP 8.5Anteriores a 8.5.128.5.12
PHP 8.4Anteriores a 8.4.278.4.27
PHP 8.3Anteriores a 8.3.368.3.36
PHP 8.2Anteriores a 8.2.358.2.35
PHP 8.1, 8.0 y 7.4TodasSin nueva versión oficial, pero PHP publicó parches retroportados que proveedores como cPanel o las distribuciones Linux han aplicado
PHP 7.3 y anteriores (hasta 5.6)Afectadas según los análisis publicadosSin parche oficial de PHP, aunque algunos proveedores de soporte extendido y hostings han publicado sus propios parches hasta PHP 5.6

Están en el alcance todas las instalaciones que sirven peticiones web: PHP-FPM, Apache mod_php, php-cgi, FrankenPHP y LiteSpeed. Por eso, más que el número de versión, lo importante es confirmar con tu proveedor si tu PHP concreto tiene el parche aplicado. Ten en cuenta que muchas distribuciones Linux y paneles como cPanel o CloudLinux aplican el parche sin cambiar el número de versión, así que conviene comprobarlo con tu proveedor.

¿Tu web o aplicación sigue en PHP 8.1, 7.4 o anterior? Son las versiones que más riesgo tienen ahora mismo, porque ya no reciben actualizaciones oficiales. Podemos revisar qué versión usa tu servidor y preparar un plan de migración. Solicita una revisión técnica.

Qué implica para WordPress, PrestaShop y aplicaciones PHP a medida

WordPress, PrestaShop, WooCommerce, Laravel o Symfony funcionan sobre PHP, así que heredan la vulnerabilidad del servidor en el que se ejecutan. Actualizar el CMS o sus plugins no corrige PHP2Shell: lo que hay que actualizar es la versión de PHP del servidor.

  • WordPress y WooCommerce: en hosting compartido, la corrección depende normalmente del proveedor, pero muchas webs siguen fijadas en versiones antiguas de PHP desde el panel.
  • PrestaShop: las versiones 1.6 y 1.7 antiguas solo funcionan con PHP 7.x, por lo que muchas tiendas quedan atrapadas en ramas sin soporte.
  • Desarrollos a medida: intranets, CRM o ERP programados hace años suelen depender de versiones antiguas de PHP y son los que más trabajo requieren para actualizarse.

Si sospechas que tu web ya ha sido comprometida, revisa nuestro servicio de análisis y restauración de webs hackeadas en WordPress y PrestaShop.

Cómo comprobar si tu web está expuesta a la vulnerabilidad PHP2Shell

  1. Panel de hosting: en cPanel, Plesk o similares, busca el selector de versión de PHP.
  2. WordPress: en Herramientas > Salud del sitio > Información > Servidor aparece la versión de PHP.
  3. Línea de comandos: si tienes acceso SSH, ejecuta php -v. Ojo: la versión de consola puede no coincidir con la que usa la web (PHP-FPM o mod_php).
  4. Desde la propia web: un archivo temporal con phpinfo() muestra la versión y la SAPI real. Bórralo inmediatamente después.
  5. Distribuciones Linux: si usas paquetes de Debian, Ubuntu o Red Hat, consulta el aviso de seguridad de tu distribución, porque el parche puede estar aplicado con otro número de versión.

Cómo actualizar PHP de forma segura

Pasos para actualizar PHP de forma segura en un servidor: inventario, copia de seguridad, pruebas, actualización, verificación y mantenimiento

Si ya estás en PHP 8.2 o superior, la actualización a la versión parcheada de tu rama suele ser sencilla y de bajo riesgo. El proceso recomendado es:

  1. Haz una copia de seguridad de archivos y base de datos, y comprueba que se puede restaurar.
  2. Actualiza a la versión corregida de tu rama (8.5.12, 8.4.27, 8.3.36 u 8.2.35) o aplica el paquete de tu distribución.
  3. Reinicia todos los procesos PHP (PHP-FPM, Apache, LiteSpeed). Sin reinicio, los procesos antiguos siguen siendo vulnerables.
  4. Verifica la versión real con phpinfo() y revisa el registro de errores.
  5. Si estás en PHP 8.1 o anterior, planifica la migración a una rama con soporte, probando primero en un entorno de pruebas.

Medidas temporales contra la vulnerabilidad PHP2Shell si no puedes actualizar

El aviso oficial de PHP deja claro que ninguna configuración hace segura una instalación vulnerable, pero propone medidas para reducir el riesgo mientras se actualiza:

  • Desactivar session.upload_progress.enabled=0 en php.ini o en el pool de FPM (no mediante ini_set() ni .user.ini) y reiniciar los procesos.
  • En PHP 8.5, establecer fatal_error_backtraces=0.
  • Limitar el tamaño de las peticiones (post_max_size, número de campos y cabeceras) en el servidor web o proxy.
  • Aplicar reglas de cortafuegos web (WAF), como las que Cloudflare ha publicado, como capa adicional y no como solución.

¿Necesitas actualizar PHP sin que tu web deje de funcionar? Nos encargamos de la actualización, de corregir las incompatibilidades del código y de dejar la aplicación lista en una versión con soporte. Pide presupuesto sin compromiso.

Problemas habituales de compatibilidad al actualizar PHP

El salto desde PHP 7.x o 8.0/8.1 a una versión actual es donde suelen aparecer los problemas. Los más frecuentes son:

ProblemaSíntoma habitual
Funciones eliminadas (each(), create_function(), extensión mysql_*)Error fatal y página en blanco
Comparaciones más estrictas y errores de tipos en PHP 8Cálculos o filtros que dejan de funcionar
Propiedades dinámicas obsoletas (PHP 8.2)Avisos masivos en los registros
Plugins, temas o módulos abandonadosFallos en el panel de administración o en el pago
Librerías y dependencias de Composer antiguasLa aplicación no arranca

Por eso es importante actualizar primero en un entorno de pruebas. En aplicaciones antiguas, a menudo compensa una modernización del código mediante programación a medida en lugar de ir aplicando parches.

Recomendaciones de seguridad PHP para empresas

  • Haz inventario de todas tus webs, tiendas y aplicaciones internas, y de la versión de PHP de cada una.
  • Sal de las versiones sin soporte: PHP 8.1 y anteriores ya no reciben parches oficiales.
  • Exige a tu proveedor de hosting confirmación de que ha aplicado el parche y reiniciado los servicios.
  • Revisa los registros de los últimos días en busca de errores de memoria o actividad anómala.
  • Contrata un mantenimiento que incluya actualizaciones de PHP, copias de seguridad y monitorización. Más información en nuestro servicio de mantenimiento web mensual para empresas.

La seguridad también depende de otros factores: te recomendamos leer nuestra guía sobre cómo detectar correos fraudulentos y phishing, una de las vías más habituales de entrada en empresas.

Preguntas frecuentes sobre la vulnerabilidad PHP2Shell

¿Mi web en WordPress está afectada por la vulnerabilidad PHP2Shell?

Depende de la versión de PHP del servidor, no de WordPress. Si tu hosting usa una versión anterior a 8.5.12, 8.4.27, 8.3.36 u 8.2.35 sin el parche de la distribución, el servidor es vulnerable.

¿Basta con actualizar los plugins y el tema?

No. El fallo está en el intérprete de PHP. Hay que actualizar PHP y reiniciar sus procesos.

¿Qué hago si mi aplicación solo funciona con PHP 7.4?

A corto plazo, consulta si tu proveedor o distribución ha aplicado los parches retroportados que PHP ha publicado para 7.4, 8.0 y 8.1. A medio plazo, la solución es adaptar el código a una versión con soporte.

¿Un cortafuegos WAF me protege de la vulnerabilidad PHP2Shell?

Reduce el riesgo, pero no sustituye a la actualización. Es una capa adicional mientras se aplica el parche.

¿Cómo sé si me han atacado aprovechando la vulnerabilidad PHP2Shell?

Revisa archivos PHP modificados recientemente, usuarios nuevos, tareas programadas desconocidas y procesos sospechosos. Ante cualquier duda, conviene una auditoría profesional.

Conclusión: actualiza PHP cuanto antes

La vulnerabilidad PHP2Shell es una de las más graves de PHP de los últimos años: permite ejecución remota sin autenticación y ya se está explotando. La buena noticia es que la solución existe y, para la mayoría de servidores con PHP 8.2 o superior, consiste en actualizar y reiniciar. El verdadero reto está en las webs y aplicaciones que siguen en versiones antiguas.

Programación PHP para empresas. En Webexperto ayudamos a empresas de toda España con la actualización de versiones de PHP, la modernización de aplicaciones antiguas, la resolución de incompatibilidades, el desarrollo de aplicaciones web a medida y el mantenimiento y la seguridad de sus webs. Contacta con nosotros y cuéntanos tu caso: revisaremos tu situación y te propondremos la mejor solución.

Fuentes: php.net, avisos de seguridad de php-src en GitHub, NVD, NCSC y watchTowr. Información actualizada a 25 de octubre de 2026.

Share this post