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:zlibit 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*()anddns.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.