Node.jsЩо нового в Node.js 26.12
Реліз приніс нові функції для маскування WebSocket, утиліти dump для потоків, стабілізацію конфігураційного файлу та оновлення безпеки 26.12.1.
Реліз від 14 жовтня 2026 · оновлено 9 листопада 2026
Головне
- Додано функції websocketMask() та websocketUnmask() у модуль http
- Викидання помилки за відсутності підтримки WebAssembly або RX
- Конфігураційний файл позначено як стабільний
- Додано dump() та dumpSync() для stream/iter
- Безпековий реліз 26.12.1 із виправленнями в TLS, DNS, Brotli, Crypto та Permission Model
Коротко
Лінійка Node.js 26.12 включає випуск 26.12.0 та безпекове оновлення 26.12.1. До середовища додано нові вбудовані утиліти для обробки WebSocket-масок, розширено поведінку потоків за допомогою функцій dump() та dumpSync(), а також переведено конфігураційний файл у стабільний статус. Окремий реліз 26.12.1 зосереджений на усуненні низки вразливостей у підсистемах TLS, DNS, Brotli та моделі дозволів.
Нові можливості
Мережа та HTTP
- Маскування WebSocket: у модуль
httpдодано функціїwebsocketMask()таwebsocketUnmask(). - Підтримка VFS: у підсистему
vfsдоданоComposableProviderдля роботи з багатошаровими монтуваннями (layered mounts). - Прапорець моделі дозволів: до переліку доступних прапорців дозволів включено
--allow-fs-vfs.
Системні перевірки та середовище виконання
- Вимоги до WebAssembly та RX: тепер викидається виключення за відсутності підтримки WebAssembly або RX у середовищі.
- Стабільний конфігураційний файл: роботу з конфігураційним файлом позначено як стабільну (
mark config file as stable). Прапорці дозволів із конфігураційного файлу тепер транслюються на дочірні процеси вchild_process. - Статус
process.finalization: APIprocess.finalizationотримало статус кандидата в реліз (release candidate).
Робота з потоками (stream)
- Утиліти скидання потоку: додано функції
dump()таdumpSync()для протоколівstream/iter. - Параметри завершення
pipeToSync(): додано опціюfailOnIncompleteCloseдля методуpipeToSync().
Тестування (test_runner)
- Твердження для моків: у
t.assertдодано перевірки викликів моків (mock call assertions).
Виправлення та покращення
Безпека (оновлення 26.12.1)
- TLS та IP-адреси: відхилення неканонічних IP-адрес (CVE-2026-106069, CVE-2026-106072), виправлення регресії нормалізації IP (CVE-2026-105483) та відхилення ланцюжків сертифікатів, що містять заблоковані публічні ключі.
- DNS: валідація вхідних даних
resolveна наявність нульових байтів (CVE-2026-105482). - Brotli: експортовано константу
BROTLI_DECODER_ERROR_FORMAT_BLOCK_SWITCH(CVE-2026-111497). - HTTP: гарантовано роботу захисту даних агента без виконання I/O (CVE-2026-105481).
- Crypto: скидання кешу випадкових значень під час створення снепшотів (CVE-2026-106074), посилення перетворення та форматування X.509, оновлення кореневих сертифікатів до версії NSS 3.131.1.
- Модель дозволів (Permission Model): перевірка моделі дозволів у
realpathSync(CVE-2026-106073) та виправлення вузла дерева дозволів файлової системи для шаблонів з підстановочними знаками (CVE-2026-106071). - Zlib: усунено кешування некоректних локальних заголовків ZIP (CVE-2026-106070).
- Модулі: скасовано зміну
module: synchronously load most ES modules.
Потоки та файлова система
- У
fsзабезпечено блокуванняFileHandleпід час першого читання вpull()таpullSync(), а також серіалізовано асинхронні операції запису дляFileHandlewriter(). - Виправлено повідомлення про помилки асинхронного вводу в
fromSync(), а закриті записи уfromWritable()тепер відхиляються з помилкоюTypeError. - У
shareSync()встановлено захист від повторних читань джерела (re-entrant reads) та відхилення протитиску за стратегією drop-newest. - Виправлено обробку скидання буфера в
Utf8Stream.
SQLite
- Додано валідацію назви та параметрів для методу
aggregate(). - Стан захисного режиму
enableDefensive()тепер зберігається після повторного відкриття бази даних. - Замість аварійного завершення (abort) викидається помилка у разі спроби передачі рядків надмірного розміру.
Криптографія
- Знято блокування експорту ключів і метаданих, блокування під час налаштування верифікації, а також блокування ключів для операцій KEM та RSA-OAEP.
- Пропущено виділення мютекса для секретних ключів.
- Збереження сховища кореневих сертифікатів організовано індивідуально для кожного
Environment.
Продуктивність та оптимізації
- Зменшено виділення пам’яті для вихідних назв заголовків у
httpта пришвидшено виконанняgetHeadersдля відповідей уhttp2. - Усунено витік пам’яті у вкладених композитних сигналах
AbortSignal.any(). - У
querystringвиправлено декодування значень, розташованих після закодованих ключів. - Оновлено залежності: SQLite до 3.54.0, simdjson до 5.0.3, acorn до 8.19.0, c-ares до 1.34.9, undici до 8.12.2.
Огляд підготовлено автоматично за офіційними release notes за допомогою ШІ та перевірено на відповідність джерелу. Точні формулювання дивіться в оригіналі. Як ми працюємо