Situación actual: PHP2Shell. Dos vulnerabilidades críticas de PHP (CVSS 9.2) permiten ejecutar código malicioso sin autenticación. Parches desde el 21/10/2026.Qué hacer ahora →

Seguridad en Craft CMS tras PHP2Shell: cómo proteger los sitios web de agencias

Craft CMS se ejecuta sobre PHP y las agencias lo usan a menudo con muchos sitios de clientes. Tras PHP2Shell importan el parche, el reinicio, una security key protegida y el contraste de la Project Config.

Actualizado 5 min de lecturaPlataformas

En resumen: tras PHP2Shell, la seguridad en Craft CMS depende del PHP del servidor, no de Craft. Precisamente las agencias con muchos sitios Craft deberían revisar ahora cada servidor por separado. Tras el parche y el reinicio, conviene revisar .env, la security key, devMode, la raíz de documentos y el contraste de la Project Config.

Qué significa PHP2Shell para los sitios Craft

Craft CMS es popular entre las agencias porque ofrece modelos de contenido flexibles y plantillas limpias. En consecuencia, muchas agencias atienden decenas de sitios Craft en distintos servidores y paquetes de hosting. Según el equipo de PHP, las vulnerabilidades de PHP CVE-2026-109618 y CVE-2026-109619 permiten ejecutar código malicioso de forma remota y sin autenticación, con independencia de la versión de Craft.

Para las agencias, la cuestión más importante es por tanto organizativa: ¿qué sitio web funciona dónde, con qué PHP y quién es responsable de la actualización? Una lista de todas las instalaciones con proveedor de hosting, estado de PHP y persona de contacto es el primer paso. Cómo apoyamos a las agencias en ello se describe en Socio de seguridad para agencias.

Seguridad en Craft CMS: comprobar la versión de PHP

En el Control Panel, Herramientas > Informe del sistema muestra la versión de PHP, la base de datos y los plugins instalados. Es la versión con la que el sitio web se ejecuta en la web. En cambio, la consola de Craft php craft, el procesamiento de la cola y los cron jobs usan el PHP de línea de comandos. Ambos deben estar parcheados.

Las versiones corregidas de origen son 8.5.12, 8.4.27, 8.3.36 y 8.2.35. Muchos proveedores de hosting aplican las correcciones como backport; entonces el número no cambia. Qué versiones están afectadas se muestra en ¿Qué versiones de PHP están afectadas?. Qué versiones de PHP admite su versión de Craft puede consultarlo, según los requisitos del sistema, en la documentación de craftcms.com.

Craft procesa las tareas en segundo plano en una cola. Si funciona como proceso permanente bajo un gestor de procesos, este también debe reiniciarse tras la actualización de PHP.

Directorios y configuración en Craft

Lugar Contenido Punto de control
.env Acceso a la base de datos, CRAFT_SECURITY_KEY, otras claves Renovar los valores ante una sospecha
config/general.php devMode, allowAdminChanges, ruta del Control Panel Código PHP añadido
config/project/ Project Config en YAML Contraste con Git
web/ Raíz de documentos con index.php, cpresources/, a menudo subidas Archivos PHP adicionales
storage/ Registros, archivos de ejecución, con frecuencia copias de seguridad de la base de datos No accesible desde la web
templates/ Plantillas Twig JavaScript ajeno
modules/, vendor/ Módulos y plugins propios Archivos modificados, composer audit

Un punto que se pasa por alto con frecuencia es storage/backups/. Craft guarda allí copias de seguridad de la base de datos que pueden contener datos completos de clientes y de formularios. Esta carpeta nunca debe estar por debajo de la raíz de documentos.

Comprobaciones inofensivas en la línea de comandos:

# Mostrar las diferencias entre la Project Config y la base de datos
php craft project-config/diff
# Archivos PHP en la raíz de documentos, salvo index.php
find web -type f -name "*.php" ! -name "index.php"
composer audit
Importante

