¿Sigues usando Node.js 20? La actualización de seguridad del 11 de noviembre no te protegerá

Node.js 20 llegó al final de su ciclo de vida el 30 de abril de 2026 y la actualización de seguridad del 11 de noviembre ya no lo incluye. Descubre qué parches ha dejado de recibir, si te conviene migrar a la versión 24 o 26, qué puede romperse y qué hacer si no puedes realizar la migración esta...

Ashley Innocent

Ashley Innocent

5 November 2026

¿Sigues usando Node.js 20? La actualización de seguridad del 11 de noviembre no te protegerá

Apidog para empresas

Despliegue local

SSO & RBAC

Conforme con SOC 2

Explorar Apidog Enterprise

Node.js 20 no recibirá nada el 11 de noviembre de 2026. Los lanzamientos de seguridad cubrirán únicamente las ramas 26.x, 24.x y 22.x, ya que Node.js 20 llegó al final de su vida útil (End-of-Life) el 30 de abril de 2026. Su último parche fue la versión 20.20.2, compilada el 24 de marzo. Desde entonces, se han publicado 33 CVE sin ninguna compilación para 20.x. Migre a 24 o 26 esta misma semana.

Dichas CVE se distribuyeron en tres versiones de seguridad que dejaron fuera a la rama 20. La cuarta llegará en pocos días, y el preanuncio clasifica su problema más grave como HIGH en todas las ramas con soporte.

Qué ocurrirá el 11 de noviembre y por qué Node.js 20 queda fuera

El proyecto Node.js publicará nuevas compilaciones de 26.x, 24.x y 22.x el miércoles 11 de noviembre de 2026 o poco después. Por ahora no hay detalles públicos sobre las CVE, y se mantendrán en privado hasta que salgan las nuevas versiones. Nuestra guía con cuenta regresiva para el lanzamiento de noviembre detalla el inventario del entorno de ejecución y los comandos para el día del parche, por lo que los omitiremos en este artículo.

Node.js 20 no figura en la lista porque el proyecto ha dejado de mantenerlo. Su página de End-of-Life es tajante: cuando los nuevos lanzamientos de seguridad solucionan problemas, «incluso si la misma vulnerabilidad afecta a líneas de versiones que han llegado al final de su vida útil (EOL), no habrá ningún nuevo lanzamiento para ellas».

El aviso de seguridad añade otra advertencia fundamental: «Las versiones que han llegado al final de su vida útil siempre se ven afectadas cuando se produce un lanzamiento de seguridad».

Lo que Node.js 20 ya se ha perdido

Se han publicado tres versiones de seguridad desde que la rama 20 alcanzó el final de su ciclo de vida. Ninguna incluye una compilación para 20.x.

Aviso CVE Alta Media Baja Corregido en
18 de junio de 2026 12 2 6 4 26.3.1, 24.17.0, 22.23.0
29 de julio de 2026 11 3 5 3 26.5.1, 24.18.1, 22.23.2
21 de octubre de 2026 10 4 3 3 26.12.1, 24.22.1, 22.23.4
Total 33 9 14 10 Sin compilación para 20.x

El código que modifican estas correcciones es exactamente el que ejecuta un servidor de API de forma continua:

Lea esa lista con atención. El proyecto no evalúa las ramas descontinuadas, por lo que sus avisos de seguridad solo mencionan las versiones con soporte oficial. Algunos de estos errores residen en código que la versión 20 podría no contener: una de las CVE de octubre es una regresión acotada exclusivamente a 26.x y 24.x. Por lo tanto, el estado real de cada CVE en Node.js 20 es sin parchear y sin evaluar. Nadie le ha garantizado que esté a salvo, y nadie va a comprobarlo.

El encadenamiento de vulnerabilidades empeora aún más la situación. La corrección de DNS de octubre completa un parche de junio, y otra corrección de julio complementa una de junio. Cada parche posterior se construye sobre una base de la que usted carece.

Cronología de Node.js 20: última compilación el 24 de marzo de 2026, fin de vida útil el 30 de abril, lanzamientos de seguridad el 18 de junio, 29 de julio y 21 de octubre sin corrección para 20.x, y el lanzamiento del 11 de noviembre aún pendiente

«Pero si todavía funciona»

Funciona, y ese es precisamente el problema.

Un entorno de ejecución descontinuado no falla de golpe. node -v sigue mostrando la misma versión, las pruebas pasan y los paneles de monitorización se mantienen en verde. El riesgo aparece en lugares a los que no suele prestar atención:

