El 21 de octubre de 2026 el equipo de PHP publicó una versión de seguridad urgente para dos fallos críticos bautizados como PHP2Shell: CVE-2026-109618 y CVE-2026-109619. Los dos permiten ejecución remota de código sin autenticación y tienen una puntuación CVSS v4.0 de 9.2.

Si mantienes un WordPress, un Moodle, un Laravel o cualquier aplicación PHP expuesta a Internet, esto te afecta: no depende de un plugin concreto, está en el propio núcleo de PHP.

Qué falla exactamente

  • CVE-2026-109618: corrupción de memoria cuando PHP gestiona una situación de falta de memoria (out-of-memory) mientras procesa una petición.
  • CVE-2026-109619: un use-after-free por estado global que queda “colgado” entre peticiones.

Ambos están relacionados con el procesamiento de peticiones multipart y el mecanismo de progreso de subida de sesiones (session. upload_progress), que viene activado por defecto desde PHP 5.4.

Versiones corregidas

  • PHP 8.5.12
  • PHP 8.4.27
  • PHP 8.3.36
  • PHP 8.2.35

PHP 8.1 y anteriores ya no reciben versiones oficiales. Si sigues en una de ellas, este es el momento de migrar.

¿Se está explotando?

Hay informes de intentos de explotación desde antes de la publicación (AWS habla de intentos desde el 17 de octubre) y ya circulan pruebas de concepto públicas. Algunas fuentes indican que CISA los ha añadido a su catálogo de vulnerabilidades explotadas; otras aún no lo reflejan. Con exploits públicos en la calle, conviene tratarlo como explotado.

Qué hacer hoy

  1. Actualiza PHP a una de las versiones corregidas. Es la única solución completa: PHP ha dejado claro que ningún cambio de configuración lo mitiga del todo.
  2. Reinicia los procesos (PHP-FPM, Apache con mod_php, contenedores). Instalar el paquete sin reiniciar deja la versión vieja en memoria.
  3. Revisa todos los entornos: producción, staging, imágenes Docker, servidores olvidados.
  4. Como medida temporal, mientras parcheas, desactivar session. upload_progress. enabled reduce superficie, pero no sustituye a la actualización.

En mi caso, el servidor de este blog ya está en PHP 8.2.35. Si gestionas varios proyectos, en el siguiente artículo dejo un checklist práctico para auditarlos.

Fuentes