En producción, devMode debe estar en false. Con devMode activado, Craft muestra mensajes de error detallados con rutas y fragmentos de código que facilitan el trabajo a los atacantes.

Control Panel, usuarios y plugins

El Control Panel está por defecto en /admin. Compruebe qué usuarios tienen derechos de administrador y elimine los accesos de antiguos empleados y freelancers. Craft admite autenticación en dos pasos; utilícela para todas las cuentas con derechos elevados.

Ponga allowAdminChanges en false en producción. Entonces los campos, las secciones y los ajustes de plugins solo se pueden modificar mediante la Project Config versionada, y cualquier desviación se nota al contrastar con Git. Los plugins del Plugin Store aportan código PHP propio; compruebe si todos siguen manteniéndose y si encajan con la versión de PHP prevista.

// config/general.php, extracto para el entorno de producción
'devMode' => false,
'allowAdminChanges' => false,

Lo que puede y no puede hacer una actualización de Craft

Una actualización de Craft o de un plugin cierra errores en ese código y puede permitir versiones más recientes de PHP. No parchea PHP, no reinicia ni PHP-FPM ni la cola, no renueva una security key filtrada y no elimina archivos ajenos de web/ o storage/.

Para las agencias con muchas instalaciones de Craft, tras el parche cuenta sobre todo la repetibilidad. Deje constancia, por cada sitio web, de qué versión de PHP se ejecuta en la web y en la línea de comandos, cuándo se confirmó el reinicio y si las comprobaciones arrojaron anomalías. Este resumen ayuda ante consultas de clientes y en futuros avisos. Piense también en los entornos de staging y desarrollo accesibles públicamente. A menudo funcionan con devMode, versiones más antiguas y datos reales de clientes, y se olvidan fácilmente en las actualizaciones. Si hay dudas sobre si el sitio de un cliente está afectado, informe al cliente de forma objetiva en lugar de esperar.

¿Cómo ayuda PHP SOS en concreto?

  • Registramos con usted todas las instalaciones de Craft con proveedor de hosting, estado de PHP y responsable.
  • Hacemos que se confirmen el parche y el reinicio por servidor y guardamos los registros a partir del 20/10/2026.
  • Revisamos la raíz de documentos, storage, la configuración, los usuarios y el contraste de la Project Config.
  • Si lo desea, nos encargamos del mantenimiento de seguridad continuo de los sitios de sus clientes en el contrato de mantenimiento de seguridad, también bajo su nombre.

Preguntas frecuentes

¿Está Craft CMS afectado por PHP2Shell?

Craft CMS en sí no tiene ninguna vulnerabilidad nueva. Pero se ejecuta sobre PHP, y PHP2Shell está en PHP. Por eso, cualquier instalación de Craft en un servidor sin parchear es potencialmente vulnerable, con independencia de la versión de Craft.

¿Dónde muestra Craft la versión de PHP?

En el Control Panel, en Herramientas > Informe del sistema. Allí figuran la versión de PHP, la base de datos y los plugins instalados. Un backport aplicado no se reconoce por el número; lo confirma su proveedor de hosting.

¿Qué es la security key en Craft y por qué renovarla?

La security key del archivo .env sirve para firmar y cifrar datos. Quien la conozca puede, en determinadas circunstancias, falsificar sesiones o datos de formularios. Ante una sospecha, debería renovarla de acuerdo con su agencia.

¿Qué aporta poner allowAdminChanges en false?

Con ello, los campos, las secciones y los ajustes de plugins ya no se pueden modificar en producción desde el Control Panel. Los cambios solo llegan mediante la Project Config versionada, lo que hace las manipulaciones más difíciles y más visibles.

Fuentes

Contacto inmediato

Cada hora cuenta. Escríbanos ahora.

Describa brevemente el sistema, la versión de PHP y lo que ha observado. Nos pondremos en contacto, aclararemos la situación y trabajaremos en remoto hasta que el incidente quede cerrado y documentado.

Ayuda inmediata