Elija un destino: Node.js 24 o 26, pero no 22

Migre a la versión 24 esta semana si necesita el camino más rápido. Elija la 26 si puede asumir más cambios ahora y busca el ciclo de vida más largo. Descarte la versión 22: aunque recibirá la corrección de noviembre, su soporte concluye el 30 de abril de 2027 (en menos de seis meses), por lo que tendría que repetir todo este proceso en primavera.

Rama Estado Última versión al 5 de nov. Fin del soporte Ideal para
26.x «Lithium» LTS activa desde el 28 de oct. de 2026 26.13.0 30 de abr. de 2029 Servicios que pueda volver a probar por completo ahora
24.x «Krypton» LTS de mantenimiento desde el 20 de oct. de 2026 24.22.2 30 de abr. de 2028 La salida segura más rápida desde la versión 20
22.x «Jod» LTS de mantenimiento 22.23.4 30 de abr. de 2027 No merece la pena migrar a ella hoy

Las fechas proceden del calendario de lanzamientos de Node.js. Compruebe su plataforma antes de dar el paso. En Lambda, por ejemplo, el entorno de ejecución de Node.js 26 se encuentra en vista previa pública y no está cubierto por su SLA, por lo que la versión 24 es actualmente la opción más segura para producción en ese entorno.

Gráfico de barras de las ventanas de soporte de Node.js a partir de noviembre de 2026: 22.x finaliza el 30 de abril de 2027, 24.x finaliza el 30 de abril de 2028 y 26.x finaliza el 30 de abril de 2029

Pasos para la migración y qué cosas dejarán de funcionar

Toda la información de esta tabla procede de las notas de lanzamiento oficiales de 22.0.0, 24.0.0, 25.0.0 y 26.0.0, además de la guía de migración de v22 a v24. Es una selección resumida y orientada a servicios de API, no el registro completo de cambios.

Introducido en Cambio A quién afecta
22 import ... assert { type: 'json' } removed; use with Código ESM que importe JSON
22 crypto.createCipher() and createDecipher() removed Código de cifrado heredado
23 and 24 No prebuilt 32-bit Windows or 32-bit armv7 Linux binaries; macOS 13.5 minimum Servidores antiguos y dispositivos edge
24 OpenSSL 3.5 at security level 2: RSA, DSA, and DH keys under 2048 bits, ECC keys under 224 bits, and RC4 are prohibited mTLS y servidores upstream antiguos
24 tls.createSecurePair removed; url.parse() runtime-deprecated Código de red heredado
24 Stricter fetch() compliance, AbortSignal validation, stream and pipe errors now throw Clientes HTTP y proxies
24 V8 13.6; addons may need C++20 Módulos nativos
25 (if targeting 26) SlowBuffer and fs.F_OK, R_OK, W_OK, X_OK removed; Corepack no longer ships Utilidades antiguas, Yarn o pnpm mediante Corepack
25 (if targeting 26) IP address as TLS servername moved to End-of-Life Clientes que conecten mediante IP
26 _stream_* modules and writeHeader() removed; module.register() runtime-deprecated; Undici 8 Código de streams antiguo, loaders personalizados

La fila de OpenSSL es la que puede dar problemas de forma silenciosa: su código no cambia en absoluto, pero el handshake con un sistema externo antiguo falla en tiempo de ejecución.

En una rama, actualice .nvmrc, engines, su Dockerfile y su CI a la versión de destino (en un entorno limpio, consulte la guía de instalación de Node.js). Luego reinstale para recompilar los módulos nativos, busque APIs eliminadas, ejecute los codemods oficiales e inicie el servicio con el rastreo de obsolescencias activado:

nvm install 24 && nvm use 24
rm -rf node_modules && npm ci

grep -rnE "assert \{ *type|createCipher\(|createDecipher\(|url\.parse\(|fs\.[FRWX]_OK|SlowBuffer|createSecurePair|_stream_[a-z]+|module\.register\(" \
  --include="*.js" --include="*.mjs" --include="*.ts" --exclude-dir=node_modules .

npx codemod run @nodejs/import-assertions-to-attributes
npx codemod run @nodejs/crypto-createcipheriv-migration
npx codemod run @nodejs/tls-create-secure-pair-to-tls-socket
npx codemod run @nodejs/fs-access-mode-constants

NODE_OPTIONS="--trace-deprecation" npm start

Revise manualmente el resultado de los codemods. El de createCipher es explícito: el código generado no puede descifrar datos cifrados con la API antigua, por lo que deberá planificar una migración de datos si los tiene.

