Node.js 26.3.0: permission.drop, httpValidation y más de 30 mejoras en QUIC

Node.js 26.3.0 llegó el 2 de junio de 2026 de la mano de Antoine du Hamel. Es una versión de la rama Current e incluye cuatro cambios semver-minor, más de 30 mejoras en el módulo experimental QUIC y un aviso importante sobre el futuro de los binarios para macOS Intel.

permission.drop(): descartar permisos en tiempo de ejecución

El cambio más llamativo es el nuevo método permission.drop(), que permite a una aplicación renunciar explícitamente a permisos que ya no necesita durante su ejecución. Hasta ahora el modelo de permisos de Node.js era de solo concesión: se otorgaban al arrancar y no había forma de retirarlos en caliente. Con este añadido es posible reducir la superficie de ataque de procesos de larga duración una vez superada la fase de inicialización.

import { permission } from 'node:process';

// Tras la fase de inicio, se renuncia al acceso a ficheros
permission.drop('fs.read');
permission.drop('fs.write');

El PR fue aportado por Rafael Gonzaga (#62672).

Buffer.poolSize sube a 64 KiB

El tamaño del pool interno de Buffer pasa de 8 KiB a 64 KiB por defecto. Esto reduce la fragmentación en aplicaciones que alojan muchos buffers pequeños de forma seguida, porque ahora caben más asignaciones en el mismo bloque de memoria preasignado. El cambio viene de Matteo Collina (#63597).

HTTP: nueva opción httpValidation

Se añade la opción httpValidation al crear servidores HTTP para controlar el nivel de validación de los valores de las cabeceras. Útil en entornos donde se procesan peticiones con cabeceras no estándar o en proxies que necesitan mayor flexibilidad sin parchear el módulo.

import http from 'node:http';

const server = http.createServer(
  { httpValidation: false },
  (req, res) => { /* ... */ }
);

PR: #61597 por RajeshKumar11.

Inspector: cobertura precisa expuesta a JavaScript

La API de inspector ahora expone el modo de cobertura precisa directamente al runtime de JavaScript, sin necesidad de instrumentar desde fuera del proceso. Esto facilita la integración con herramientas de cobertura que ya corren dentro de Node (#63079).

Crypto: WebCrypto más resistente y certificados actualizados

El módulo de criptografía recibe dos mejoras de seguridad. La primera es el hardening de WebCrypto frente a ataques de prototype pollution, de Filip Skokan (#63363). La segunda es la actualización de los certificados raíz a NSS 3.123.1 (#63527). Además se corrige la coerción de -0 a +0 en pbkdf2 y scrypt, aportado por Jordan Harband (#63531).

QUIC: más de 30 mejoras en el módulo experimental

QUIC es el módulo más activo de esta versión. Entre los cambios destacan:

  • Verificación de hostname en las conexiones QUIC.
  • Timeout de inactividad por stream.
  • Listas de bloqueo para endpoints.
  • Rate limiting de sesión.
  • Soporte preparatorio para ECN marking.
  • Mejoras en el coalescing de paquetes recibidos.
  • Soporte para reusePort en endpoints.

El módulo sigue marcado como experimental, pero el ritmo de cambios indica que se está acercando a una fase más estable.

Stream: correcciones de cuelgues y comportamiento incorrecto

El módulo stream acumula más de 13 commits. Los más relevantes: se serializan las lecturas concurrentes en consumidores compartidos, se rechazan correctamente las lecturas pendientes cuando el iterador se cancela, se corrige un cuelgue en Writable.toWeb() con drain síncrono, y se prohíbe escribir chunks de tipo string con codificación 'buffer', que era un uso incorrecto de la API.

Aviso para usuarios de macOS Intel

Apple está retirando progresivamente el soporte para arquitecturas Intel. Node.js avisa en este release que puede no ser viable mantener los binarios universales (Apple Silicon + Intel) durante toda la vida útil de Node.js 26. Por ahora se seguirán distribuyendo para ambas arquitecturas mientras sea práctico, pero la plataforma macOS x64 ha sido degradada a Tier 2 en la documentación oficial (#63055).

Cómo actualizar

Si usas nvm:

nvm install 26.3.0
nvm use 26.3.0

O directamente desde la web oficial: nodejs.org/dist/v26.3.0/.

Fuente: nodejs.org/en/blog/release/v26.3.0

Imagen: Pexels / RealToughCandy.com

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP