
Документация по CVE-2017-11499: уязвимость удаленного отказа в обслуживании (DoS) методом хеш-флудинга в Node.js, вызванная постоянными семенами хеш-таблицы, с анализом вектора атаки и смягчением последствий путем отключения снимков V8.
Node.js был подвержен удаленным DoS-атакам с помощью хеш-флудинга, так как семя хеш-таблицы было постоянным для данной выпущенной версии Node.js. Это было следствием сборки с включенными по умолчанию снимками V8, что приводило к перезаписи исходного рандомизированного семени при запуске. Благодарим Янна Хорна из Google Project Zero за сообщение об этой уязвимости.
Вы можете прочитать об общей категории уязвимостей хеш-флудинга здесь.
Снимки были отключены по умолчанию в этих обновлениях. Код, который сильно зависит от vm.runInNewContext, скорее всего, столкнется с падением производительности до тех пор, пока не будет реализовано лучшее решение.
Это уязвимость высокой степени серьезности и затрагивает все активные линии релизов (4.x, 6.x, 8.x), а также линию 7.x.
Код приложения, который позволяет установить поле auth объекта опций, используемого с http.get(), равным числу, может привести к созданию/использованию неинициализированного буфера в качестве строки аутентификации. Например:
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));
Разбор поля auth был обновлен в релизе 4.x, так что при вызове http.get() будет выброшено TypeError, если поле auth является числом.
Это дефект низкой степени серьезности и применим только к линии релизов 4.x.