No es php.net · No es NVD · No es CISA

Seguimiento de vulnerabilidades PHP

Informe no oficial sobre vulnerabilidades de seguridad en PHP

English简体中文日本語DeutschFrançaisNederlandsEspañol

Alerta de seguridad

PHP2Shell: actualice PHP. Es la única solución completa.

CVE-2026-109618 y CVE-2026-109619 son vulnerabilidades críticas en el propio PHP que permiten ejecución remota de código sin autenticación. El proyecto PHP publicó correcciones el 21 de octubre de 2026 para las ramas con soporte 8.2 a 8.5. Reinicie PHP después de actualizar. Un cortafuegos no es un sustituto.

Pasos para corregir

CVE-2026-109618 · GHSA-w8hw-w9fx-j79w

CVE-2026-109618: ejecución remota de código en PHP por corrupción al agotarse la memoria

El equipo de seguridad de PHP describe CVE-2026-109618 como una vulnerabilidad crítica del núcleo de PHP: el manejo de la falta de memoria puede interrumpir PHP mientras los datos internos de la petición solo están parcialmente inicializados, y la limpieza posterior puede tratar esos datos inválidos como válidos. El equipo le asigna un CVSS v4.0 de 9.2 e indica que solo una actualización es una corrección completa.

Última actualización

Identificadores según el proyecto PHP y avisos secundarios.
CampoDato de las fuentes citadas
CVECVE-2026-109618
Aviso de GitHubGHSA-w8hw-w9fx-j79w
GravedadCrítica. Puntuación base CVSS v4.0 9.2, indicada por Jakub Zelenka en oss-security en nombre del equipo de seguridad de PHP.
Puntuación NVDCVSS v3.1 9.8 Crítica (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H), puntuación Primary de la NVD, consultada el 22 de octubre de 2026 a través de la API de la NVD.
VectorAV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H según el aviso de la Universidad de Toronto. El mensaje de oss-security consultado da la puntuación 9.2, no este vector.
Versiones corregidas8.2.35, 8.3.36, 8.4.27, 8.5.12 y versiones posteriores de estas ramas.
CWEEl Centro Canadiense de Ciberseguridad clasifica ambas CVE de PHP2Shell como use-after-free (CWE-416). El propio proyecto PHP llama a esta CVE corrupción por falta de memoria; es el término que usamos.

Qué falla, al nivel de la información del fabricante

En oss-security, Jakub Zelenka escribió que PHP aborta el procesamiento de peticiones mediante longjmp() ante errores de falta de memoria; una asignación fallida puede interrumpir la inicialización cuando ya hay un estado de petición incompleto accesible, y el cierre de la petición puede entonces acceder a ese estado inválido, lo que podría permitir la ejecución remota de código. La explicación de la PHP Foundation coincide: si una petición alcanzaba memory_limit en el momento equivocado, podían quedar datos parcialmente inicializados que después se consideraban válidos.

No publicamos nada más allá de este mecanismo. No describimos cómo provocar el error de memoria.

Qué se ha demostrado

Impacto

Una explotación exitosa significa ejecución remota de código sin autenticación con los permisos de la cuenta del sistema del worker de PHP. Wiz y Cloudflare citan además caídas y la divulgación de memoria del proceso. El alcance depende del build, las extensiones y la arquitectura del servidor; según la Universidad de Toronto, la fiabilidad varía, y PHP validó una RCE completa. Las fuentes revisadas no contienen ninguna afirmación fiable de que «funciona en todas partes», ni ningún motivo para esperar antes de parchear.

Corrección

Actualice a 8.2.35, 8.3.36, 8.4.27 u 8.5.12 o posterior y reinicie los workers que atienden tráfico. Según oss-security, la actualización es la única corrección completa. Los ajustes provisionales de PHP, como memory_limit=-1 y un post_max_size bajo, son incompletos: incluso sin un límite de memoria controlable, un error de asignación subyacente puede alcanzar la vía vulnerable. Según Tanium, la entrada de la NVD se publicó el 21 de octubre de 2026 con el estado «Undergoing Analysis». Use el aviso de PHP como fuente operativa mientras la NVD se pone al día.

