Actualización Crítica de Node.js: Protege tu Aplicación

Node.js lanzó parches de seguridad críticos el 24 de marzo de 2026 para todas sus ramas activas (20.x, 22.x, 24.x y 25.x), incluyendo la rama LTS 24.14.1. Los parches corrigen dos vulnerabilidades catalogadas como High que pueden crashear servidores Node.js en producción: una falla en el manejo de errores TLS que bypasea los exception handlers, y otra en el procesamiento de headers HTTP malformados.

En 30 segundos

  • Node.js lanzó actualizaciones de seguridad simultáneas para las ramas 20, 22, 24 (LTS) y 25 el 24 de marzo de 2026.
  • CVE-2026-21637: una corrección incompleta a vulnerabilidad previa en manejo de errores TLS puede tirar abajo el proceso si los callbacks lanzan excepciones síncronas.
  • CVE-2026-21710: un fallo en HTTP request handling permite a un atacante enviar headers malformados para causar Denial of Service.
  • Todas las versiones que recibieron el fix anterior para CVE-2026-21637 están afectadas (20.x, 22.x, 24.x, 25.x).
  • Se recomienda actualizar inmediatamente a Node.js 24.14.1 (LTS actual) o las versiones seguras de cada rama.

¿Qué pasó? Node.js lanza parches de seguridad urgentes el 24 de marzo

Según el anuncio oficial de Node.js, las nuevas versiones corrigen vulnerabilidades en el manejo de errores TLS y en el procesamiento de requests HTTP. El lanzamiento fue simultáneo para las cuatro ramas activas, lo que habla de la urgencia de la situación.

Si tu sitio corre en Node.js (Express, Nest, Next.js backend, Fastify, cualquier servidor Node), necesitás actualizar. No es una de esas actualizaciones que podés dejar para después (spoiler: ya fue incómodo la última vez que hiciste una actualización major, pero esto es crítico).

Las ramas afectadas son justamente las que la mayoría de las empresas usa: Node.js 20 (LTS hasta abril 2026), 22, 24 (LTS actual, soporte hasta octubre 2027) y 25 (última versión estable). Si corrés una rama EOL (18, 16 o anterior), no recibirás parche — llega el momento de migrar.

CVE-2026-21637: fallo en TLS error handling que fue parcialmente arreglado

Acá viene lo complicado. Hace poco Node.js corrigió un problema en los callbacks de TLS (específicamente ALPN y PSK), pero quedó un agujero.

El tema es que la validación de errores TLS en otros callbacks no estaba incluida en el fix anterior. Si tenés un servidor HTTPS/TLS y un callback lanza una excepción síncronamente (porque recibió input inesperado, por ejemplo), esa excepción bypasea los TLS error handlers — se vuelve uncaught exception y el proceso de Node.js se crashea. Cubrimos ese tema en detalle en como explicamos en seguridad.

Imaginate que un cliente conecta con un certificado mal formado o un protocolo no esperado, tu callback se desmorona, y chau servidor. No es el escenario más común, pero en un backend de producción que recibe tráfico desde internet, termina siendo una vulnerabilidad de Denial of Service bastante clara.

El crédito de reportar esto va a mbarbs. mcollina lo arregló.

CVE-2026-21710: DoS via headers HTTP malformados

Este es más directo: un atacante le manda un request HTTP con un header específico a tu servidor Node.js, la aplicación intenta acceder a ese header esperando que sea un array, pero no lo es, se genera una excepción no capturada, y adiós servidor.

Subís el servidor, recibe un header raro, intenta procesar, lanza excepción, no hay try-catch en la ruta que corresponde, uncaught exception, proceso muere, los usuarios ven 503, alertas disparan, son las 3 de la mañana.

Cualquier servidor HTTP expuesto a internet está en riesgo. Y si tu app no sanitiza headers explícitamente, sos vulnerabilidad andante.

undici actualizado: el cliente HTTP interno

Node.js actualizo undici (su cliente HTTP interno) a versiones 6.24.1 y 7.24.4 en las ramas 22.x, 24.x y 25.x. Ya lo cubrimos antes en en tu stack de herramientas.

undici reemplazó a http.request hace años. Si usás fetch() nativo en Node.js (que fue agregado en Node 18), estás usando undici debajo de capas. El update trae sus propios fixes de seguridad, aunque la fuente oficial no detalla cuáles son específicamente.

¿Qué versiones están afectadas?

Rama¿Afectada?Versión seguraStatus
Node.js 25.x25.x (última disponible)Estable actual
Node.js 24.x (LTS)24.14.1+LTS hasta oct 2027
Node.js 22.x22.x (última disponible)LTS hasta abr 2027
Node.js 20.x20.x (última disponible)LTS hasta abr 2026
Node.js 18.x y anteriorNo reciben parchesMigrar a 20+ urgentementeEOL
actualización seguridad node.js diagrama explicativo

