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
reusePorten 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
