PHP2Shell, Node.js, Railway y certificados rotos: lo que se rompió el 21 de octubre
PHP parchó dos fallas críticas, Node.js arregló 10 vulnerabilidades, Railway pidió rotar secretos y los navegadores bloquearon ocho claves de eMudhra. Qué pasó, a quién afecta y qué hacer.
22 de octubre de 2026 · 10
En menos de una semana, PHP parchó dos fallas críticas que pueden permitir que atacantes tomen control de servidores web sin iniciar sesión, Node.js arregló 10 vulnerabilidades, incluido un bug de ejecución remota de código, Railway advirtió que los secretos de sus clientes pudieron haber quedado expuestos, y los navegadores bloquearon ocho claves de autoridades de certificación tan débiles que una de ellas era el número 4 (Abbasi; Node.js Project; Cooper; Abrams). Cada caso tiene un arreglo o un próximo paso definido, y la mayoría toma minutos verificarlo.
Si tienes un sitio web, una app o cualquier cosa con una API key (una llave de acceso a un servicio), el 21 de octubre te tocó por algún lado. El National Cyber Security Centre del Reino Unido les dijo a las organizaciones que usan PHP que, si no pueden parchar o mitigar rápido, deben:
"considerar desconectar el sistema hasta que pueda mitigarse por completo"
(National Cyber Security Centre)
Ese no es un lenguaje que las agencias usen a menudo.
A continuación verás qué pasó en cada incidente, a quién afecta y exactamente qué hacer. Al final están los enlaces a escáneres gratuitos para los problemas de PHP y Node.js.
Tabla de triaje: qué hacer primero
Tu triaje
¿Qué usas? Marca lo que aplica
Las tarjetas que te tocan se destacan. CVE es el identificador público de cada vulnerabilidad; CVSS es su severidad en una escala de 0 a 10.
PHP2Shell
CVE-2026-109618, -109619
- A quién afecta
- Cualquier PHP que atienda solicitudes web: WordPress, Drupal, Laravel, Magento
- Arreglo
- PHP 8.5.12, 8.4.27, 8.3.36, 8.2.35
Actualización de seguridad de Node.js de octubre
- A quién afecta
- Node 22, 24, 26 y toda versión en fin de vida
- Arreglo
- Node 26.12.1, 24.22.1, 22.23.4
Incidente de Railway
- A quién afecta
- Clientes de Railway
- Arreglo
- Rotar todos los secretos guardados en Railway
Claves de CA de eMudhra
- A quién afecta
- Apps con sus propios paquetes de certificados; sitios en raíces emSign
- Arreglo
- Actualizar almacenes de confianza; salir de emSign antes del ~27 oct
Revocación masiva de GoDaddy
- A quién afecta
- 404,607 certificados TLS de GoDaddy
- Arreglo
- Reemplazar los certificados afectados
Fuentes: Abbasi; Node.js Project; Cooper; Khandelwal, "Eight eMudhra"; Mozilla Bugzilla.
La semana, fecha por fecha · toca cada fecha
Sábado 17 de octubre. Un investigador descubre que ocho certificados intermedios de eMudhra tienen claves privadas tan débiles que se pueden calcular a partir de datos públicos (Abrams). Ese mismo día, Chrome bloquea los seis intermedios TLS y Firefox los bloquea vía OneCRL (Khandelwal, "Eight eMudhra").
Lunes 19 de octubre. Apple bloquea los certificados de eMudhra, y Android lo hace vía Google Play Services (Khandelwal, "Eight eMudhra"). Temprano ese día, GoDaddy ya había revocado 227,422 certificados (Mozilla Bugzilla).
Martes 20 de octubre. Circula una publicación que anuncia dos fallas críticas de PHP antes de la divulgación, y luego se elimina; PHP adelanta su aviso (Hammond). Microsoft bloquea a eMudhra, Firefox retira la raíz de NSS, Go publica 1.27.3 y 1.26.10, y Ubuntu y Debian actualizan ca-certificates (Khandelwal, "Eight eMudhra").
Miércoles 21 de octubre. A las 3:02 UTC se activa el WAF de Cloudflare contra PHP2Shell; cerca de las 9:30 a.m. ET, PHP publica sus versiones arregladas (Molteni et al.; Hammond). Node.js publica sus actualizaciones (Node.js Project), Railway divulga su incidente (Cooper) y las acciones de eMudhra caen 20% (Khandelwal, "Eight eMudhra").
Alrededor del 27 de octubre. Chrome planifica eliminar la raíz emSign. Si el certificado de tu sitio se encadena a esa raíz, muévete a otra CA antes de esa fecha (Khandelwal, "Eight eMudhra").
1. PHP2Shell: fallas críticas en el motor de PHP
Qué es
PHP2Shell es el nombre de dos vulnerabilidades en el núcleo de PHP, cada una con una puntuación de 9.2 de 10 (Abbasi). Una deja datos de la solicitud parcialmente inicializados tras un error de falta de memoria; la otra permite que un worker (el proceso que atiende las solicitudes) reutilice datos viejos de una solicitud anterior, un clásico use-after-free (uso de memoria ya liberada) (Abbasi).
Lo que las hace peligrosas es dónde están. El ataque es una solicitud web sin autenticación que PHP procesa antes de que corra el código de tu aplicación, así que las pantallas de login y la seguridad de los plugins no se interponen (Frichette et al.).
El mecanismo
Las defensas de tu app llegan tarde
Quedan todos expuestos cuando atienden solicitudes web:
Los investigadores también demostraron que las fallas pueden filtrar la memoria de los workers de PHP sin iniciar sesión, lo que puede exponer contraseñas, tokens y API keys (Abbasi). Ese detalle conecta PHP2Shell con la historia de Railway más abajo: los secretos son el premio.
Cómo se desarrolló
- 20 oct, mañanaCirculó una publicación que anunciaba dos fallas críticas de PHP antes de la divulgación, y luego fue eliminada.
- 20 oct, más tardePHP emitió un aviso adelantado, antes de lo que tenía programado.
- 21 oct, 3:02 UTCLa protección WAF (firewall de aplicaciones web) de Cloudflare se activó por defecto, incluso en los planes Free.
- 21 oct, ~9:30 a.m. ETPHP publicó 8.5.12, 8.4.27, 8.3.36 y 8.2.35.
Fuentes: Hammond; Molteni et al.
¿Se está explotando?
Los informes difieren, y la diferencia importa.
Cloudflare
Tráfico de ataqueObservó tráfico de ataque y vio a atacantes modificando payloads (la carga del ataque) para colarse por sus reglas (Molteni et al.).
CISA
Sin explotación observadaDijo que todavía no había observado explotación (gHale).
Huntress
Sin ataques exitososNo había visto ataques exitosos en los sistemas de sus socios hasta la tarde del 21 de octubre (Hammond).
Los atacantes lo están intentando activamente, y al 21 de octubre no se habían reportado públicamente compromisos confirmados.
Qué versiones están arregladas
Verificador
¿Tu versión de PHP tiene el arreglo?
Escribe la versión que corre tu servidor web, no solo la de línea de comandos; pueden ser distintas.
Fuentes de la tabla: Abbasi; Frichette et al.; Hammond. Ilustrativo: los escáneres revisan cada instalación por ti.
Tu distribución de Linux o tu proveedor de hosting podría incluir el arreglo bajo un número de versión que parece más viejo mediante un backport (un arreglo llevado a una versión anterior), así que revisa el aviso de tu proveedor en vez de fiarte solo del número (Abbasi). PHP ha ofrecido backports limitados del código fuente para 7.4, 8.0 y 8.1, pero esas ramas ya no reciben actualizaciones regulares (Abbasi).
El debate sobre la solución temporal
Algunas guías sugieren desactivar la configuración session.upload_progress como medida provisional, y el propio PHP lo recomienda para versiones en fin de vida (Hammond).
Los investigadores de Datadog dijeron que esa configuración no protege contra el ataque, y un desarrollador del núcleo de PHP dijo que parchar es la única mitigación (Frichette et al.; Khandelwal, "PHP2Shell").
Trata cualquier cambio de configuración, en el mejor de los casos, como un endurecimiento parcial. Cloudflare, cuyo WAF está bloqueando intentos, fue directo:
"Los clientes deben parchar sus repos de PHP aun con las protecciones del WAF"
(Molteni et al.)
Qué hacer
PHP2Shell, paso a paso
2. Node.js: 10 vulnerabilidades, incluida una de ejecución remota de código
El proyecto Node.js publicó actualizaciones de seguridad para sus tres líneas con soporte el 21 de octubre (Node.js Project). Cuatro de los 10 arreglos tienen severidad Alta:
4 de severidad Alta6 de severidad Media o Baja
| CVE | Problema | Líneas afectadas |
|---|---|---|
| CVE-2026-111497 | Escritura fuera de límites en el decodificador Brotli que permite ejecución remota de código | 26, 24, 22 |
| CVE-2026-105483 | Evasión de la verificación de hostname TLS con direcciones IP de dígitos de ancho completo | 26, 24 |
| CVE-2026-106069 | Evasión de la verificación de hostname TLS cuando un host resuelve de forma laxa a una IP | 26, 24, 22 |
| CVE-2026-105482 | dns.resolve trunca nombres que contienen un carácter NUL | 26, 24, 22 |
Desliza la tabla hacia el lado para verla completa.
Fuente: Node.js Project.
Los seis restantes tienen severidad Media o Baja e incluyen una falla en sockets keep-alive, la validación de certificados para hostnames IPv4 no canónicos y valores aleatorios repetidos en los snapshots de arranque (Node.js Project). La actualización también renueva dependencias incluidas, como c-ares, OpenSSL, SQLite y Undici, y bloquea los certificados comprometidos de eMudhra que se cubren más abajo (Node.js Project).
Versiones arregladas: 26.12.1, 24.22.1 y 22.23.4 (Node.js Project).
Verificador
¿Tu versión de Node.js está arreglada?
Escribe lo que muestra node -v en cada lugar donde corre Node.
Fuente: Node.js Project. Ilustrativo: el escáner de Node revisa cada instalación y proceso en ejecución.
El problema del fin de vida
Node 20 llegó a su fin de vida (end-of-life: ya no recibe arreglos de seguridad) el 30 de abril de 2026, y Node 18 el 30 de abril de 2025 (Aguilar). El proyecto es explícito: "Las versiones en fin de vida siempre se ven afectadas cuando ocurre una actualización de seguridad" (Node.js Project).
Muchas apps no se han movido. Node 18 y 20 juntos se descargaron más de 136 millones de veces en julio de 2026, aproximadamente una de cada seis descargas de Node con versión identificada (Aguilar). Una descarga no es un servidor en producción, pero la cifra muestra cuánto Node viejo todavía se está instalando (Aguilar).
Qué hacer
Node.js, paso a paso
3. Railway: rota todos tus secretos ya
El 21 de octubre, la plataforma de hosting Railway divulgó actividad anómala en los sistemas que guardan las variables de entorno de sus clientes (Cooper). Una parte no autorizada pudo haber accedido a variables de entorno cifradas y, en algunos casos, obtenido su contenido descifrado (Cooper). Las variables de entorno son donde la mayoría de las apps guardan sus API keys y contraseñas de bases de datos.
Railway dijo que cree que el ataque es parte de una serie dirigida a empresas de plataformas, con el objetivo de comprometer a proveedores de inferencia de IA, y les pidió a esos proveedores que revocaran claves de forma preventiva (Cooper). El análisis inicial sugiere que solo un subconjunto de usuarios está afectado, pero Railway recomienda que todos los usuarios actúen (Cooper).
La compañía también detuvo los builds:
"Todos los despliegues están en pausa mientras investigamos"
(Cooper)
La restauración
Los despliegues vuelven por etapas
La restauración se planificó por etapas, comenzando con los espacios de trabajo Enterprise y luego los planes Pro, Hobby y Free (Son).
Railway también invalidó las sesiones de login y está rotando las credenciales de sus storage buckets (Son).
Qué hacer
Rotación de secretos, paso a paso
4. Certificados: la capa de confianza de internet tuvo una semana mala
eMudhra: ocho claves que cualquiera podía calcular
Las autoridades de certificación son las organizaciones en las que confían los navegadores para garantizar que un sitio es quien dice ser. El 17 de octubre, un investigador descubrió que ocho certificados intermedios de la CA india eMudhra tenían claves privadas tan débiles que podían calcularse a partir de datos públicos (Abrams). Cada valor de clave era menor de 256, y uno era literalmente el número 4 (Abrams).
El valor de una de las claves privadas. Todas eran menores de 256 (Abrams).
6 para sitios web2 para firma de código
≈ 17 meses en que alguien pudo emitir certificados confiables
Fuentes: (Abrams; Khandelwal, "Eight eMudhra"; cálculo del autor).
Las claves se generaron en abril de 2025 con un script defectuoso, lo que significa que cualquiera que lo hubiera notado pudo haber emitido certificados confiables para cualquier sitio web durante unos 17 meses (Abrams; cálculo del autor). Seis de las ocho eran para sitios web; dos eran para firma de código (Khandelwal, "Eight eMudhra").
No hay evidencia pública de mal uso. Ningún certificado de sitio web encadenado a los seis intermedios TLS apareció en los logs de Certificate Transparency (los registros públicos de certificados emitidos) antes del bloqueo de Chrome, y eMudhra dijo que ninguno emitió certificados de usuario final (Khandelwal, "Eight eMudhra"). Como no se puede descartar por completo un mal uso en el pasado, todas las plataformas principales actuaron rápido:
La respuesta
Quién bloqueó qué, y cuándo
Fuente: Khandelwal, "Eight eMudhra."
eMudhra revocó los ocho certificados, dijo que su infraestructura no fue vulnerada y está emitiendo reemplazos (Khandelwal, "Eight eMudhra"). El mercado fue menos indulgente: sus acciones cayeron 20% el 21 de octubre, y el ministerio de TI de la India formó un equipo para investigar (Khandelwal, "Eight eMudhra").
GoDaddy: 404,607 certificados revocados contra reloj
Por separado, GoDaddy descubrió que cientos de miles de sus certificados no coincidían con los perfiles de su propia política de certificados publicada (Mozilla Bugzilla). Las reglas de la industria exigen la revocación dentro de cinco días en esa situación (Mozilla Bugzilla).
Contra reloj
Certificados que GoDaddy tenía que revocar
404,607
Fuente: (Mozilla Bugzilla). Pendientes y proporciones: cálculo del autor (404,607 − 227,422).
"Pudimos revocar 170,566 certificados antes de la fecha límite", informó GoDaddy; 227,422 se habían revocado temprano el 19 de octubre, lo que dejaba unos 177,000 todavía pendientes (Mozilla Bugzilla; cálculo del autor).
Qué hacer
Certificados, paso a paso
El patrón detrás de los titulares
Estos incidentes parecen no tener relación, pero comparten un objetivo: las cosas en las que el software confía de forma implícita.
PHP2Shell
Puede filtrar secretos desde la memoria de los workers.
Railway
Pudo haber expuesto los secretos guardados en variables de entorno.
Certificados
Sus fallas socavan la confianza que protege los secretos mientras viajan.
PHP2Shell puede filtrar secretos desde la memoria, Railway pudo haber expuesto secretos almacenados, y las fallas de certificados socavan la confianza que protege los secretos en tránsito (Abbasi; Cooper; Abrams).
Para los dueños de negocio, la lección es que parchar y rotar secretos ahora son operaciones de rutina, no emergencias (análisis del autor).
Para los inversionistas, la caída de 20% en un día de eMudhra es un recordatorio de que una falla de seguridad también es un evento financiero (Khandelwal, "Eight eMudhra").
Revisa tus apps con mis escáneres gratuitos
Era miércoles, y las vulnerabilidades críticas parecían estar por todas partes. Las agencias gubernamentales de ciberseguridad de EE. UU. y el Reino Unido les dijeron a las organizaciones que parcharan PHP de inmediato, o que desconectaran los sistemas si no podían (gHale; National Cyber Security Centre).
Mientras tanto, las versiones de Node en fin de vida todavía se descargaron más de 136 millones de veces solo en julio (Aguilar).
Para los vagos profesionales que hoy prefieren no abrir la terminal:
Ambos son gratuitos y de código abierto bajo la licencia MIT. Son de solo lectura: verifican versiones y configuración, nunca cambian nada y no contienen código de explotación ("php-vuln-responder"; "node-vuln-responder"). Cada uno genera un informe HTML y CSV codificado por colores.
Si sí abres la terminal, son dos comandos por escáner:
# PHP: córrelo en tu servidor, o apúntalo a tus sitios desde cualquier lugar
git clone https://github.com/luivc1/php-vuln-responder
bash php-vuln-responder/scripts/scan.sh --local
bash php-vuln-responder/scripts/scan.sh -f sites.txt -o php-report
# Node.js: revisa cada instalación de Node, cada proceso en ejecución y la configuración del proyecto
git clone https://github.com/luivc1/node-vuln-responder
bash node-vuln-responder/scripts/scan.sh --local --project ~/code -o node-report
Si usas un agente de IA, ambos repos se instalan como plugins de Claude Code, y otros agentes pueden leer el AGENTS.md incluido ("php-vuln-responder"; "node-vuln-responder"). Luego pregunta, en inglés o en español:
Los escáneres también te guían para parchar un comando aprobado a la vez, verifican que el arreglo haya surtido efecto y corren una revisión de solo lectura en busca de señales de compromiso ("php-vuln-responder"; "node-vuln-responder"). No cubren los secretos de Railway ni las cadenas de certificados; para eso usa las listas de verificación de arriba.
Escanea únicamente sistemas que te pertenezcan o que estés autorizado a evaluar.
En conclusión
Ninguno de los problemas de esta semana requiere destrezas exóticas para arreglarse. PHP y Node.js tienen parchos, los clientes de Railway tienen una lista clara de rotación y los arreglos de certificados llegan mayormente con las actualizaciones normales.
El riesgo es la demora. Los atacantes ya estaban tanteando PHP2Shell a las pocas horas de la divulgación, y un runtime (el entorno que ejecuta tu código) en fin de vida nunca va a recibir un arreglo (Molteni et al.; Node.js Project).
Corre un escáner contra un servidor que sea tuyo. Si reporta cualquier cosa que no sea PATCHED, programa el arreglo antes del fin de semana.
Pon a prueba lo aprendido
Tres preguntas. Selecciona una respuesta en cada una.
Suscríbete a Inversión Consciente
Tecnología, mercados y riesgo explicados con fuentes y sin jerga.
Conoce Inversión ConscienteEste artículo es contenido educativo, no asesoría profesional de seguridad. Escanea y parcha únicamente sistemas que te pertenezcan o que estés autorizado a administrar, y prueba los cambios antes de aplicarlos en producción.
Obras citadas
Abbasi, Saeed. "PHP2Shell: PHP Patches Two Critical RCE Vulnerabilities, Urges Immediate Updates." Qualys Threat Research Blog, Qualys, 21 oct. 2026, blog.qualys.com/vulnerabilities-threat-research/2026/10/20/php-announces-critical-security-release-for-two-vulnerabilities.
Abrams, Lawrence. "Mozilla, Google, Apple Block Compromised eMudhra CA Certificates." BleepingComputer, 20 oct. 2026, www.bleepingcomputer.com/news/security/mozilla-google-apple-block-compromised-emudhra-ca-certificates/.
Aguilar, Estefany. "Node.js 18 and 20 Are EOL, Yet They Were Downloaded More Than 136 Million Times in July 2026." NodeSource, 6 ago. 2026, nodesource.com/blog/nodejs-18-20-eol-136-million-downloads-july-2026.
Cooper, Jacob. "Security Disclosure: Wednesday October 21st." Railway Blog, Railway, 21 oct. 2026, blog.railway.com/p/security-disclosure-wednesday-october-21st.
Frichette, Nick, et al. "PHP2Shell - Critical Vulnerabilities in PHP (CVE-2026-109618, CVE-2026-109619): Detection, Analysis, and Remediation." Datadog Security Labs, Datadog, 21 oct. 2026, securitylabs.datadoghq.com/articles/php2shell-critical-vulnerabilities-in-php/.
gHale. "Patch PHP Vulnerabilities Now: Feds." ISSSource, 21 oct. 2026, www.isssource.com/patch-php-vulnerabilities-now-feds/.
Hammond, John. "Rapid Response: php2shell, Leaked Critical PHP Vulnerabilities (CVE-2026-109618 & CVE-2026-109619)." Huntress, 20 oct. 2026, actualizado el 21 oct. 2026, www.huntress.com/blog/php2shell-leaked-critical-php-vulnerabilities.
Khandelwal, Swati. "Eight eMudhra CA Keys Compromised, Triggering Emergency Fixes Across Browsers and Software." The Hacker News, 20 oct. 2026, actualizado el 21 oct. 2026, thehackernews.com/2026/10/eight-emudhra-ca-keys-compromised.html.
---. "PHP2Shell: What Actually Protects You Before the 14:00 UTC PHP RCE Patch, and What Doesn't." The Hacker News, 21 oct. 2026, thehackernews.com/2026/10/php2shell-what-actually-protects-you.html.
Molteni, Daniele, et al. "Cloudflare Deploys Protections against php2shell Vulnerability." The Cloudflare Blog, Cloudflare, 21 oct. 2026, blog.cloudflare.com/php-vulnerabilities-waf-protection.
Mozilla Bugzilla. "Bug 2083191 - GoDaddy: Delayed Certificate Revocation." Bugzilla@Mozilla, Mozilla, oct. 2026, bugzilla.mozilla.org/show_bug.cgi?id=2083191. Consultado el 22 oct. 2026.
National Cyber Security Centre. "Critical Security Issue Affecting PHP." NCSC, 21 oct. 2026, www.ncsc.gov.uk/news/critical-security-issue-affecting-php.
"node-vuln-responder." GitHub, Innovatask LLC, 21 oct. 2026, github.com/luivc1/node-vuln-responder.
Node.js Project. "Wednesday, October 21, 2026 Security Releases." Node.js, OpenJS Foundation, 21 oct. 2026, nodejs.org/en/blog/vulnerability/october-2026-security-releases.
"php-vuln-responder." GitHub, Innovatask LLC, 21 oct. 2026, github.com/luivc1/php-vuln-responder.
Son, Do. "Railway Security Incident Exposes Customer Environment Variables and Pauses All Deployments." Daily CyberSecurity, 22 oct. 2026, securityonline.info/railway-security-incident/.
Ponte a prueba
5 preguntas generadas a partir de este contenido.
Entra a tu cuenta para ponerte a prueba.