← Все новости

Node.js закрыл 10 уязвимостей, включая RCE в декодере BrotliNode.js fixes 10 vulnerabilities, including an RCE in the Brotli decoder

Октябрьский выпуск безопасности Node.js — версии 26.12.1, 24.22.1 и 22.23.4 — исправляет десять CVE, из них четыре высокой опасности. Главная — запись за границей буфера во встроенном декодере Brotli. Заодно обновлено хранилище сертификатов из-за компрометации eMudhra.The October Node.js security release — 26.12.1, 24.22.1 and 22.23.4 — fixes ten CVEs, four of them rated High. The headline issue is an out-of-bounds write in the bundled Brotli decoder. The CA store was also updated over the eMudhra compromise.

21 октября проект Node.js выпустил плановые обновления безопасности для всех поддерживаемых веток: v26.12.1, v24.22.1 и v22.23.4. Исправлено 10 уязвимостей: четыре высокой, три средней и три низкой опасности.

Высокая опасность

  • CVE-2026-111497 — запись за границей 8-байтового буфера во встроенном декодере Brotli: некорректные block switch трактуются как «нужно больше данных». Через node:zlib возможны падение, утечка памяти или выполнение кода. Google как CNA оценивает её в CVSS 4.0 9.2.
  • CVE-2026-105482 — dns.resolve*() и dns.reverse() молча обрезают имя хоста на NUL-байте (неполное исправление прошлой CVE).
  • CVE-2026-105483 — tls.checkServerIdentity() не распознаёт IP, записанные полноширинными цифрами, и сверяет их с DNS-именами сертификата.
  • CVE-2026-106069 — IPv4 с ведущим нулём парсер URL читает как восьмеричный, а системный резолвер — как десятичный, поэтому сертификат проверяется не для того адреса.

Остальное

Среди менее опасных — повтор значений crypto.randomUUID() и randomInt() в процессах, стартующих из snapshot, обход Permission Model через wildcard-правила и fs.realpathSync(), а также ответ от «чужого» keep-alive-сокета. Обновлены c-ares, OpenSSL, SQLite, Undici и набор корневых сертификатов (компрометация промежуточных CA eMudhra).

Что делать

Обновиться до свежего патча своей ветки. Node.js 20 и старше уже не поддерживаются и исправлений не получат.

On October 21 the Node.js project shipped security updates for every supported line: v26.12.1, v24.22.1 and v22.23.4. Ten vulnerabilities were fixed: four High, three Medium and three Low.

High severity

  • CVE-2026-111497 — an out-of-bounds write past an 8-byte buffer in the bundled Brotli decoder: invalid block switches are treated as “need more input”. Through node:zlib it can lead to a crash, memory disclosure or code execution. Google, as the CNA, rates it CVSS 4.0 9.2.
  • CVE-2026-105482 — dns.resolve*() and dns.reverse() silently truncate hostnames at a NUL byte (an incomplete fix of an earlier CVE).
  • CVE-2026-105483 — tls.checkServerIdentity() fails to recognize IPs written with fullwidth digits and matches them against the certificate’s DNS names.
  • CVE-2026-106069 — leading-zero IPv4 literals are read as octal by the URL parser but as decimal by the OS resolver, so the certificate is validated for a different address.

Everything else

Lower-severity fixes include repeated crypto.randomUUID() and randomInt() values in processes started from a snapshot, Permission Model bypasses via wildcard rules and fs.realpathSync(), and an unsolicited response from a stale keep-alive socket. c-ares, OpenSSL, SQLite, Undici and the CA bundle (eMudhra intermediate CA compromise) were updated.

What to do

Upgrade to the latest patch of your line. Node.js 20 and older are end-of-life and receive no fixes.

Источники