Node.js 13 января 2026 года выпустил обновления безопасности, устраняющие несколько уязвимостей высокой степени серьезности
TL;DR — Проект Node.js опубликовал скоординированные обновления безопасности 13 января 2026 года для активных версий (20.x, 22.x, 24.x, 25.x). Исправления включают три уязвимости высокой степени серьезности (в частности, гонку при распределении буфера, которая может раскрыть неинициализированную память, и специально подготовленный обход модели разрешений символических ссылок), а также несколько средних/низких проблем, затрагивающих HTTP/2, обработку обратных вызовов TLS, проверки разрешений Unix Domain Socket и многое другое. Обновление до исправленных сборок и проверка путей изоляции/обработки ошибок должны рассматриваться как срочная операционная задача. (nodejs.org)
Что было исправлено (коротко)
- Скоординированное обновление безопасности для версий Node.js 20.x, 22.x, 24.x и 25.x (несколько уязвимостей; 3 высокие, 4 средние, 1 низкая). (nodejs.org)
- Основные уязвимости высокой степени серьезности:
- CVE-2025-55131 — гонка при распределении буфера: при определенных условиях таймаута/конкуренции
Buffer.alloc()/ TypedArray может быть доступен до нулевой инициализации, что создает риск утечки секретов в процессе. (nodejs.org) - CVE-2025-55130 — специально подготовленные относительные цепочки символических ссылок могут обойти ограничения модели разрешений
--allow-fs-*и выйти за пределы файловой системы. (nodejs.org) - CVE-2025-59465 — неправильно сформированный HPACK в кадрах HTTP/2 HEADERS может вызвать необработанные ошибки TLSSocket, которые приводят к сбою процесса (удаленный DoS). (nodejs.org)
- CVE-2025-55131 — гонка при распределении буфера: при определенных условиях таймаута/конкуренции
- Другие важные исправления включают обработку переполнения стека async_hooks, утечку памяти сертификатов клиента TLS, обход разрешений UDS с моделью разрешений и обработку исключений обратных вызовов PSK/ALPN. (nodejs.org)
Исправленные версии, которые вам следует установить (список загрузок)
- 20.20.0, 22.22.0, 24.13.0, 25.3.0 — обновите версию, которую вы используете, до соответствующей исправленной версии. (nodejs.org)
Почему это важно для команд полного стека
- Конфиденциальность: ошибка распределения буфера может привести к утечке секретов (токенов, ключей, данных сессии), если буферы будут доступны или сериализованы до нулевой инициализации. Это не чисто теоретически в условиях высокой конкуренции или ограничений по времени. (nodejs.org)
- Гарантии изоляции: команды, полагающиеся на модель разрешений Node для создания песочниц или многопользовательской изоляции, должны предполагать, что пути обхода символических ссылок и UDS ранее могли быть обойдены — границы доверия требуют повторной проверки. (nodejs.org)
- Доступность и устойчивость: проблемы с HTTP/2 и рукопожатием TLS могут привести к сбоям серверов или утечкам дескрипторов файлов под управляемыми злоумышленником входными данными; производственные серверы, принимающие произвольный клиентский трафик, находятся под риском до исправления. (nodejs.org)
Контрольный список действий (по порядку приоритета)
- Устраните проблему сейчас (в рамках вашего окна обслуживания)
- Обновите до исправленной версии Node.js для вашей версии (20.20.0 / 22.22.0 / 24.13.0 / 25.3.0). Протестируйте в тестовой и канареечной среде перед развертыванием на всех серверах. (nodejs.org)
- CI / гигиена образов
- Пересоберите и загрузите образы выполнения (базовые образы / многоступенчатые сборки Docker). Убедитесь, что ваш CI использует зафиксированные образы Node, а не "последние".
- Обновите любые зафиксированные ограничения движка в package.json и lockfiles, где вы фиксируете node через инструменты (nvm, asdf, Dockerfile FROM).
- Критически важные проверки времени выполнения и аудит кода (короткие спринты)
- Поиск в кодовой базе шаблонов использования Buffer/TypedArray, которые возвращаются или отправляются клиентам (например, Buffer.alloc + немедленная сериализация). Добавьте явное заполнение нулями, если вы должны отложить обновления во время развертывания. (nodejs.org)
- Аудит кода, использующего модель разрешений, обработку символических ссылок или любую пользовательскую логику разрешения файлов. Замените обработку относительных символических ссылок на проверки канонизированных путей и строгие разрешенные списки. (nodejs.org)
- Убедитесь, что все TLS-серверы прикрепляют обработчики ошибок к событиям
TLSSocket/сервера; сделайте обратные вызовы TLS PSK/ALPN защитными (оберните синхронные обратные вызовы в try/catch и безопасно завершайте работу). (nodejs.org) - Проверьте любое использование
vmс параметрамиtimeoutи места, которые полагаются на таймауты для ограничения выполнения (они взаимодействуют с исправлением распределения буфера). (nodejs.org)
- Наблюдаемость и обнаружение времени выполнения
- Добавьте оповещения о росте числа сбоев процессов, утечек FD или устойчивом росте памяти, связанном с рукопожатиями TLS.
- Запустите тесты на фуззинг или неправильно сформированные заголовки против любых конечных точек HTTP/2 (симулируйте чрезмерные кадры HPACK/HEADERS) в тестовой среде, чтобы подтвердить исправления сбоев.
- Стратегия развертывания
- Канарейка → развертывание: разверните на небольшом проценте трафика, отслеживайте показатели OOM/сбоев, рост таблицы FD, метрики рукопожатий TLS и задержки.
- Для кластеров с состоянием предпочтите поэтапные перезапуски, чтобы избежать одновременных сбоев.
Рекомендации по тестированию (быстро, с высоким воздействием)
- Запустите интеграционные тесты, которые проверяют:
- Пути распределения буфера в условиях таймаутов и конкурентных нагрузок; добавьте синтетические нагрузки, которые выделяют и открывают буферы.
- Тесты на обход файловой системы, которые создают цепочки относительных символических ссылок и проверяют соблюдение модели разрешений/разрешенного списка.
- Повторные рукопожатия TLS с клиентскими сертификатами, вызывающими
socket.getPeerCertificate(true), чтобы убедиться, что память не растет постоянно. - Неправильно сформированные кадры заголовков HTTP/2, чтобы убедиться, что процесс остается активным и ошибки обрабатываются.
Операционные заметки и меры, если вы не можете немедленно обновить
- Если немедленное обновление невозможно:
- Ограничьте воздействие: ограничьте публичные HTTP/2/TLS конечные точки за WAF/балансировщиками нагрузки, блокируйте неправильно сформированные HTTP/2 на сетевом уровне, если это возможно.
- Инструментируйте и создавайте песочницы для процессов с высоким риском; запускайте менее доверенные нагрузки в отдельных процессах или контейнерах с более строгой изоляцией на уровне ОС.
- Для пользователей модели разрешений избегайте полагаться на экспериментальные флаги разрешений для критически важных изоляций, пока не будут установлены исправленные платформы. (nodejs.org)
Последний практический совет
- Выпуск также обновляет зависимости (c-ares и undici) — убедитесь, что проекты, которые используют или встраивают
undiciили имеют нативные привязки, пересобираются и повторно тестируются после обновления Node. (nodejs.org)
Источник
Источник
Читать дальше
Svelte 5.52.0 добавляет поддержку TrustedHTML для {@html}, обеспечивая более безопасную интеграцию Trusted Types
21 февраля 2026 г.Svelte 5.52.0 (18 февраля 2026 г.) добавляет поддержку TrustedHTML для выражений {@html}, чтобы приложения могли взаимодействовать с браузерными Trusted Types без приведения к строке — важно для защиты от XSS в SSR и при рендеринге на клиенте.
Next.js 16 делает Turbopack стабильным и дефолтным для разработки и сборки
20 февраля 2026 г.Next.js 16 переводит Turbopack в стабильную/дефолтную настройку, поднимает минимальную версию Node.js и внедряет примитивы кэширования, ориентированные на продакшн — что должны изменить команды full‑stack прямо сейчас.
Vite 8.0.0‑beta.14 добавляет поддержку .wasm?init на стороне сервера (WASM SSR) и обновляет Rolldown до 1.0.0‑rc.4
19 февраля 2026 г.Бета‑версия Vite от 12 февраля 2026 года вводит поддержку SSR для предварительно инициализированных модулей WebAssembly и обновляет интеграцию Rolldown до 1.0.0‑rc.4 — практическое изменение, которое снижает нагрузку на гидратацию на клиенте и улучшает стабильность инструментов для серверных рендеров с интенсивным использованием Wasm.