El 21 de octubre de 2026 coincidieron dos releases de seguridad que afectan a casi cualquier web moderna: una de PHP, con dos fallos críticos de ejecución remota de código (RCE), y otra de Node.js, con diez vulnerabilidades corregidas. Si tu tienda, tu aplicación o tu web corren sobre PHP, Laravel, PrestaShop o un backend en Node, esto te afecta.
Resumen rápido: actualiza PHP y Node.js a las versiones corregidas, reinicia los procesos y revisa tus dependencias. Aquí tienes el detalle y la lista de pasos.
PHP: “PHP2Shell” (CVE-2026-109618 y CVE-2026-109619)
El equipo de PHP publicó el 21 de octubre las versiones 8.5.12, 8.4.27, 8.3.36 y 8.2.35 para corregir dos vulnerabilidades críticas que pueden permitir ejecución remota de código sin autenticación:
- CVE-2026-109618: el manejo de errores de falta de memoria puede interrumpir PHP mientras los datos internos de una petición están a medio inicializar, y la limpieza posterior los trata como válidos.
- CVE-2026-109619: estado interno de una petición que sobrevive después de liberar su memoria, y que otra petición en el mismo worker puede llegar a usar.
Según el propio equipo de PHP, el riesgo es mayor con mod_php, donde existe un exploit funcional que se activa con una petición no autenticada antes de que se ejecute el código de tu aplicación. Afecta a PHP-FPM, Apache con mod_php, php-cgi, FrankenPHP y LiteSpeed, es decir, a la forma en que corren la mayoría de webs en producción.
Distintas fuentes de seguridad informan además de intentos de explotación activos, y de que ambos fallos se han incluido en el catálogo de vulnerabilidades explotadas (KEV) de CISA. Además, PHP avisó después de un tercer problema (CVE-2026-115560), que a fecha de esta publicación seguía sin parche definitivo y que, según PHP, solo afecta a aplicaciones con una configuración poco habitual.
Qué hacer con PHP
- Actualiza a 8.5.12, 8.4.27, 8.3.36 o 8.2.35 (o al paquete corregido de tu distribución Linux o proveedor).
- Reinicia PHP-FPM / Apache para que los workers carguen la versión nueva.
- Si usas PHP 8.1 o anterior, el proyecto PHP ya no los mantiene. Pide a tu proveedor el backport o, mejor, planifica la migración a una versión soportada. El equipo de PHP ha publicado además backports mínimos del código fuente para 7.4, 8.0 y 8.1, solo para quien compila desde fuente.
- Si no puedes actualizar hoy, aplica las mitigaciones, sabiendo que no son una solución completa:
- Para CVE-2026-109619:
session.upload_progress.enabled=0enphp.inio en la configuración del pool (no conini_set()), y reinicio de todos los workers. - Para CVE-2026-109618:
memory_limit=-1fijado donde la aplicación no pueda cambiarlo (php_admin_value),post_max_sizebajo (el aviso sugiere 8M sin subidas de archivos) y límites de tamaño de petición en el servidor web o proxy.
- Para CVE-2026-109619:
Laravel: qué te afecta y qué no
Laravel corre sobre PHP, así que la actualización de PHP es la prioridad número uno para cualquier aplicación Laravel en producción.
- Laravel Cloud: según Laravel, ya ha parcheado las aplicaciones en ejecución.
- Laravel Forge: las actualizaciones automáticas de Forge no actualizan PHP, así que hay que hacerlo manualmente en cada servidor.
- Tu propio servidor o VPS: actualiza PHP con el gestor de paquetes y reinicia.
Aparte de PHP, aprovecha para revisar los avisos de seguridad del ecosistema: en octubre se han publicado varias vulnerabilidades en paquetes de Laravel y de terceros, con identificadores y versiones corregidas que conviene confirmar siempre en los avisos oficiales antes de actuar. Ejecuta:
composer audit
composer update laravel/framework --with-all-dependencies
y revisa que composer audit quede sin avisos pendientes.
Node.js: diez CVE corregidos en la release del 21 de octubre
Node.js publicó versiones de seguridad para las líneas 26.x, 24.x y 22.x: 26.12.1, 24.22.1 y 22.23.4. Las más relevantes:
- CVE-2026-111497 (alta): fallo en el decodificador Brotli. Un escritura fuera de límites en el decodificador integrado puede dar lugar a caída del proceso, filtración de memoria o ejecución remota de código si tu aplicación descomprime con
node:zlibdatos Brotli controlados por un atacante. - CVE-2026-105483 y CVE-2026-106069 (altas): bypass de la verificación de hostname TLS, con certificados aceptados para direcciones IP para las que no se emitieron.
- CVE-2026-105482 (alta):
dns.resolve*()trunca nombres con un carácter NUL, lo que puede saltarse listas de dominios permitidos (por ejemplo, defensas contra SSRF). - La release también actualiza dependencias como OpenSSL, c-ares, Undici y SQLite.
Node.js recuerda que las versiones fuera de soporte siempre quedan afectadas: Node 20 ya no recibe parches, así que si lo usas, debes migrar.
Qué hacer con Node
- Actualiza a 26.12.1, 24.22.1 o 22.23.4 según tu línea.
- Reconstruye las imágenes Docker basadas en
node:*anteriores al 21 de octubre y vuelve a desplegar. Lo mismo para binarios generados como aplicaciones ejecutables únicas. - Reinicia los procesos: un servidor que sigue corriendo con el binario antiguo sigue siendo vulnerable.
- Revisa cualquier código que decodifique Brotli de fuentes no confiables.
- Migra desde Node 20 o anteriores a una línea con soporte.
¿Y PrestaShop, Astro y el resto?
- PrestaShop funciona sobre PHP, así que te afecta de lleno. Comprueba con tu hosting qué versión de PHP corre tu tienda. Si es una 1.7 sobre PHP 7.x u 8.1, no solo tienes este problema: estás en una versión sin soporte oficial, y es buen momento para planificar la migración a PrestaShop 9.
- Astro y webs estáticas que se sirven como HTML estático no ejecutan PHP en producción y por tanto no son vulnerables a PHP2Shell. Pero su proceso de build y desarrollo usa Node.js: actualiza Node en tu entorno local, en CI y en tu plataforma de despliegue.
- Aplicaciones con React, Next.js o Node en servidor quedan afectadas por la release de Node en el runtime donde se ejecutan.
Checklist de actualización (copia y pega)
- Averigua qué versión de PHP y Node corre cada uno de tus proyectos y entornos (producción, staging, CI).
- Actualiza PHP a 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35 o al paquete corregido de tu proveedor.
- Actualiza Node.js a 26.12.1 / 24.22.1 / 22.23.4.
- Reinicia PHP-FPM, Apache y los procesos Node. Reconstruye imágenes Docker.
- Ejecuta
composer auditynpm audity actualiza las dependencias con avisos. - Revisa logs de acceso desde el 17 de octubre en busca de peticiones anómalas (cuerpos muy grandes, subidas inusuales, errores de memoria), porque se han observado intentos de explotación antes de la divulgación pública.
- Comprueba que tienes copias de seguridad recientes y restaurables.
- Si no puedes actualizar de inmediato, aplica las mitigaciones y limita la exposición con un WAF o límites de tamaño en el proxy.
Lecciones para el futuro
Estas semanas confirman algo que repito a mis clientes: la seguridad no es un proyecto, es mantenimiento continuo. Un servidor sin actualizar es una puerta abierta, sobre todo cuando el exploit se publica a las pocas horas del parche. Tres hábitos marcan la diferencia:
- Inventario claro de qué versiones corren en cada entorno.
- Actualizaciones periódicas de PHP, Node y dependencias, no solo cuando hay una alerta.
- Monitorización y copias de seguridad probadas.
¿No sabes qué versión de PHP o Node corre tu proyecto, o no tienes tiempo de actualizarlo? Contacta conmigo y revisamos tu tienda o aplicación: auditoría rápida, actualización y plan de mantenimiento para que no te pille la próxima alerta.
Recursos relacionados
Artículos relacionados:
Fuentes: