
Documentación de CVE-2017-11499: una vulnerabilidad de denegación de servicio remota por inundación de hash en Node.js causada por semillas constantes de HashTable, con análisis del vector de ataque y mitigación mediante la desactivación de las instantáneas de V8.
Node.js era susceptible a ataques remotos de denegación de servicio por inundación de hash porque la semilla de la tabla hash era constante en una versión publicada de Node.js. Esto fue el resultado de compilar con instantáneas de V8 habilitadas por defecto, lo que provocaba que la semilla inicialmente aleatoria se sobrescribiera al inicio. Gracias a Jann Horn de Google Project Zero por reportar esta vulnerabilidad.
Puede leer sobre la categoría general de vulnerabilidades de inundación de hash aquí.
Las instantáneas se han desactivado por defecto en estas actualizaciones. El código que depende en gran medida de vm.runInNewContext probablemente verá una regresión de rendimiento hasta que se implemente una mejor solución.
Esta es una vulnerabilidad de alta gravedad y se aplica a todas las líneas de lanzamiento activas (4.x, 6.x, 8.x) así como a la línea 7.x.
El código de aplicación que permite que el campo auth del objeto de opciones utilizado con http.get() se establezca en un número puede provocar que se cree/utilice un buffer no inicializado como cadena de autenticación. Por ejemplo:
const opts = require('url').parse('http://127.0.0.1:8180');
opts.auth = 1e3; // A number here triggers the bug
require('http').get(opts, res => res.pipe(process.stdout));
El análisis del campo auth se ha actualizado en la versión 4.x para que se lance un TypeError si el campo auth es un número cuando se llama a http.get().
Este es un defecto de baja gravedad y solo se aplica a la línea de lanzamiento 4.x.