Si estás en 20.x, 22.x, 24.x o 25.x, tus servidores están vulnerables hasta que actualices.

Cómo actualizar Node.js de forma segura

Opción 1: Con nvm (recomendado si usás local)

  • nvm install 24 (o la versión que uses)
  • nvm use 24
  • node -v para confirmar

Opción 2: Con fnm

  • fnm install 24
  • fnm use 24

Opción 3: En producción con Docker

Actualizá la imagen base en tu Dockerfile:

  • FROM node:24.14.1-alpine (cambiar desde la versión anterior a 24.14.1+)
  • Rebuild la imagen: docker build -t tu-app:latest .
  • Desplegá (rolling update recomendado para zero downtime)

Opción 4: En servidores Linux (apt/yum)

  • sudo apt update && sudo apt install nodejs (Debian/Ubuntu)
  • sudo yum update nodejs (Red Hat/CentOS)

Después de actualizar

Antes de desplegarse a producción, probá en staging. Confirmá que tu aplicación levanta sin errores: node -v debe mostrar 24.14.1+ (o la segura de tu rama). Ejecutá tus tests. Si usás PM2, reiniciá los procesos: pm2 restart all.

¿A quiénes afecta más esto?

Si tu negocio depende de un servidor Node.js que recibe tráfico desde internet, estás en riesgo directo.

APIs públicas, backends de ecommerce, aplicaciones SaaS, cualquier endpoint expuesto sin firewall restrictivo: son vulnerables a CVE-2026-21710. Un atacante puede tirar abajo tu servicio con un solo request malformado. Complementá con como vimos en GitHub.

Los servidores HTTPS/TLS con callbacks personalizados (menos común, pero posible si estás haciendo cosas avanzadas con certificados) están en riesgo de CVE-2026-21637.

Si tu sitio es estático o está detrás de un WAF bien configurado, el riesgo baja. Pero si tenés un backend Node.js accesible, actualizá hoy mismo.

Errores comunes al actualizar

Actualizar el servidor sin reiniciar el proceso

Instalaste la nueva versión de Node.js pero el proceso viejo sigue corriendo. Necesitás matar el proceso y levantar uno nuevo, o usar PM2/systemd para que recargue automáticamente.

No probar en staging primero

Hay versiones menores de Node.js que pueden romper dependencias o comportamientos inesperados en tu app. Express viejo + Node.js 25 a veces da sorpresas. Siempre staging antes de prod.

Olvidar actualizar en todos los servidores

Si corres múltiples instancias o tenés un load balancer, necesitás actualizar en todas simultáneamente (o rotativamente sin downtime). Un servidor viejo seguirá siendo vulnerable. Más contexto en con la infraestructura adecuada.

Ignorar las versiones EOL

Si estás en Node.js 18 o anterior, no recibirás parches. Es momento de migrar, aunque sea incómodo. El costo técnico de quedarse en una rama EOL vulnerable es mayor que el de actualizar ahora.

Preguntas Frecuentes

¿Node.js 24.14.1 es compatible con mi aplicación en producción?

Depende. Las actualizaciones menores (24.14.0 a 24.14.1) casi nunca rompen nada. Las actualizaciones major (como 22 a 24) pueden requerir cambios en tu código. Si estás en 24.x, simplemente actualizar a la última 24.x es muy seguro. Probá en staging de todas formas.

¿Qué pasa si no actualizo Node.js ante estas vulnerabilidades?

Un atacante puede enviar un request HTTP malformado y derribar tu servidor. Si tu aplicación está en internet, va a pasar. Es cuestión de tiempo. Actualizá.

¿Cuál es la versión LTS recomendada actualmente?

Node.js 24.x (24.14.1 o posterior). Tiene soporte hasta octubre de 2027. Es estable, rápida, y todos los frameworks actuales la soportan. Si estás en 22.x, está bien también (LTS hasta abril de 2027).

¿Necesito actualizar si mi Node.js está detrás de un reverse proxy?

Sí. Aunque tengas un Nginx o Apache adelante, si tu Node.js está expuesto internamente de cualquier forma, podés ser atacado. Un reverse proxy no va a sanitizar automáticamente headers malformados antes de pasarlos a Node.js.

Conclusión

Estas dos vulnerabilidades de seguridad en Node.js son reales, están comprobadas, y pueden tirar abajo tu servidor. No son teóricas ni rememotas. Cualquier backend Node.js que reciba tráfico desde internet está en riesgo.

La actualización es simple: instalás la versión segura de tu rama (24.14.1 si estás en LTS, la última de tu rama si estás en otra), probás en staging, deployás. Tarda 30 minutos, ahorra un incidente de seguridad a las 3 de la mañana.

Si estás en Node.js 20 o anterior, es momento de pensar en la migración. Ya está llegando el fin de soporte. En donweb.com tenés opciones de hosting para Node.js si necesitás mover tu aplicación a un entorno que te maneje las actualizaciones automáticamente.

Fuentes

Similar Posts