Fin de Vida Útil (EOL)

Cómo y por qué los lanzamientos de Node.js tienen un fin de vida útil

Existe un horario regular para lanzar, remendar, y pasar al fin de vida útil las versiones principales de Node.js. No es posible mantener cada versión principal para siempre, entonces una vez pasado un período predeterminado, el proyecto Node.js dejará de mantener una versión principal.

Ve el calendario de lanzamientos de Node.js.

Que sucede cuando un lanzamiento pasa su fin de vida útil

Cuando una versión pasa su fin de vida útil (EOL), deja de recibir actualizaciones como remiendas de seguridad. Como resultado, las aplicaciones que usan estas versiones pueden volver vulnerables a defectos de seguridad y otros errores que nunca serán arreglados.

  • No más correcciones de vulnerabilidades: Cuando se publiquen nuevas versiones de seguridad que revelen problemas y parches en líneas principales más recientes, no habrá nuevas versiones para líneas de lanzamiento EOL, incluso si la misma vulnerabilidad afecta a líneas de lanzamiento EOL. Los usuarios que aún se aferran a líneas de lanzamiento EOL y utilizan rutas de código afectadas serán inmediatamente vulnerables a ataques que exploten estas vulnerabilidades divulgadas.
  • Errores en la cadena de herramientas: Los lanzamientos EOL pueden dejar de vincular con versiones nuevas de dependencias externas, el cual podría impedir actualizaciones futuras.
  • Cambios en el ecosistema: Varios paquetes populares dejan de funcionar con versiones EOL de Node.js. Cuando una aplicación depende de paquetes anticuados, puede sufrir de más vulnerabilidades y fallos, volviéndose más difícil de reconciliar con el ecosistema actual.
  • Incumplimiento: A menudo, las auditorías prohíben sistemas de runtime no mantenidos.

Versiones EOL

Version (Codename)Last updatedVulnerabilitiesDetails
v23
2High2Medium
v21
7High5Medium
v19
1High3Medium2Low
v18 (Hydrogen)
15High19Medium4Low
v17
1High3Medium1Low
v16 (Gallium)
11High18Medium4Low
v15
1Critical6High1Medium1Low
v14 (Fermium)
2Critical16High16Medium5Low
v13
1Critical2High
v12 (Erbium)
2Critical13High6Medium3Low
v11
3High1Medium
v10 (Dubnium)
1Critical12High3Medium1Low
v9
1Critical4High1Medium1Low
v8 (Carbon)
1Critical11High2Medium1Low
v7
3High2Medium
v6 (Boron)
16High12Medium
v5
15High8Medium
v4 (Argon)
2Critical17High9Medium
v0
2Critical

Soporte Comercial

A pesar de las desventajas obvias de usar versiones EOL, en la práctica, las organizaciones enfrentan restricciones que impiden actualizaciones inmediatas, como bases de código heredadas, requisitos de cumplimiento o cadenas de dependencias complejas. A través del Programa de Sostenibilidad del Ecosistema de la Fundación OpenJS, Node.js cuenta con el apoyo de HeroDevs y NodeSource para proporcionar servicios comerciales para correcciones de seguridad.

HeroDevs ofrece un Soporte Interminable (NES) para versiones de Node.js que ya no tienen soporte oficial. Esto incluye parches de seguridad, ayuda con cumplimiento y soporte técnico para darte tiempo mientras planificas tu actualización.

Usar versiones EOL con soporte comercial debería verse como una solución temporal, el objetivo siempre debería ser actualizar a versiones con soporte activo.