Saltar al contenido

Node.js 22.23.3 LTS corrige un error use-after-free en HTTP/2

Node.js 22.23.3 LTS, publicado el 23 de septiembre, corrige un error use-after-free en HTTP/2, añade soporte de SharedArrayBuffer a Node-API y pasa a OpenSSL 3.5.8.

Por Tech AI Wire Team

3 min de lectura

XLinkedIn
The Notable Changes list from the Node.js 22.23.3 release notes, including the OpenSSL 3.5.8 update and the two Node-API changes.
Foto: Node.js

El proyecto Node.js publicó Node.js 22.23.3 el 23 de septiembre de 2026, un parche para su línea de soporte a largo plazo. El cambio más importante corrige un error use-after-free en HTTP/2, un fallo de memoria en el código que gestiona las conexiones HTTP/2. Quien sirva HTTP/2 desde Node.js 22 debería planificar la actualización.

Node.js es el entorno de ejecución que permite a JavaScript funcionar en servidores y no solo en el navegador. La versión 22 es una versión de soporte a largo plazo (LTS). Eso significa que recibe correcciones durante años y que muchas empresas la usan en producción. Su nombre en clave es "Jod".

Qué cambia la corrección de HTTP/2

HTTP/2 es la versión más reciente del principal protocolo de la web. Permite que una sola conexión lleve muchas solicitudes a la vez, cada una en su propio "flujo".

Un error use-after-free ocurre cuando un programa sigue usando una parte de la memoria después de haberla devuelto. El programa lee o escribe entonces datos que pueden pertenecer a otra cosa. Los errores de este tipo pueden hacer que un programa se bloquee, y por eso se corrigen rápido.

Según LinuxCompatible, el problema era una condición de carrera en nghttp2_session_mem_recv2(). Esa función forma parte de nghttp2, la biblioteca que Node.js usa para leer el tráfico HTTP/2. Si un flujo se cerraba mientras aún se procesaban datos entrantes, el código podía tocar memoria ya liberada. La corrección espera a que termine el paso de recepción antes de procesar el mensaje de cierre del flujo, llamado RST_STREAM.

Ninguna de las dos fuentes da un número CVE ni una calificación de gravedad para el error. Las notas de la versión oficiales lo incluyen como corrección de errores. No aparece en las publicaciones de versiones de seguridad del proyecto, cuya entrada más reciente es de julio de 2026.

Nuevas funciones de Node-API para SharedArrayBuffer

Node-API es la interfaz estable que usan los complementos nativos. Los complementos nativos son módulos escritos en C o C++ que Node.js carga directamente, como controladores de bases de datos o bibliotecas de imágenes.

Esta versión permite que esos complementos trabajen con SharedArrayBuffer, un bloque de memoria que varios hilos de JavaScript pueden leer y escribir al mismo tiempo. Las notas de la versión añaden napi_create_external_sharedarraybuffer y amplían napi_create_typedarray para que acepte un SharedArrayBuffer.

Otras correcciones y actualizaciones de dependencias

Se enumeran dos correcciones menores. Una recupera la posibilidad de parchear el módulo del sistema de archivos fs cuando el código se carga a través del cargador de módulos ES. La otra corrige cómo se escapan las variables de entorno en Windows.

La versión también actualiza las bibliotecas incluidas:

ComponenteNueva versión
OpenSSL3.5.8
Certificados raízNSS 3.125
npm10.9.9
corepack0.36.0
Undici6.28.1
ICU78.3
c-ares1.34.8
Datos de zonas horarias2026c

OpenSSL se encarga del cifrado de HTTPS. Undici es el cliente HTTP detrás del fetch integrado de Node. Los certificados raíz deciden en qué sitios HTTPS confía Node.js por defecto.

Qué significa para los desarrolladores

Comprueba si tus servicios de Node.js 22 hablan HTTP/2 directamente. Eso incluye servidores construidos sobre el módulo http2, servicios gRPC y aplicaciones que terminan TLS por sí mismas sin un proxy delante. Son los servicios más expuestos al error de cierre de flujos, así que pásalos primero a 22.23.3.

Actualiza tus imágenes base, no solo tus portátiles. Muchos equipos fijan una versión de Node en un Dockerfile, una configuración de CI o un archivo .nvmrc. Busca 22. en esos archivos y sube cada una, y después vuelve a compilar.

Si mantienes un complemento nativo, las nuevas funciones de Node-API te permiten compartir memoria con hilos de trabajo sin copiarla. Añade una comprobación de versión, porque estas funciones solo existen en versiones recientes y las compilaciones antiguas de Node 22 no las tienen.

Si tu conjunto de pruebas simula el módulo fs bajo módulos ES y se rompió con una versión 22.x anterior, vuelve a ejecutarlo en 22.23.3. La recuperación del parcheo puede permitirte eliminar una solución provisional.

Por último, estate atento a un CVE. Las notas de la versión no mencionan ninguno, y el proyecto podría publicar un aviso de seguridad más adelante. Hasta entonces, trata esto como un parche que conviene aplicar ya, en lugar de esperar a la próxima actualización programada.

Fuentes

  1. Node.js 22.23.3 (LTS) - Node.js
  2. Node.js 22.23.3 LTS Released with HTTP/2 Use-After-Free Fix - LinuxCompatible

Artículos relacionados