Vulnerabilidad PHP: dos fallos RCE críticos, actualiza ya
Si llevas años en esto, sabrás que PHP es como el vecino de toda la vida: siempre está ahí, hace el trabajo y casi nadie se acuerda de él hasta que algo se rompe. Pues esta semana se ha roto, y de qué manera. Hablamos de una vulnerabilidad PHP de ejecución remota de código (RCE) que afecta al propio núcleo del lenguaje y que ya se está intentando explotar.
Qué ha pasado con PHP2Shell
El 20 de octubre de 2026 el proyecto PHP avisó de que preparaba una versión de seguridad urgente para dos fallos críticos. La información se había filtrado antes de tiempo. Según CERT-EU, los parches salieron el 21 de octubre en las versiones 8.5.12, 8.4.27, 8.3.36 y 8.2.35.
El conjunto se conoce como PHP2Shell, un nombre que viene de la filtración y que el aviso oficial no adopta. Los dos fallos son:
- CVE-2026-109618: RCE por corrupción de memoria cuando PHP gestiona situaciones de falta de memoria (OOM).
- CVE-2026-109619: RCE por un estado global obsoleto, que sigue vivo cuando la memoria que lo respaldaba ya se ha liberado.
Por qué es tan grave
La clave es que el fallo está en PHP y no en la aplicación que corre encima. Da igual que tu WordPress, tu Drupal o tu Magento estén impecables: si el motor está vulnerable, estás expuesto. Wiz habla de un lenguaje que mueve alrededor del 70 % de las webs del mundo y afirma haber demostrado RCE sin autenticación sobre WordPress y Drupal.
CISA lo resume sin rodeos. Los fallos permiten ejecutar código remoto sin autenticarse y afectan a todas las instalaciones de PHP que sirven peticiones web. Pide parchear de inmediato.
Con mod_php la cosa se pone peor. Qualys recoge que PHP reporta un exploit demostrado que se dispara antes de que se ejecute ningún código de la aplicación. Si tienes Apache con mod_php, esto es para ti.
Versiones afectadas y puntuación
Según Wiz, el problema alcanza desde PHP 5.4 hasta las ramas 8.x. Afecta a PHP-FPM, Apache con mod_php, php-cgi, FrankenPHP y LiteSpeed.
Sobre la gravedad hay un matiz. El equipo de PHP puntúa ambos fallos con un 9,2 en CVSS v4.0, mientras que watchTowr los sitúa en un 10,0. Sea como sea, estamos en la zona roja.
Y ojo, que aquí viene lo feo para quien arrastra sistemas viejos:
- Los parches oficiales llegan solo para PHP 8.2 a 8.5.
- Las ramas fuera de soporte (PHP 5.x, 7.x y versiones antiguas de 8.x) no tienen corrección oficial. Phoenix Security calcula unos 884.000 hosts en esa situación.
- Plesk ha publicado builds del 21 de octubre con correcciones para sus PHP 7.4.33, 8.0.30 y 8.1.34. Llevan el mismo número de versión, pero distinta fecha de compilación.
Explotación: ya no es una amenaza teórica
Esto no es de «ya lo miraré el lunes». Cloudflare detectó tráfico de ataque a las 07:43 UTC del 21 de octubre, antes de que se publicara el parche. Informa además de intentos de saltarse sus protecciones. CERT-EU avisa de que ya circulan pruebas de concepto, lo que hace probable la explotación activa.
Sansec, por su parte, espera explotación masiva ahora que parche y análisis técnicos son públicos. Confirma RCE sin autenticación contra Magento 2.4.9 y otras diez aplicaciones PHP.
Qué debes hacer ahora mismo
- Comprueba tu versión con
php -vo conphpinfo(), que también te indica la API del servidor (FPM, mod_php, CGI). - Actualiza a 8.5.12, 8.4.27, 8.3.36 o 8.2.35, según tu rama.
- Revisa tu repositorio. Sansec avisa de que el repositorio de Remi, habitual en servidores basados en RHEL, no tenía el arreglo el 21 de octubre. Su mantenimiento es voluntario. Vuelve a mirar si ya está disponible.
- Si usas Plesk, actualiza a la última versión disponible.
- Si estás en una rama sin soporte, migra cuanto antes. Como mucho, trata las mitigaciones de terceros como un parche provisional.
- Revisa logs y archivos en busca de comportamientos raros, como procesos extraños, ficheros nuevos en directorios web o picos de errores de memoria.
El aviso de PHP es claro: no existen mitigaciones completas y actualizar es la única opción segura. Un WAF ayuda, pero no es sustituto del parche.
Lección de veteranos
Los que vivimos la época de los FTP sin cifrar y los register_globals sabemos que parchear no es opcional, y que dejar un servidor con PHP 5.6 «porque funciona» es jugar a la ruleta rusa. Esta vulnerabilidad es el recordatorio perfecto para hacer inventario, retirar lo obsoleto y automatizar las actualizaciones.
Si gestionas un WordPress, no te quedes solo con actualizar plugins: el PHP del hosting también cuenta. Escríbele a tu proveedor si no tienes acceso. Para más sobre cómo blindar tu web, echa un vistazo a nuestra sección de seguridad web.
Fuentes
- CISA: Critical Vulnerabilities in PHP Require Immediate Patching
- CERT-EU: Security Advisory 2026-018
- Wiz: PHP2Shell
- Qualys: PHP2Shell, parches críticos
- Sansec: PHP2Shell
- Laravel News: PHP Security Releases
- RedesZone: dos vulnerabilidades críticas en PHP
- Plesk: CVE-2026-109618 y CVE-2026-109619
- Phoenix Security: PHP Core RCE