Si tienes una web en WordPress, Drupal, Joomla o cualquier sistema construido sobre PHP, necesitas leer esto hoy. No mañana. Hoy.
El 20 de octubre de 2026, investigadores de seguridad descubrieron —con ayuda de inteligencia artificial— dos fallos críticos en PHP que afectan potencialmente al 70% de los sitios web de todo el mundo. La noticia llegó a los telediarios y los ataques empezaron a producirse incluso antes de que el parche oficial estuviera disponible.
Este artículo no va de tecnicismos. Va de explicarte qué ha pasado, si tu web está en riesgo y, sobre todo, qué tienes que hacer ahora mismo para protegerla.
Tabla de contenidos
ToggleQué ha pasado exactamente
El 20 de octubre de 2026, una publicación en Hacker News filtró la existencia de dos vulnerabilidades críticas en PHP antes de su divulgación oficial. La Fundación PHP confirmó el fallo bautizado como PHP2Shell y registrado como CVE-2026-109618 y CVE-2026-109619, capaz de entregar a un atacante el control de cualquier web construida sobre PHP.
Lo que hace especialmente grave este caso es el origen del descubrimiento: PHP2Shell fue hallado con inteligencia artificial. Un sistema de IA analizó el código fuente de PHP y detectó fallos que llevaban décadas en el código sin que nadie los hubiera identificado. Eso es lo que llegó a los telediarios y lo que convierte este incidente en algo sin precedentes.
El parche oficial se publicó el 21 de octubre de 2026 a las 14:00 UTC. Pero para entonces, los ataques ya estaban en marcha.
Por qué afecta al 70% de las webs del mundo
PHP es el lenguaje de programación que corre «por debajo» de la mayoría de los sistemas de gestión de contenidos del mundo. No lo ves, pero está ahí. PHP sostiene hasta el 70% de los sitios web, entre ellos comercios electrónicos, bancos y servicios públicos.
WordPress, Drupal, Joomla, Magento… todas corren sobre PHP. Eso incluye la inmensa mayoría de webs de pequeños negocios, tiendas online y profesionales que hay en España.
El equipo de seguridad de PHP ha asignado a ambos fallos una puntuación de 9,2 sobre 10 en la escala CVSS 4.0: emergencia máxima. La gravedad llegó hasta el punto de que Países Bajos desconectó portales del Gobierno y del Parlamento como medida preventiva.
Qué puede hacer un atacante si tu web es vulnerable
Peticiones HTTP especialmente diseñadas pueden permitir a un atacante ejecutar código de forma remota en tu servidor. En cristiano: puede entrar en el servidor de tu web sin necesidad de contraseña ni usuario.
Una vez dentro puede:
- Leer y robar datos: información de clientes, contraseñas, datos de pago, correos electrónicos almacenados
- Modificar o borrar contenidos: cambiar tu web, inyectar código malicioso, redirigir visitantes a sitios fraudulentos
- Tomar el control completo del servidor: instalar programas maliciosos, cifrar todos tus archivos (ransomware)
- Dejar tu web caída: una denegación de servicio puede tumbar tu web por completo
Investigadores de Wiz demostraron ejecución de código remoto sin autenticación contra las últimas versiones de WordPress, Drupal y Joomla.
¿Está tu web en riesgo? Cómo comprobarlo
La pregunta clave es: ¿qué versión de PHP usa tu web?
| Rama PHP | Versión vulnerable | Versión parcheada |
|---|---|---|
| PHP 8.5 | Anterior a 8.5.12 | ✓ 8.5.12 |
| PHP 8.4 | Anterior a 8.4.27 | ✓ 8.4.27 |
| PHP 8.3 | Anterior a 8.3.36 | ✓ 8.3.36 |
| PHP 8.2 | Anterior a 8.2.35 | ✓ 8.2.35 |
| PHP 8.1 y anteriores | Todas | ✕ Sin parche oficial |
Si tu web corre PHP 8.1 o versiones anteriores, la situación es más grave: esas versiones ya no reciben actualizaciones de seguridad. No habrá parche oficial para ellas. El 35,1% de los sitios WordPress corre una versión de PHP que el proyecto ya no parchea, incluyendo el 16,46% que todavía usa PHP 7.4.
Cómo ver qué versión de PHP usa tu web
Opción 1 — Desde el panel de tu hosting (la más sencilla)
La mayoría de hostings tienen un apartado de «PHP» o «Configuración PHP» en su panel de control (cPanel, Plesk, Kinsta, SiteGround, Raiola, Webempresa…). Entra, busca ese apartado y verás qué versión tienes activa.
Opción 2 — Desde WordPress
Con el plugin gratuito Health Check & Troubleshooting puedes ver la versión de PHP desde Herramientas → Salud del sitio → Información → Servidor.
Opción 3 — Preguntando a tu proveedor de hosting
Si no encuentras la información, escribe a soporte y pregunta directamente. Tienen obligación de decírtelo.
Cómo actualizar PHP: pasos según tu situación
Si tienes acceso al panel de tu hosting (la mayoría de casos)
- Entra en el panel de control de tu hosting
- Busca el apartado de «PHP», «Configuración PHP» o «Versión de PHP»
- Selecciona PHP 8.3.36 o superior (PHP 8.4.27 si tu hosting ya la ofrece)
- Guarda los cambios
- Comprueba que tu web sigue funcionando correctamente
Importante: si tienes un entorno de pruebas o staging, haz el cambio primero ahí. Un cambio de versión de PHP puede afectar a plugins o temas antiguos que no son compatibles con versiones más nuevas.
Si tu web está en un servidor VPS o dedicado
En Ubuntu/Debian:
sudo apt install php8.3
sudo systemctl restart php8.3-fpm
sudo systemctl restart nginx # o apache2
En CentOS/AlmaLinux:
sudo systemctl restart php-fpm
sudo systemctl restart httpd
Verifica la versión instalada con:
Si no sabes cómo hacerlo o no tienes acceso técnico
No lo intentes a ciegas. Un error en la actualización de PHP puede dejar tu web caída. Contacta con tu proveedor de hosting o con un profesional de mantenimiento web. Esta es exactamente la situación para la que existe el mantenimiento web profesional.
Lo que dice el organismo oficial de ciberseguridad en España (INCIBE)
El Instituto Nacional de Ciberseguridad de España, INCIBE, publicó el 21 de octubre de 2026 su alerta oficial sobre estas vulnerabilidades con el identificador INCIBE-2026-762 y la máxima calificación de criticidad: nivel 5 sobre 5.
El aviso confirma exactamente lo que te he explicado: ambas vulnerabilidades permiten a un atacante remoto no autenticado ejecutar código con los privilegios del proceso web, y ya se habían reportado ataques activos contra servidores PHP antes de publicarse las actualizaciones.
INCIBE también alerta sobre los entornos en riesgo: instalaciones con PHP-FPM, Apache mod_php, php-cgi, FrankenPHP y LiteSpeed. El riesgo es especialmente alto en instalaciones con Apache mod_php.
Medidas de seguridad adicionales (aplícalas ahora mismo)
La actualización de PHP es la solución definitiva. Pero si no puedes actualizar de inmediato, INCIBE detalla las mitigaciones temporales para cada CVE. Te las explico en cristiano:
Mitigación temporal para CVE-2026-109618 (corrupción de memoria)
El fallo se dispara cuando PHP se queda sin memoria durante una petición. La mitigación oficial es establecer memory_limit=-1 a nivel administrativo y reiniciar todos los procesos PHP. Esto elimina el límite de memoria, lo que significa que el error que desencadena la corrupción ya no puede producirse.
Importante: ningún valor finito como 128M o 256M mitiga este fallo. Solo funciona con -1 (sin límite). Esta medida puede aumentar el consumo de memoria del servidor, así que es temporal hasta que puedas actualizar.
INCIBE también recomienda limitar el tamaño de las peticiones como barrera adicional: post_max_size a 8 MB si no necesitas subida de archivos, o 32 MB si la necesitas. Aplica los mismos límites en el servidor web o proxy.
Mitigación temporal para CVE-2026-109619 (estado global obsoleto)
Desactiva session.upload_progress.enabled y reinicia todos los procesos PHP. Puedes hacerlo desde el panel de tu hosting o añadiendo esto en el .user.ini de la raíz de tu web:
Si tu web usa PHP 8.5, INCIBE recomienda desactivar también fatal_error_backtraces:
Activa un WAF (Web Application Firewall)
Cloudflare desplegó reglas específicas para PHP2Shell el 21 de octubre, aproximadamente nueve horas antes de la divulgación pública. Si tu web usa Cloudflare, las reglas de protección ya están activas. El plan gratuito incluye protección WAF básica.
Para WordPress también puedes usar plugins como Wordfence o Sucuri, que han publicado reglas específicas para PHP2Shell.
Haz una copia de seguridad ahora mismo
Antes de hacer cualquier cambio, asegúrate de tener una copia de seguridad completa y reciente: archivos y base de datos. Si ya tienes copias automáticas, verifica que la última es de las últimas horas.
Activa la autenticación en dos pasos en WordPress
No resuelve la vulnerabilidad de PHP directamente, pero reduce significativamente la superficie de ataque. Si un atacante consigue acceso por otra vía, el doble factor dificulta que tome el control del panel de administración.
Revisa los usuarios administradores de tu WordPress
Accede a Usuarios en el panel de WordPress y verifica que no hay administradores que no reconozcas. Un atacante que ya haya entrado puede haber creado usuarios de acceso persistente.
El error más habitual: confundir «actualizar WordPress» con «actualizar PHP»
«Este no es un problema que puedas resolver simplemente actualizando WordPress o los plugins.»
— Vaisha Bernard, Chief Hacker en Eye SecurityActualizar WordPress está muy bien y siempre debes hacerlo. Pero en este caso no es suficiente.
La vulnerabilidad PHP2Shell afecta a PHP en sí mismo, no a un plugin, tema o aplicación concreta. Puedes tener WordPress perfectamente actualizado, todos los plugins al día, un tema reciente, y seguir siendo completamente vulnerable si PHP no está parcheado. Son dos cosas distintas y hay que tratar las dos.
Por qué los ataques empezaron antes del parche
El 20 de octubre, los identificadores CVE circularon en redes sociales antes de que hubiera parche disponible. Investigadores de watchTowr confirmaron que las vulnerabilidades eran reales y habían reproducido CVE-2026-109618. Eso significa que los atacantes tenían confirmación de que el fallo era explotable antes de que la mayoría de webs pudieran hacer nada.
Este tipo de incidentes demuestra que el mantenimiento web reactivo —actuar cuando ya ha pasado algo— no es suficiente. La seguridad web necesita ser proactiva: actualizaciones periódicas y un sistema de alertas que avise cuando hay vulnerabilidades críticas antes de que lleguen a los telediarios.
Checklist de actuación: lo que debes hacer hoy
- Comprueba qué versión de PHP usa tu web
- Si es anterior a las versiones parcheadas, actualízala o contacta con tu hosting
- Aplica la mitigación de session.upload_progress.enabled=0 si no puedes actualizar todavía
- Verifica que tienes una copia de seguridad reciente
- Activa o revisa tu WAF (Cloudflare o equivalente)
- Actualiza WordPress, plugins y temas a sus últimas versiones
- Activa la autenticación en dos pasos en WordPress
- Revisa los usuarios con permisos de administrador en tu WordPress
- Establece un sistema de mantenimiento web con actualizaciones periódicas de PHP, WordPress y plugins
- Si tu web corre PHP 8.1 o inferior, planifica la migración a PHP 8.3 o superior con urgencia
- Suscríbete a alertas de seguridad para recibir avisos antes de que lleguen a los telediarios
Conclusión: no es alarmismo, es mantenimiento
Vaya fregao el de esta semana.
Hay quien aprovecha este tipo de noticias para vender miedo. Yo prefiero darte información útil y accionable.
La realidad es que el parche ya existe. PHP 8.2.35, 8.3.36, 8.4.27 y 8.5.12 están disponibles y resuelven el problema. La mayoría de hostings ya lo han aplicado o lo harán en las próximas horas. Lo que tienes que hacer es verificar que tu web ya está protegida y aplicar las medidas adicionales que te he contado.
Este incidente, como tantos otros, vuelve a recordar por qué el mantenimiento web no es un gasto opcional. Es la diferencia entre estar listo cuando ocurre algo así y salir en los telediarios por las razones equivocadas.
¿No sabes si tu web está protegida o necesitas ayuda con la actualización de PHP?
Hablamos — cuéntame tu casoTambién te puede interesar:
