PHP2Shell: qué es, si te afecta y cómo parchear PHP (CVE-2026-109618)

PHP2Shell en resumen: dos fallos críticos de PHP (CVE-2026-109618 y CVE-2026-109619) que permiten ejecutar código en un servidor web con una sola petición. Ya se están explotando. Actualiza a PHP 8.2.35, 8.3.36, 8.4.27 u 8.5.12 y reinicia PHP. Última actualización: 27 de octubre de 2026.

PHP2Shell es el nombre de dos vulnerabilidades críticas en el propio PHP, CVE-2026-109618 y CVE-2026-109619, corregidas el 21 de octubre de 2026. Permiten a un atacante ejecutar código en un servidor web sin iniciar sesión y antes de que se ejecute tu aplicación. Como PHP mueve WordPress y buena parte de internet, es uno de los fallos más graves de PHP en años. Te explicamos qué es, cómo saber si te afecta y cómo solucionarlo. ¿Prefieres leerlo en inglés? Read it in English.

PHP2Shell explicado en español

¿Qué es PHP2Shell?

PHP2Shell agrupa dos errores distintos del intérprete de PHP. Ambos tienen una puntuación de 9,2 en CVSS v4.0:

  • CVE-2026-109618 (corrupción de memoria): cuando una petición hace que PHP se quede sin memoria mientras se prepara, una tabla interna queda a medio construir y el atacante puede aprovecharlo para llamar a la función que quiera.
  • CVE-2026-109619 (use-after-free): cierto estado del proceso sobrevive a la petición que lo creó, y una petición posterior del mismo worker puede usar un puntero ya liberado.

Lo peligroso es dónde ocurre: el fallo aparece mientras PHP procesa la petición, así que ni el login, ni los plugins de seguridad, ni tu framework tienen ocasión de bloquearlo.

PHP2Shell ya se está explotando

Amazon detectó intentos de ataque el 17 de octubre, cuatro días antes de que se publicara el fallo. Tras la publicación, Cloudflare pasó de decenas de miles de intentos en 45 minutos a millones el 22 de octubre. Finalmente, el 24 de octubre el investigador Adel Karimi registró 35 shells reales en sus honeypots con PHP 8.4.26 y Apache mod_php, con una cadena de ataque que coincide con el exploit público.

Versiones de PHP afectadas por PHP2Shell

Rama de PHPAfectadaCorregida en
8.5anteriores a 8.5.128.5.12
8.4anteriores a 8.4.278.4.27
8.3anteriores a 8.3.368.3.36
8.2anteriores a 8.2.358.2.35
8.1, 8.0, 7.4todassin versión oficial; paquete de tu distribución o actualizar
7.3 y anteriorestodassin corrección; actualiza

Afecta a todas las formas de servir PHP en la web: Apache mod_php, PHP-FPM, php-cgi, LiteSpeed y FrankenPHP. Ojo: las distribuciones de Linux a menudo aplican el parche sin cambiar el número de versión, así que revisa el aviso de tu distribución.

Cómo comprobar tu versión de PHP

En WordPress: ve a Herramientas → Salud del sitio → Información → Servidor. En un servidor:

php -v
php-fpm8.3 -v          # versión de PHP-FPM
dpkg -l | grep php     # paquetes en Debian/Ubuntu

En hosting compartido (Hostinger, SiteGround, cPanel…), mira la versión en el panel y pregunta a soporte si ya han aplicado los parches de PHP2Shell.

Cómo parchear PHP2Shell

# Debian / Ubuntu
sudo apt update
sudo apt install --only-upgrade 'php*'
sudo systemctl restart php8.3-fpm   # tu versión
sudo systemctl restart apache2      # si usas mod_php

# RHEL / AlmaLinux / Rocky
sudo dnf upgrade 'php*'
sudo systemctl restart php-fpm httpd

No olvides reiniciar. PHP-FPM y Apache mantienen el código antiguo en memoria hasta que reinicias. En Docker, descarga la imagen oficial nueva y reconstruye tus contenedores.

Mitigaciones temporales

  • Pon session.upload_progress.enabled = 0 en php.ini o en el pool de FPM (no sirve con ini_set()).
  • En PHP 8.5, pon también fatal_error_backtraces = 0.
  • Limita el tamaño de las peticiones en tu proxy y restringe el acceso a servidores que no puedas actualizar.
  • Reinicia todos los workers después de cada cambio.

Ninguna configuración protege del todo: la única solución completa es actualizar PHP. Además, hay un tercer fallo relacionado, CVE-2026-115560, que aún no tiene parche y se mitiga con el mismo ajuste de session.upload_progress.

Preguntas frecuentes

¿Actualizar WordPress me protege de PHP2Shell?

No. PHP2Shell es un fallo del propio PHP, así que actualizar WordPress, el tema o los plugins no lo corrige. Necesitas una versión de PHP parcheada en tu servidor o en tu hosting.

¿Qué versiones de PHP están corregidas?

PHP 8.2.35, 8.3.36, 8.4.27 y 8.5.12 o posteriores. Las ramas 8.1, 8.0 y 7.4 no tienen versión oficial; necesitas un paquete parcheado de tu distribución o actualizar a PHP 8.3 o superior.

¿Se está explotando PHP2Shell?

Sí. El 24 de octubre de 2026 un investigador registró 35 shells lanzadas por atacantes en sus honeypots con PHP 8.4.26 y Apache mod_php. Hasta entonces solo se habían visto intentos y escaneos masivos.

¿Cómo sé qué versión de PHP usa mi web?

En WordPress ve a Herramientas → Salud del sitio → Información → Servidor. En un servidor con SSH, ejecuta php -v, aunque ten en cuenta que la versión de la web puede ser distinta a la de la línea de comandos.

Recibe alertas de seguridad gratis

Un email breve cuando una vulnerabilidad crítica o una actualización problemática te afecte. Sin spam y puedes darte de baja cuando quieras. Consulta nuestra política de privacidad (en inglés).

Fuentes

Más en Arelvox: lee también sobre node2shell, el fallo de Brotli en Node.js (en español).

Leave a Comment