
Qué se sabe de las dos fallas
- CVE-2026-109618, "RCE via OOM corruption" (GHSA-w8hw-w9fx-j79w): cuando PHP se queda sin memoria (out-of-memory), el manejo de ese error puede interrumpir el proceso mientras los datos internos de la petición están inicializados a medias. Después, la limpieza de la petición trata esos datos inválidos como si fueran válidos.
- CVE-2026-109619, "RCE via stale global state" (GHSA-6wmf-4rv5-p3rp): un estado interno de una petición puede sobrevivir después de que se liberó la memoria que lo respaldaba, y una petición posterior atendida por el mismo proceso puede usarlo antes de que se reinicie.
A quién afecta
- PHP 8.5 → 8.5.12
- PHP 8.4 → 8.4.27
- PHP 8.3 → 8.3.36
- PHP 8.2 → 8.2.35
Ya hay ataques en curso
Qué hacer hoy, en orden
- Hacer inventario. Identificar cada instalación de PHP que tengas: producción, staging, contenedores, el panel de hosting, ese sistema interno viejo y el software de terceros que trae PHP incluido.
- Actualizar a la versión parcheada de tu rama (8.5.12, 8.4.27, 8.3.36 u 8.2.35). Las distribuciones de Linux y los proveedores con soporte extendido recibieron los parches por adelantado, así que conviene revisar si tu sistema o tu hosting ya tienen el paquete actualizado.
- Si no podés actualizar ya, poné el sitio detrás de un WAF o CDN (como Cloudflare) y restringí el servidor de origen para que solo acepte tráfico de ese proveedor.
- Como medida temporal, aplicá las mitigaciones del aviso oficial en php.ini, en el pool de FPM o en la configuración de Apache (no sirven ini_set() ni .user.ini), y reiniciá todos los workers:
En PHP 8.5 también se recomienda fatal_error_backtraces = 0. PHP aclara que estas medidas reducen la exposición a ciertos caminos de ataque, pero no dejan la instalación segura, y que ocultar errores con display_errors o @ no ayuda.Ini
; CVE-2026-109619 session.upload_progress.enabled = 0 ; CVE-2026-109618 memory_limit = -1 post_max_size = 8M ; 32M si el sitio necesita subir archivos - En casos extremos, bloquear las peticiones multipart desde nginx o Apache, sabiendo que eso rompe cualquier subida de archivos y algunos formularios de checkout.
- Si quedaste expuesto, revisá si ya entraron. Huntress recomienda buscar procesos de php-fpm, php-cgi, httpd o apache2 que lancen sh, bash, curl, wget o powershell, que es la huella típica de un webshell.
- Si el servidor corre PHP 8.1 o anterior, el plan no es esperar una versión oficial que no va a llegar: es migrar a una rama con soporte, o como mínimo aislarlo detrás de un WAF hasta hacerlo.
En resumen
Fuentes
- PHP (aviso oficial) — Security advisory: Critical remote code execution vulnerabilities, update now. Descripción de ambas fallas, versiones corregidas, SAPIs afectados y mitigaciones oficiales.
- PHP en GitHub — Avisos de seguridad de php-src (GHSA-w8hw-w9fx-j79w y GHSA-6wmf-4rv5-p3rp).
- NCSC (Reino Unido) — Critical security issue affecting PHP. Alcance de las versiones afectadas y recomendaciones del gobierno británico.
- Sansec — Critical PHP RCE: CVE-2026-109618 and CVE-2026-109619. Cronología de la filtración, versiones afectadas y mitigaciones para nginx, Apache y PHP-FPM.
- Patchstack — Major security alert: PHP vulnerable to critical RCE, attacks ongoing. Puntaje CVSS oficial, reportes de explotación activa y medidas temporales.
- watchTowr — PHP Remote Code Execution FAQ: CVE-2026-109618. Preguntas frecuentes y estado de la explotación.
- Huntress — Rapid Response: php2shell, Leaked Critical PHP Vulnerabilities. Cómo se filtró y qué buscar para detectar un compromiso.