PHP publicó el 21 de octubre de 2026 las versiones que corrigen CVE-2026-109618 y CVE-2026-109619: PHP 8.5.12, 8.4.27, 8.3.36 y 8.2.35. PHP asignó a cada vulnerabilidad una puntuación de 9,2 en CVSS v4.0 y señaló el riesgo de ejecución remota de código sin autenticación en instalaciones que atienden solicitudes web. El aviso oficial de PHP detalla las correcciones y las medidas provisionales.

Versiones de PHP que corrigen los dos CVE

Aikido Security explica en inglés las comprobaciones de exposición y el parcheo de PHP2Shell

La versión corregida depende de la rama que utilice el servidor:

Rama de PHPVersión corregida upstream
PHP 8.58.5.12
PHP 8.48.4.27
PHP 8.38.3.36
PHP 8.28.2.35

Estas son las versiones upstream publicadas por PHP. Si el servidor recibe PHP mediante una distribución o un proveedor de alojamiento, el paquete que debe aplicarse depende de ese proveedor. La corrección afecta al runtime de PHP: actualizar un CMS o un framework, por sí solo, no actualiza PHP Core.

Dos vulnerabilidades con mecanismos distintos

PHP describe CVE-2026-109618 como un fallo ligado a la gestión de memoria cuando se agota la memoria disponible. La ejecución de una solicitud puede interrumpirse mientras algunos datos internos están parcialmente inicializados; durante la limpieza, el sistema puede tratar datos no válidos como si lo fueran.

CVE-2026-109619 afecta al estado interno asociado a una solicitud. Ese estado puede quedar obsoleto cuando la memoria que lo respaldaba deja de existir y una solicitud posterior, atendida por el mismo proceso worker, puede utilizarlo antes de que se reinicialice. PHP identifica ambos problemas como riesgos de ejecución remota de código en servidores que procesan solicitudes web.

PHP incluye entre las configuraciones expuestas PHP-FPM, Apache con mod_php, php-cgi, FrankenPHP y LiteSpeed. La nota de seguridad señala mod_php como el modo de mayor riesgo: una solicitud sin autenticar puede alcanzar la ruta vulnerable antes de que se ejecute el código de la aplicación.

Qué consiguen las medidas temporales

PHP describe ajustes provisionales para reducir la exposición a rutas concretas. Para CVE-2026-109618 recomienda configurar memory_limit=-1 de forma que las aplicaciones no puedan cambiarlo, limitar post_max_size a 8M cuando no se necesiten cargas de archivos y a 32M cuando sí se necesiten, y aplicar límites de recursos adecuados. PHP advierte que un fallo de asignación de memoria todavía puede alcanzar la ruta vulnerable.

Para CVE-2026-109619, desactivar session.upload_progress.enabled y reiniciar todos los procesos worker bloquea las rutas de sesión confirmadas, pero no otras variantes. En PHP 8.5, fatal_error_backtraces=0 bloquea la ruta confirmada relacionada con las trazas de errores fatales.

Estos cambios no sustituyen la actualización del runtime. PHP indica que las medidas provisionales no dejan una instalación segura y que actualizar es la corrección completa.

PHP 8.1 y anteriores

PHP 8.1 y las ramas anteriores ya no reciben actualizaciones del proyecto PHP. El equipo publicó backports mínimos del código fuente para PHP 7.4, 8.0 y 8.1, dirigidos a quienes compilan PHP desde el código fuente o no disponen de un proveedor con soporte de larga duración. Para una instalación gestionada por una distribución o un proveedor de alojamiento, PHP recomienda consultar sus paquetes o actualizar a una rama con soporte.