El sitio web de Node.js aún no cuenta con una guía de migración de 24 a 26, por lo que le recomendamos consultar las notas de las versiones 25.0.0 y 26.0.0 para ese salto.

Compruebe que la API se comporta igual en la nueva versión

Las pruebas unitarias no muestran el impacto que una nueva pila TLS y un nuevo cliente HTTP tienen sobre el tráfico real. Ante un salto de dos o tres versiones mayores, conviene hacer una comparación del antes y el después con el servicio en ejecución, y esa es una tarea ideal para su agente de programación.

Apidog CLI permite que Claude Code, Codex o Cursor ejecuten sus suites de pruebas de Apidog directamente desde la terminal. Solo tiene que configurarlo una vez:

npm install -g apidog-cli@latest
apidog login --with-token <YOUR_TOKEN>
npx -y skills add https://apidog.com   # pick your agent when prompted

Luego, indíquele un único prompt a su agente:

My service runs on Node.js 20 in staging. Run Apidog test suite <suiteId> in project
<projectId> against environment <envId> and save reports to reports/node20. When I
redeploy on Node.js 24, run the same suite into reports/node24. List every request
whose status, body, or TLS behavior changed. Then read the service logs for deprecation
warnings and check each failure against the 22, 24, and 25 release notes: removed APIs,
changed defaults, stricter fetch and AbortSignal handling, OpenSSL key size rejections.

El agente ejecutará la misma suite en ambos extremos de la migración:

apidog run --test-suite <suiteId> --project <projectId> -e <envId> \
  -r cli,junit --out-dir reports/node20

# redeploy the service on the target line, restart it

apidog run --test-suite <suiteId> --project <projectId> -e <envId> \
  -r cli,junit --out-dir reports/node24

Dos factores garantizan que la comparación sea fiable:

Una vez superada la migración, mantenga la suite en su canal de CI/CD. La guía de CI/CD con Apidog CLI describe el flujo de trabajo, y el tutorial de Claude Code explica la configuración del agente.

Qué hacer si no puede migrar esta semana

Adquiera versiones parcheadas. La página de End-of-Life de Node.js menciona tres partners a través del programa OpenJS Ecosystem Sustainability Program: HeroDevs ofrece Never-Ending Support con parches de seguridad; TuxCare, mediante Endless Lifecycle Support, adapta parches para versiones en fin de vida; y NodeSource ofrece evaluaciones de actualización y soporte. El proyecto califica esto como una solución temporal, y ciertamente lo es.

Reduzca la superficie de exposición del proceso. Estas medidas disminuyen la exposición a los tipos de fallos descritos anteriormente, aunque no solucionan nada de raíz:

Documente formalmente el riesgo. Asigne un responsable, una fecha límite para la migración y los controles de mitigación implementados, de modo que lo «temporal» tenga un fin definido.

button

Preguntas frecuentes (FAQ)

¿Node.js 20 sigue teniendo soporte? No. Llegó al final de su ciclo de vida (End-of-Life) el 30 de abril de 2026. La última versión es la 20.20.2 del 24 de marzo de 2026, y el proyecto no publicará ninguna otra.

¿Es Node.js 20 vulnerable a los fallos del 11 de noviembre? Los detalles de las CVE aún no son públicos, por lo que nadie puede asegurar cuáles le afectan. Sin embargo, el aviso oficial señala que las versiones descontinuadas siempre se ven afectadas cuando se produce un lanzamiento de seguridad, y el proyecto no las evalúa individualmente.

¿Debería actualizar a Node.js 22 en su lugar? No. Aunque es el salto más pequeño, su ciclo de vida concluye el 30 de abril de 2027. Migrar a 24 le proporciona un año adicional de soporte, y pasar a 26 le otorga dos años más.

¿Node.js 24 o 26? Elija la 24 si necesita salir del paso esta misma semana o si su infraestructura todavía no es totalmente compatible con la versión 26. Elija la 26 si puede probarlo todo de nuevo en este momento, ya que tendrá soporte hasta el 30 de abril de 2029.

Estoy utilizando Node.js 25. ¿Aplica esto a mi caso? Sí. Node.js 25 llegó al final de su vida útil el 1 de junio de 2026, con la versión 25.9.0 como su última compilación. Tampoco recibirá correcciones en noviembre, y la versión 26 está a solo una versión mayor de distancia.

Practica el diseño de API en Apidog

Descubre una forma más fácil de construir y usar APIs