Exposición según el tipo de servidor, según el aviso completo de PHP

El aviso de GitHub explica por qué el riesgo cambia según el SAPI. La clave es si PHP sigue ejecutando la limpieza de fin de petición cuando el inicio de la petición ha fallado.

Resumen de GHSA-w8hw-w9fx-j79w. «Análisis del código» significa que el equipo de PHP leyó el código; no es un exploit demostrado.
SAPIPor quéValoración del equipo de PHP
Apache mod_phpLa limpieza se ejecuta siempre, incluso tras un inicio fallido. El cuerpo de la petición se analiza automáticamente al inicio, antes de cualquier código de la aplicación.Ejecución remota de código demostrada, sin intervención de la aplicación.
PHP-FPMUn worker cuyo inicio falla se descarta, lo que cierra esa vía temprana. Una falta de memoria posterior, mientras corre la aplicación, aún puede dejar estado inválido.Vulnerable según el análisis del código. Sin exploit completo para FPM.
FrankenPHPSe comporta como mod_php: la limpieza se ejecuta sin condiciones.Probablemente atacable sin fallo en la aplicación (análisis del código).
LiteSpeed (LSAPI)Diseñado a imagen de FPM.Explotación vía la aplicación probable, no validada.

Por qué los límites de subida no acotan la memoria

Según el aviso, una petición de formulario multipart puede agotar la memoria de PHP aunque parezca estar muy por debajo de los límites configurados. En resumen: un cuerpo sin longitud utilizable puede pasar el control de post_max_size; el número de cabeceras dentro de una parte no tiene límite y ocupan más en memoria que en la red; los campos de archivo vacíos no cuentan para max_file_uploads, pero PHP crea igualmente sus arrays de subida. El código de la aplicación también puede llegar a ese estado si la entrada del usuario controla una reserva grande de memoria. Nos quedamos en el nivel publicado por PHP y no describimos cómo construir una petición así.

Qué cambia la corrección dentro de PHP

Ante falta de memoria, PHP ya no salta fuera del camino de código actual. Lanza un error «suave» de memoria en el siguiente punto seguro del motor y, si el consumo llega a un segundo umbral más alto, el proceso termina de inmediato. memory_limit sigue funcionando y la limpieza ya no ve estado a medio construir.

Endurecimiento que sigue siendo útil tras parchear

Según PHP, estas medidas reducen el riesgo de cierres bruscos y de denegación de servicio incluso en versiones corregidas. No sustituyen a la actualización.

Fuentes

Los enlaces externos salen de este sitio. No alojamos código de explotación.

  1. News archive 2026: security advisory, 21 October 2026 — PHP project (php.net)
  2. Today’s PHP security release, and how we’re strengthening PHP security — The PHP Foundation
  3. CVE-2026-109618: PHP 8.2–8.5 RCE via OOM corruption — oss-security (Jakub Zelenka, PHP security team)
  4. GHSA-w8hw-w9fx-j79w — CVE-2026-109618 — PHP (GitHub Security Advisory)
  5. Security advisory: critical unauthenticated RCE in PHP (“php2shell”) — University of Toronto Information Security
  6. Notice: php2shell, critical PHP vulnerabilities (status as of 21 October 2026, 20:00 UTC) — Expel
  7. Critical vulnerabilities in PHP require immediate patching (21 October 2026) — CISA
  8. Responding to core PHP vulnerabilities CVE-2026-109618 and CVE-2026-109619 — Google Cloud
  9. CVE-2026-109618 — NVD
  10. PHP2Shell: AI uncovers critical RCE vulnerabilities affecting 70% of the Internet — Wiz Research
  11. PHP vulnerability CVE-2026-109618 (reproduces PHP’s advisory) — Inphinit (PHP framework documentation)