- Node.js utiliza un decodificador integrado al descomprimir datos comprimidos con Brotli. Cuando este decodificador recibía una entrada mal formada, podía escribir fuera de su búfer interno. El problema se corrigió el 21 de octubre de 2026 en una versión de seguridad de Node.js como CVE-2026-111497. La descripción del impacto (fallo, exposición de memoria, posible ejecución remota de código) está citada del aviso de vulnerabilidad de Node.js.
- La causa fue que un error en un cambio de bloque (una instrucción para cambiar la tabla de compresión usada en la siguiente sección) se trató como un valor de retorno como 'se necesita más entrada'. Según el aviso citado, esto hizo que los datos malformados se tratasen como un estado temporal, y la entrada siguió acumulándose en el búfer interno.
- En la ruta de ejecución unsafe, donde había suficiente entrada, el mismo error no se transmitía a quien llamaba y se ignoraba. La solución cambió el tipo de retorno a una enumeración de códigos de error y añadió el nuevo código BROTLI_DECODER_ERROR_FORMAT_BLOCK_SWITCH, de modo que ambas rutas ahora detienen el procesamiento inmediatamente cuando ocurre un error.
- El núcleo de la solución es incorporar en Node.js el commit upstream de google/brotli. Este artículo es una explicación escrita tras leer el commit de corrección. La ruta de ataque y el alcance real del daño no se tratan en el texto original.
O: Los responsables de backend que, en nuestros servidores internos de Node.js, descomprimen con zlib archivos subidos desde fuera pueden encontrar útil este artículo para localizar dónde se usa brotliDecompressSync y comprobar si se ha aplicado la versión corregida anunciada.
X: El texto original basa la descripción del impacto en el aviso de Node.js y no indica las versiones afectadas ni la versión corregida, así que la versión real debe confirmarse directamente en el aviso y en las notas de la versión.