PHP2Shell — Fallos críticos de PHP permiten tomar el control de servidores web (2026)
Dos fallos críticos de PHP llamados PHP2Shell (CVE-2026-109618, CVE-2026-109619) permiten ejecutar código en servidores web sin iniciar sesión. Los parches llegaron el 21 de octubre de 2026, pero los ataques empezaron días antes.
¿Qué es esta amenaza?
El 21 de octubre de 2026, el proyecto PHP publicó actualizaciones de seguridad de emergencia para dos vulnerabilidades críticas en el propio lenguaje PHP, apodadas PHP2Shell:
Ambas tienen una puntuación de 9,2 sobre 10 (críticas). Juntas permiten la ejecución remota de código sin autenticación: un atacante que pueda enviar una petición web a un servidor vulnerable podría ejecutar en él sus propios comandos — sin contraseña, sin cuenta y sin depender del código del propio sitio.
PHP impulsa una gran parte de la web, incluidos WordPress, Drupal, Joomla, Magento, aplicaciones Laravel e incontables tiendas online y portales de clientes. Palo Alto Networks contabilizó más de 22 millones de instancias de PHP accesibles desde Internet y potencialmente expuestas.
Cronología
| Fecha | Suceso |
|---|---|
| 17 de octubre de 2026 | Los honeypots de Amazon registran un primer intento de explotación, cuatro días antes de la divulgación pública |
| 21 de octubre de 2026 | PHP publica el aviso de seguridad y las versiones 8.5.12, 8.4.27, 8.3.36 y 8.2.35 |
| 21 de octubre de 2026 | En menos de una hora comienzan escaneos masivos en Internet; al menos un gobierno europeo desconecta su web como precaución |
| 22 de octubre de 2026 | Cloudflare informa de millones de intentos de ataque |
| 23 de octubre de 2026 | PHP advierte de un problema relacionado y de menor riesgo (CVE-2026-115560) en configuraciones de sesión poco habituales; la corrección llegará en la próxima versión ordinaria |
¿A quién afecta?
Cualquier instalación de PHP que responda a peticiones web está afectada, ya funcione como mod_php en Apache (la configuración más arriesgada), PHP-FPM, php-cgi, LiteSpeed o FrankenPHP, incluidos los contenedores Docker que incorporan su propio PHP.
| Versión de PHP | Estado |
|---|---|
| 8.5 anterior a 8.5.12 | Vulnerable — actualizar a 8.5.12 |
| 8.4 anterior a 8.4.27 | Vulnerable — actualizar a 8.4.27 |
| 8.3 anterior a 8.3.36 | Vulnerable — actualizar a 8.3.36 |
| 8.2 anterior a 8.2.35 | Vulnerable — actualizar a 8.2.35 |
| 7.4, 8.0, 8.1 (sin soporte) | Vulnerables — sin versión oficial; solo paquetes de distribución o parches retroportados del código fuente |
| 7.3 y anteriores | Vulnerables — sin corrección; es necesario actualizar |
Las distribuciones de Linux recibieron los parches por adelantado, así que los paquetes actualizados llegan con las actualizaciones normales del sistema. Algunos proveedores retroportan las correcciones sin cambiar el número de versión: consulte el aviso de seguridad de su distribución.
Cómo lo aprovechan los atacantes
Los investigadores señalan que crear un exploit fiable es más difícil de lo que se pensaba y que muchos intentos fracasan, pero con millones de intentos al día los servidores sin parchear acabarán siendo comprometidos.
Por qué importa, aunque no tenga un servidor
Si tiene un blog personal, la web de una pequeña empresa o una tienda online en un hosting compartido, casi con seguridad funciona con PHP. Los sitios secuestrados se usan para:
Como visitante no puede parchear el servidor de otros, pero sí puede detectar señales de que un sitio conocido ha sido manipulado.
Lista de señales de alarma
Para propietarios de sitios web:
sh, bash) o programas desconocidosPara visitantes:
Cómo protegerte
- Actualice PHP de inmediato a 8.5.12, 8.4.27, 8.3.36 o 8.2.35 (o al paquete corregido de su distribución) y reinicie después todos los workers de PHP y el servidor web
- En un hosting compartido o WordPress gestionado, pida a su proveedor que confirme por escrito que ha instalado los parches de PHP2Shell
- Si usa PHP 8.1 o anterior, planifique ya la migración a una versión con soporte: 7.3 y anteriores nunca recibirán corrección
- Hasta poder parchear, restrinja el acceso público al sitio y configure temporalmente session.upload_progress.enabled=0; reduce el riesgo, pero no lo elimina
- Proteja el sitio con un cortafuegos de aplicaciones web (WAF) que inspeccione por completo las peticiones grandes; los principales proveedores ya han publicado reglas contra PHP2Shell
- Haga inventario de todos los servidores, imágenes de contenedores y herramientas internas que usan PHP, empezando por los sistemas expuestos a Internet
- Como visitante, mantenga el navegador actualizado y nunca instale «actualizaciones» o «herramientas de seguridad» que ofrezca una ventana emergente
Qué hacer si te ves afectado
- 1.Si sospecha de una intrusión, desconecte el sitio o bloquee el acceso público antes de investigar
- 2.Parchee primero PHP y después busque web shells, archivos PHP desconocidos, cuentas de administrador nuevas y tareas programadas (cron) extrañas
- 3.Compruebe si procesos del servidor web o de PHP han abierto shells o programas desconocidos y revise las conexiones salientes del servidor
- 4.Restaure una copia de seguridad limpia anterior al 17 de octubre de 2026 si no puede confirmar que el servidor está limpio
- 5.Cambie todas las contraseñas y claves guardadas en el servidor: credenciales de base de datos, claves API, cuentas de administrador del CMS y accesos al hosting
- 6.Si los datos de clientes pudieron verse comprometidos, cumpla sus obligaciones de notificación de brechas (por ejemplo, el plazo de 72 horas del RGPD)
- 7.Notifique el incidente a su CERT nacional (por ejemplo, INCIBE-CERT en España)