PHP2Shell: fallo crítico de PHP y cómo actualizarlo

PHP2Shell: el fallo crítico de PHP que puso en alerta a Internet y cómo proteger tu sitio

El 21 de octubre de 2026, administradores de sitios web de todo el mundo tuvieron que reaccionar con urgencia ante la publicación de dos vulnerabilidades críticas en PHP, el lenguaje que utilizan millones de páginas y aplicaciones web.

Los fallos, conocidos de forma conjunta como PHP2Shell, pueden permitir que un atacante ejecute código de forma remota en un servidor vulnerable sin necesidad de iniciar sesión.

La gravedad fue suficiente para que gobiernos, hospitales, empresas y otros servicios en distintos países desconectaran temporalmente algunos sitios mientras instalaban los parches de seguridad.

Si administras un sitio en WordPress, Joomla, Drupal, Magento o cualquier otra aplicación que utilice PHP, este problema te afecta directamente si el servidor continúa ejecutando una versión vulnerable.

En esta guía te explicamos qué ocurrió, cómo saber si tu sitio está en riesgo y cómo actualizar PHP correctamente.

PHP2Shell: el fallo crítico de PHP

¿Qué ocurrió con PHP?

El equipo de PHP publicó actualizaciones de emergencia para corregir dos vulnerabilidades críticas:

  • CVE-2026-109618: un error relacionado con el manejo de memoria cuando PHP se queda sin memoria disponible durante una petición.
  • CVE-2026-109619: un problema en el manejo del estado interno de PHP entre diferentes peticiones procesadas por el mismo trabajador.

Ambas vulnerabilidades tienen una puntuación de 9,2 sobre 10 en CVSS 4.0, lo que las sitúa en la categoría crítica.

El riesgo más importante es la posibilidad de ejecución remota de código sin autenticación. En términos sencillos, un atacante podría enviar una petición especialmente diseñada a un servidor vulnerable e intentar ejecutar instrucciones sin conocer ninguna contraseña.

¿Por qué es un problema tan grave?

PHP funciona detrás de una enorme cantidad de sitios web. Cuando visitas una página creada con WordPress, por ejemplo, PHP participa en la generación del contenido que finalmente recibe tu navegador.

El problema de PHP2Shell no se encuentra necesariamente en WordPress, en un plugin o en el tema instalado.

Está en el propio motor de PHP que ejecuta la aplicación.

Por eso, actualizar únicamente WordPress, los plugins o el tema no soluciona estas vulnerabilidades.

El servidor debe ejecutar una versión de PHP que incluya las correcciones.

¿Qué podría hacer un atacante?

Una vulnerabilidad de ejecución remota de código puede ser especialmente peligrosa porque, dependiendo de la configuración del servidor y de los permisos disponibles, podría permitir acciones como:

  • Ejecutar código malicioso.
  • Modificar archivos del sitio.
  • Instalar puertas traseras.
  • Acceder a información almacenada por la aplicación.
  • Robar credenciales o configuraciones.
  • Utilizar el servidor para atacar otros sistemas.
  • Interrumpir el funcionamiento del sitio.

El impacto real depende de la configuración del servidor y del nivel de acceso que tenga el proceso PHP.

¿Ya existen ataques?

Sí se ha observado actividad intentando explotar estas vulnerabilidades.

Cloudflare informó que detectó tráfico de ataque dirigido contra PHP2Shell y desplegó reglas de protección en su firewall de aplicaciones web.

Sin embargo, la propia Cloudflare insiste en que un WAF es solamente una capa adicional de protección y que los administradores deben actualizar PHP.

El 22 de octubre, medios internacionales informaron además de millones de intentos de explotación registrados mientras empresas y gobiernos aceleraban la instalación de parches.

¿Qué versiones de PHP son vulnerables?

El equipo de PHP publicó cuatro versiones corregidas.

Rama de PHP Versión mínima corregida
PHP 8.5 8.5.12 o superior
PHP 8.4 8.4.27 o superior
PHP 8.3 8.3.36 o superior
PHP 8.2 8.2.35 o superior

PHP 8.1 y versiones anteriores ya no reciben soporte directo del proyecto PHP.

Además, PHP 8.2 llegará al final de su soporte de seguridad el 31 de diciembre de 2026, por lo que si todavía utilizas esa rama conviene planificar una migración a PHP 8.3, 8.4 o 8.5.

¿Qué versión debería utilizar en WordPress?

WordPress recomienda actualmente PHP 8.3 o superior.

Esto no significa que debas cambiar inmediatamente de una versión antigua a la más nueva sin comprobar compatibilidad.

Antes de realizar un salto importante de versión conviene asegurarse de que:

  • WordPress esté actualizado.
  • Los plugins estén actualizados.
  • El tema esté actualizado.
  • No utilices plugins abandonados.
  • Dispongas de una copia de seguridad.

