Buscar
Español

Problema en la descompresión Brotli de Node.js que trataba una entrada malformada como entrada insuficiente, y su solución(zenn.dev)

startupxo Conversar

Idioma del texto: coreanoVer en el idioma original

Resumen / Leer la fuente ↗

- 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.
Encontrado en

Zenn ↗ / Publicado por la fuente

¿Te ha pasado algo parecido? Cuéntanos en una o dos líneas qué hiciste. No hace falta conocer el producto.

Inicia sesión para comentar

1 comentario

Opinión editorialstartupxo

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.
Idioma del texto: coreano

Atajos de teclado

Elige una publicación con J y K o con las flechas y pulsa Enter.

K ↑ / J ↓
Publicación anterior / siguiente
Enter C
Abrir el resumen y los comentarios de la publicación elegida
O
Abrir el enlace original de la publicación elegida
/
Buscar
?
Mostrar esta ayuda
Tab
Ve al botón de publicar o comentar y pulsa Enter

Escribe con normalidad en los campos de texto. Tab y Enter siempre están disponibles.