Ir al contenido

Seguridad Guías

Cómo comprobar si tu web es vulnerable a PHP2Shell (y por qué el número de versión puede engañarte)

No hace falta saber programar para comprobar si tu web está a salvo de PHP2Shell. Te explicamos dónde mirar la versión de PHP, qué pedirle a tu alojamiento y por qué en servidores con Ubuntu una versión que parece antigua puede estar ya corregida.

Por Redacción 3 min de lectura

Ilustración de una persona con un portátil que examina una web con una lupa gigante, junto a una lista con marcas verdes y una cruz roja, un escudo y un pequeño servidor
Imagen generada por Kilobita

PHP2Shell es un fallo de PHP, el lenguaje con el que funcionan WordPress, PrestaShop, Magento y buena parte de las webs. Lo contamos en nuestra primera pieza y en la de los ataques que empezaron antes del parche. Según Cloudflare, afecta a cualquier servidor con PHP 5.4 o posterior. Esta guía es para responder a una sola pregunta: ¿mi web está protegida?

Lo primero: actualizar WordPress no arregla esto

El fallo está en PHP, no en tu web. Cloudflare lo deja claro: actualizar el código de la web o los plugins no lo corrige. Hay que actualizar PHP, que normalmente instala y mantiene tu proveedor de alojamiento.

Paso 1: averigua qué versión de PHP usa tu web

  • En WordPress: Herramientas, Salud del sitio, pestaña Información y apartado Servidor.
  • En el panel del alojamiento (Plesk, cPanel o el propio del proveedor): suele estar en el apartado de PHP de cada dominio.
  • Desde fuera, con la cabecera del servidor. Algunos servidores dicen su versión en cada respuesta. En un Mac o en Linux, abre el Terminal y escribe curl -sI https://tuweb.com | grep -i x-powered-by. Con la nuestra sale x-powered-by: PHP/8.4.27. Muchos servidores ocultan este dato, así que, si no sale nada, no significa que estés a salvo.

Paso 2: compárala, pero con cuidado

Las versiones oficiales corregidas son 8.2.35, 8.3.36, 8.4.27 y 8.5.12. Si la tuya es una de esas o posterior dentro de su rama, estás bien. Pero hay una trampa. Las distribuciones de Linux recibieron el parche por adelantado y muchas lo aplican sin cambiar el número de versión. Lo hemos comprobado en los registros de seguridad de Ubuntu y Debian:

Sistema del servidorPHP que verásPaquete corregido¿Engaña el número?
Ubuntu 24.048.3.68.3.6-0ubuntu0.24.04.13Sí: parece muy anterior a 8.3.36, pero está corregido
Ubuntu 22.048.1.28.1.2-1ubuntu2.28Sí: es una rama que PHP ya no mantiene, pero Ubuntu la ha corregido
Debian 128.2.358.2.35-1~deb12u1No
Debian 138.4.278.4.27-1~deb13u1No

Es decir: un «8.3.6» en un servidor con Ubuntu puede estar perfectamente protegido, y la misma cifra en un servidor que compila PHP por su cuenta, no. El número que ves en WordPress no basta. Lo único fiable es la versión completa del paquete instalado o la confirmación de tu proveedor.

Paso 3: si no controlas el servidor, pregunta

En un alojamiento compartido no puedes actualizar PHP tú mismo. Escribe a tu proveedor. Puedes usar este mensaje:

Hola. Mi web es [tu dominio]. ¿Podéis confirmarme que la versión de PHP que usa ya incluye el parche de PHP2Shell (CVE-2026-109618 y CVE-2026-109619)? Si no es así, ¿cuándo lo aplicaréis? ¿Habéis visto intentos de ataque contra mi web desde el 17 de octubre?

Si te contesta que tu versión ya no tiene soporte, toca cambiar a una más reciente. Antes, haz una copia de seguridad y comprueba que tu tema y tus plugins funcionan con la nueva.

Paso 4: qué ayuda mientras tanto

  • Si tu web pasa por Cloudflare, sus reglas contra PHP2Shell están activadas por defecto desde el 21 de octubre, también en el plan gratuito. Cloudflare insiste en que son una capa extra y que hay que actualizar igualmente.
  • Si gestionas tu propio servidor, el aviso de PHP da medidas provisionales, como desactivar session.upload_progress.enabled o bajar post_max_size. PHP avisa de que reducen el riesgo, pero no hacen segura la instalación.
  • Si tu web no necesita que los visitantes suban archivos, Amazon sugiere bloquear la subida de archivos por formulario mientras no puedas actualizar, después de comprobar que no rompe nada.

La pregunta correcta no es «¿qué versión de PHP tengo?», sino «¿mi PHP tiene el parche?». En muchos servidores, esas dos respuestas no se parecen.

Sigue leyendo