Si tu sitio utiliza software antiguo o código personalizado, lo ideal es probar primero la nueva versión de PHP en un entorno de pruebas.

Cómo saber qué versión de PHP utiliza WordPress

Desde el panel de WordPress puedes comprobarlo sin instalar ningún plugin.

  1. Entra al escritorio de WordPress.
  2. Ve a Herramientas → Salud del sitio.
  3. Selecciona la pestaña Información.
  4. Abre la sección Servidor.
  5. Busca Versión de PHP.

Si la versión aparece por debajo de las versiones corregidas mencionadas anteriormente, debes revisar inmediatamente si tu proveedor ya instaló un parche de seguridad.

Importante: la versión visible no siempre cuenta toda la historia

En servidores Linux, algunos proveedores como Ubuntu, Debian o Red Hat pueden aplicar backports.

Esto significa que toman la corrección de seguridad de una versión reciente y la incorporan a su propio paquete sin cambiar necesariamente el número principal de PHP al mismo número publicado en php.net.

Por ejemplo, Ubuntu puede distribuir un paquete corregido cuyo número no sea exactamente 8.5.12.

Por eso, si administras un servidor mediante los repositorios de tu distribución Linux, debes instalar las actualizaciones oficiales del sistema y comprobar el aviso de seguridad del proveedor.

Cómo actualizar PHP en un hosting administrado

Si tienes un hosting compartido o administrado, es posible que el proveedor gestione PHP por ti.

En ese caso:

  1. Entra al panel de tu hosting.
  2. Comprueba la versión de PHP asignada al dominio.
  3. Busca avisos relacionados con PHP2Shell o los CVE-2026-109618 y CVE-2026-109619.
  4. Si no existe información clara, contacta al soporte.

Puedes preguntar directamente:

“¿La versión de PHP que utiliza mi sitio ya está protegida contra CVE-2026-109618 y CVE-2026-109619?”

Esto es mejor que preguntar únicamente si utilizan “PHP 8.4”, porque el problema depende de la revisión de seguridad instalada.

Cómo actualizar PHP desde cPanel

En muchos hostings con cPanel puedes cambiar la rama de PHP mediante MultiPHP Manager.

  1. Entra a cPanel.
  2. Busca Software → MultiPHP Manager.
  3. Selecciona el dominio que quieres modificar.
  4. Elige una versión compatible y mantenida de PHP.
  5. Haz clic en Apply.

cPanel permite asignar diferentes versiones de PHP a cada dominio.

Sin embargo, hay una diferencia importante: si el menú muestra simplemente “PHP 8.4”, el parche exacto dentro de esa rama depende de lo que el administrador del servidor haya instalado mediante EasyApache.

Si no sabes si PHP 8.4 está actualizado a una revisión corregida, consulta al proveedor.

La documentación oficial puede consultarse en MultiPHP Manager de cPanel.

Cómo actualizar PHP desde Plesk

En Plesk el procedimiento es similar:

  1. Entra a Plesk.
  2. Ve a Sitios web y dominios.
  3. Selecciona el dominio.
  4. Abre PHP o Configuración de PHP.
  5. Selecciona una versión actualizada.
  6. Guarda los cambios.

Si la versión deseada no aparece, el proveedor debe instalarla o habilitarla.

Puedes consultar la guía oficial de configuración de PHP en Plesk.

Cómo actualizar PHP en Ubuntu o Debian

Si administras tu propio VPS o servidor, debes instalar las actualizaciones de seguridad del sistema operativo.

En Ubuntu o Debian normalmente puedes comenzar con:

sudo apt update
sudo apt upgrade

Después puede ser necesario reiniciar PHP-FPM o el servidor web, dependiendo de tu configuración.

Por ejemplo:

sudo systemctl restart php8.4-fpm

o, si utilizas Apache:

sudo systemctl restart apache2

El nombre exacto del servicio depende de la versión instalada.

Ubuntu y Debian ya publicaron actualizaciones específicas para estas vulnerabilidades. En estos sistemas debes utilizar los paquetes oficiales del proveedor en lugar de comparar únicamente el número con el publicado en php.net.

Cómo actualizar PHP en AlmaLinux, Rocky Linux o sistemas similares

En distribuciones basadas en RHEL, la actualización normalmente se realiza mediante DNF:

sudo dnf update

Después revisa si debes reiniciar PHP-FPM o el servidor web:

sudo systemctl restart php-fpm

Si utilizas Apache:

sudo systemctl restart httpd

Si PHP procede de un repositorio externo, como Remi, comprueba también que dicho repositorio haya publicado la actualización correspondiente.

¿Qué ocurre si utilizas Docker?

Si PHP está dentro de un contenedor, reiniciar el contenedor antiguo no instala una versión nueva.

Debes:

  1. Actualizar la imagen base de PHP.
  2. Reconstruir la imagen de tu aplicación.
  3. Volver a desplegar los contenedores.
  4. Verificar la versión de PHP dentro del nuevo contenedor.

También debes asegurarte de que la etiqueta utilizada realmente apunte a una imagen corregida.

Haz una copia de seguridad antes de cambiar de versión

Aplicar una actualización de seguridad dentro de la misma rama —por ejemplo, pasar de PHP 8.4.26 a 8.4.27— normalmente implica menos riesgo de compatibilidad.

El cambio entre ramas mayores, por ejemplo de PHP 8.1 a 8.4, puede generar incompatibilidades con código antiguo.

Antes de ese tipo de migración:

  • Haz una copia de la base de datos.
  • Haz una copia de los archivos.
  • Actualiza WordPress, plugins y temas.
  • Comprueba que los plugins siguen teniendo mantenimiento.
  • Utiliza un entorno de staging si tu hosting lo ofrece.

Qué comprobar después de actualizar PHP

No basta con cambiar la versión y cerrar el panel.

Comprueba:

  • La página de inicio.
  • El panel de administración.
  • Formularios de contacto.
  • Inicio de sesión y registro.
  • Tienda y proceso de pago si utilizas WooCommerce.
  • Buscador interno.
  • Envío de correos.
  • Tareas programadas.
  • Logs de errores.

En WordPress también puedes volver a Herramientas → Salud del sitio para confirmar la versión.

¿Un firewall como Cloudflare soluciona el problema?

No.

Un WAF puede bloquear determinados patrones de ataque y reducir la exposición.

Cloudflare desplegó reglas específicas contra PHP2Shell y detectó intentos de explotación, pero también recomienda instalar el parche.

Un firewall debe entenderse como una capa adicional de defensa, no como sustituto de la actualización.

¿Qué hacer si no puedes actualizar inmediatamente?

El propio equipo de PHP indica que no existe una mitigación completa que sustituya la actualización.

Existen configuraciones temporales que pueden reducir determinados vectores de ataque, pero no convierten una instalación vulnerable en segura.

Si administras un servicio crítico y no puedes parchearlo, las autoridades de ciberseguridad han recomendado considerar la restricción temporal del acceso público o incluso desconectarlo hasta poder aplicar la corrección.

En un hosting compartido, lo correcto es contactar inmediatamente al proveedor.

¿Es suficiente actualizar WordPress?

No.

Este punto merece repetirse porque puede generar confusión.

WordPress se ejecuta utilizando PHP. Si el motor PHP del servidor es vulnerable, actualizar WordPress no reemplaza la actualización del runtime.

Lo mismo ocurre con Drupal, Joomla, Magento y aplicaciones PHP desarrolladas a medida.

Versiones de PHP que conviene evitar en 2026

PHP 8.1 y versiones anteriores ya están fuera del soporte oficial del proyecto PHP.

Aunque algunos proveedores empresariales pueden mantener correcciones propias durante más tiempo, utilizar una rama sin soporte aumenta el riesgo de quedar expuesto a futuras vulnerabilidades.

Además, PHP 8.2 dejará de recibir actualizaciones de seguridad oficiales al finalizar 2026.

Para un WordPress moderno, el proyecto recomienda PHP 8.3 o superior.

Por qué este incidente debería cambiar nuestra forma de mantener los sitios web

Muchos propietarios de páginas actualizan WordPress y sus plugins, pero olvidan que el servidor también utiliza componentes que necesitan mantenimiento.

Entre ellos se encuentran:

  • PHP.
  • El servidor web.
  • La base de datos.
  • El sistema operativo.
  • Librerías y extensiones.

PHP2Shell demuestra que mantener actualizado únicamente el CMS no es suficiente.

Si tu hosting administra estas capas, conviene saber cuál es su política de actualizaciones de seguridad. Si administras tu propio VPS, necesitas un proceso regular para aplicar parches.

Conclusión

Las vulnerabilidades PHP2Shell son especialmente importantes porque afectan al propio motor que ejecuta una gran cantidad de sitios web.

Los fallos CVE-2026-109618 y CVE-2026-109619 pueden permitir ejecución remota de código sin autenticación y ya han provocado una respuesta internacional de emergencia.

La solución real es actualizar PHP.

Si utilizas las versiones oficiales del proyecto, debes estar como mínimo en:

  • PHP 8.5.12
  • PHP 8.4.27
  • PHP 8.3.36
  • PHP 8.2.35

Si utilizas paquetes de Ubuntu, Debian u otra distribución, instala sus actualizaciones de seguridad oficiales y verifica que el proveedor haya corregido ambas CVE.

Y si tienes un hosting administrado, no asumas que todo está resuelto: confirma con el proveedor que la versión utilizada por tu dominio ya incluye el parche.

Fuentes

Maestro

Ingeniero de Sistemas, amante de las nuevas tecnologías y aficionado a la informática. Sígueme en Twitter - Facebook - Instagram - Youtube