Vulnerabilidad crítica en PHP: qué hacer con tu web
Esta semana se ha publicado una vulnerabilidad en PHP de las que obligan a dejar lo que estás haciendo. En realidad son dos fallos, conocidos ya como php2shell, y afectan al lenguaje sobre el que funcionan WordPress, PrestaShop y la mayoría de webs que hay en internet. El 21 de octubre el equipo de PHP publicó las versiones corregidas y recomendó actualizar de inmediato.
En este artículo te explicamos en qué consisten, qué puedes hacer hoy mismo para proteger tu web y cómo lo estamos gestionando en k3bone.com.
Qué es php2shell
php2shell es el nombre con el que se conoce a dos vulnerabilidades críticas en el propio intérprete de PHP que permiten a un atacante ejecutar código en el servidor sin necesidad de autenticarse. Según el anuncio oficial de php.net, las dos tienen una puntuación CVSS v4.0 de 9.2 sobre 10:
- CVE-2026-109618: si PHP se queda sin memoria mientras los datos internos de una petición están a medio inicializar, la limpieza posterior puede tratar datos corruptos como válidos. Esa corrupción abre la puerta a ejecutar código malicioso.
- CVE-2026-109619: parte del estado interno de una petición puede sobrevivir después de que se haya liberado su memoria. Una petición posterior atendida por el mismo proceso puede llegar a usar ese estado antes de que se reinicie, y un atacante puede aprovecharlo para ejecutar su propio código.
La diferencia con las vulnerabilidades habituales es el lugar donde está el problema. Cuando falla un plugin de WordPress, el agujero está en tu aplicación y basta con actualizar ese plugin. Aquí el fallo está un nivel por debajo, en el motor que ejecuta la aplicación, así que da igual lo bien mantenido que tengas tu WordPress si el PHP que hay debajo es vulnerable.
A quién afecta esta vulnerabilidad en PHP
Según Cloudflare, el problema está presente en cualquier servidor web con PHP 5.4 o posterior, da igual si lo ejecuta con PHP-FPM, Apache con mod_php, LiteSpeed o php-cgi. En la práctica, eso incluye casi cualquier hosting: compartido, VPS o servidor dedicado. Los fallos los encontraron y comunicaron de forma coordinada Calif.io, Wiz, OpenAI y Quarkslab.
Lo que más nos preocupa es que ya circula un exploit público. Según el análisis de CloudLinux, ataca la función que informa del progreso de las subidas de archivos, algo que PHP procesa al recibir la petición, antes de ejecutar el código de tu web. Ni el usuario y contraseña de tu panel, ni el doble factor, ni un plugin de seguridad de WordPress llegan a intervenir. Es difícil imaginar un escenario peor para un servidor web.
Qué pasa si uso una versión antigua de PHP
El 21 de octubre se publicaron las versiones corregidas de las ramas con soporte: PHP 8.2.35, 8.3.36, 8.4.27 y 8.5.12. Las versiones PHP 8.1 y anteriores ya no tienen soporte oficial, como puedes comprobar en la tabla de versiones soportadas de php.net, y normalmente no reciben parches de ningún tipo.
Esta vez, por la gravedad del problema, el equipo de PHP ha hecho una excepción y ha publicado correcciones para PHP 7.4, 8.0 y 8.1. No son versiones listas para instalar, sino cambios en el código fuente pensados para quien compila PHP o para los proveedores que mantienen versiones antiguas, como las distribuciones Linux, que recibieron los parches con antelación para preparar sus propios paquetes. Para versiones anteriores a la 7.4 (5.6, 7.0, 7.1, 7.2 o 7.3) el proyecto PHP no ha publicado nada. Solo algunos proveedores, como CloudLinux, han preparado sus propios parches, así que si tu hosting no los ofrece, tu web sigue expuesta aunque el resto del servidor esté actualizado.
Conviene no acostumbrarse: un parche excepcional es eso, una excepción. La próxima vulnerabilidad grave puede no tenerlo.
Cómo proteger tu web paso a paso
Si tienes una web en PHP, estos son los pasos que te recomendamos seguir, por este orden:
- Comprueba tu versión de PHP. En cPanel la encontrarás en Seleccionar versión de PHP o en MultiPHP Manager. En WordPress también puedes verla en Herramientas > Salud del sitio > Información > Servidor, con el número completo de versión.
- Actualiza a una versión parcheada. Si usas PHP 8.2 o superior, asegúrate de tener como mínimo la 8.2.35, 8.3.36, 8.4.27 o 8.5.12. Si tu proveedor de hosting gestiona PHP por ti, pregúntale si ya ha aplicado los parches.
- Revisa la protección de Cloudflare si la usas. Más abajo te explicamos cómo comprobarla y por qué solo es una medida temporal.
- Pon al día el resto de la web. Aprovecha para actualizar WordPress o PrestaShop, el tema y los plugins o módulos. Hazlo con una copia de seguridad reciente o en un entorno de pruebas (staging).
Si tu web lleva años sin tocarse, el paso 2 puede no ser inmediato. Un plugin antiguo puede dejar de funcionar al cambiar a una versión moderna de PHP, y ahí es mejor pedir ayuda que forzar el cambio en producción.
Si administras tu propio servidor y no puedes actualizar todavía, el anuncio de php.net incluye ajustes temporales de configuración, como desactivar session.upload_progress.enabled o limitar el tamaño de las peticiones. El propio equipo de PHP advierte que no son una mitigación completa y que actualizar es la única opción segura.
Cloudflare como medida temporal
Si tu web pasa por Cloudflare, su firewall de aplicaciones (WAF) puede bloquear los intentos de ataque antes de que lleguen a tu servidor. Según el propio Cloudflare, desplegó reglas específicas contra php2shell unas horas antes de que se hicieran públicas las vulnerabilidades, y desde el 21 de octubre protegen por defecto a todos sus planes. Lo que tienes que hacer depende de tu plan:
- Plan Free: la protección se activa sola, sin que tengas que tocar nada.
- Planes Pro, Business y Enterprise: entra en el panel de Cloudflare, en Security rules. Si aparece el aviso de que tu configuración no te protege frente a php2shell, pulsa Deploy Cloudflare Managed Ruleset y comprueba que las reglas están en modo bloqueo.
Ten en cuenta que esto reduce el riesgo, pero no corrige la vulnerabilidad. El fallo está en PHP, y Cloudflare reconoce que los atacantes ya están modificando sus ataques para intentar esquivar las reglas. Tampoco protege el tráfico que llegue a tu servidor sin pasar por Cloudflare. Úsalo para ganar tiempo mientras actualizas PHP, no como solución definitiva.
Si quieres activar Cloudflare en tu web y no sabes como hacerlo, visita nuestro artículo en el blog con todos los pasos para hacerlo de manera gratuita.
Qué hemos hecho en k3bone.com
El 21 de octubre avisamos por email a todos nuestros clientes de hosting. Desde entonces hemos actualizado las versiones de PHP de nuestros servidores y estamos revisando, junto a cada cliente, las webs que todavía usan versiones antiguas para buscar la mejor solución en cada caso. A quienes tienen Cloudflare delante de su web también les estamos recomendando comprobar que tienen activa su protección contra php2shell.
En nuestros servidores usamos CloudLinux con cPanel, y cada cliente puede elegir desde su panel entre dos tipos de PHP: las versiones de cPanel (ea-php), que se gestionan en MultiPHP Manager, y las versiones hardened de CloudLinux (alt-php), que se eligen en Seleccionar versión de PHP. Las versiones hardened son versiones antiguas que CloudLinux y TuxCare siguen manteniendo y parcheando aunque hayan dejado de tener soporte oficial.
Según el seguimiento que publica CloudLinux, los paquetes corregidos de ea-php, de PHP 5.2 a 8.5, ya están publicados y los tenemos instalados. Los de alt-php se actualizarán en breve, en cuanto CloudLinux los libere para nuestros servidores. Mientras tanto, si tu web usa una versión alt-php, la solución inmediata es cambiar a la misma versión de PHP en ea-php: en Seleccionar versión de PHP, elige la opción native y selecciona la versión en MultiPHP Manager. Si no lo tienes claro, escríbenos y lo hacemos contigo.
Aun así, aconsejamos siempre pasar a una versión de PHP actual, de PHP 8.3 en adelante. Con php2shell se ha visto claro: en las versiones soportadas el parche estuvo disponible el mismo día, y en las antiguas todavía hay quien lo está esperando.
Por qué pasar a PHP 8.3 o superior
Una versión antigua con parches de terceros te saca del apuro, pero no sirve como plan a largo plazo. Los desarrolladores de WordPress, PrestaShop y de los plugins más usados van dejando de dar soporte a las versiones antiguas de PHP, y antes o después una actualización importante de tu web exigirá una versión moderna.
Ni siquiera PHP 8.2 es una buena opción para quedarse: según php.net, deja de recibir correcciones de seguridad el 31 de diciembre de 2026. PHP 8.3, 8.4 y 8.5 seguirán recibiéndolas durante los próximos años, según el calendario oficial. Actualizar ahora, con calma y en un entorno de pruebas, es mucho más cómodo que hacerlo con prisas la próxima vez que salga un aviso como este.
Preguntas frecuentes
¿Qué versiones de PHP corrigen php2shell?
PHP 8.2.35, 8.3.36, 8.4.27 y 8.5.12, publicadas el 21 de octubre de 2026. Para PHP 7.4, 8.0 y 8.1 solo hay parches excepcionales que deben aplicar tu proveedor o tu distribución Linux.
¿Cómo sé qué versión de PHP usa mi web?
En cPanel, en Seleccionar versión de PHP o MultiPHP Manager. Si usas WordPress, en Herramientas > Salud del sitio > Información > Servidor. Si no tienes acceso a ninguno de los dos, tu proveedor de hosting puede decírtelo.
¿Me protege un plugin de seguridad de WordPress?
No. El ataque actúa antes de que se ejecute el código de WordPress, así que ningún plugin llega a intervenir. La protección tiene que estar en el servidor: PHP parcheado y, de forma temporal, un WAF como el de Cloudflare.
¿Es suficiente con tener Cloudflare?
No. Cloudflare protege por defecto frente a php2shell (en los planes de pago conviene revisar que el Managed Ruleset esté desplegado en modo bloqueo), pero solo reduce el riesgo. La vulnerabilidad sigue en tu servidor hasta que usas una versión de PHP parcheada.
¿Actualizar PHP puede romper mi web?
Puede pasar si la web usa plugins, módulos o temas muy antiguos. Por eso recomendamos hacer una copia de seguridad, probar el cambio en un entorno de staging y actualizar primero el CMS y sus componentes.
¿Qué versión de PHP debería elegir?
La más reciente que sea compatible con tu web, y como mínimo PHP 8.3. Si no sabes cuál admite tu WordPress o tu PrestaShop, consúltalo con tu proveedor antes de cambiarla.
¿Necesitas ayuda con tu web?
Si eres cliente de k3bone.com y tu web usa una versión antigua de PHP, abre un ticket de soporte y la revisamos contigo. Si quieres despreocuparte de este tipo de avisos, en k3bone.com y k3code.com tenemos planes de mantenimiento web y también puedes contratar horas sueltas para una revisión puntual.
