Node.js декабрь 2025 года: критические обновления безопасности для команд full‑stack, которые необходимо развернуть сейчас

ReactNode.jsDevOps

Summary

13 января 2026 года проект Node.js опубликовал согласованные обновления безопасности, которые устраняют несколько уязвимостей высокой и средней степени серьезности в работе и зависимостях, затрагивающих активные версии (20.x, 22.x, 24.x, 25.x). Набор включает исправления для неинициализированных утечек памяти в выделении буфера, обхода прав файловой системы через специально подготовленные символические ссылки, удаленных сбоев из-за неправильно сформированных HTTP/2 фреймов и обновления ключевых зависимостей (c-ares, undici). Эти ошибки представляют риски для конфиденциальности, целостности и доступности серверных JavaScript-сервисов и управляемых сред выполнения — команды full‑stack должны рассматривать это как срочное обновление платформы. (nodejs.org)

Why this matters (practical impact)

  • Условие гонки при выделении буфера (CVE-2025-55131): при определенных условиях таймаута/гонки, Buffer.alloc и аналогичные выделения TypedArray могут быть не заполнены нулями, что потенциально может раскрыть секреты в процессе или вызвать повреждение данных, когда код использует таймауты с модулем vm. Сервисы, которые управляют длительными процессами, секретами в памяти или полагаются на изоляцию в процессе, находятся под угрозой. (nodejs.org)
  • Обход прав файловой системы (CVE-2025-55130): специально подготовленные относительные цепочки символических ссылок могут обойти модель прав файловой системы Node (экспериментальные флаги прав), что позволяет читать/записывать за пределами предполагаемых директорий — это опасно для песочниц и сборочных процессов, которые полагаются на изоляцию на уровне Node. (nodejs.org)
  • Сбой сервера HTTP/2 (CVE-2025-59465): неправильно сформированные фреймы HEADERS с недействительными данными HPACK могут вызвать необработанные ошибки и удаленные сбои процессов, что позволяет осуществлять DoS-атаки на HTTPS-серверы, использующие стек HTTP/2 Node. (nodejs.org)
  • Исправления зависимостей: обновления для c-ares (1.34.6) и undici (6.23.0 / 7.18.0) являются частью релиза — приложения и фреймворки, которые используют или упаковывают эти библиотеки, могут потребовать пересборки или обновления зависимостей. (nodejs.org)

Immediate action checklist (high priority)

  1. Обновите Node во всех средах (CI, образы разработки, тестовые, производственные) до исправленных релизов, опубликованных с этим уведомлением (20.20.0, 22.22.0, 24.13.0, 25.3.0 по мере доступности) и пересоберите любые контейнеры или артефакты выполнения. Рассматривайте это как обязательное для сервисов, доступных в интернете. Тестируйте развертывания в канаре перед полным развертыванием. (nodejs.org)

  2. Пересоберите и повторно опубликуйте образы контейнеров и пакеты функций. Не предполагайте, что управляемая среда выполнения Node вашего облачного провайдера уже обновлена — проверьте версию образа провайдера и загрузите пересобранные образы в реестры (ECR/GCR/Azure Container Registry), где вы контролируете среду выполнения. Проверьте образы узлов вашего оркестратора (узлы k8s, задачи Fargate и т.д.). (nodejs.org)

  3. Зафиксируйте и/или обновите прямые использования undici и c-ares. Если ваш код или фреймворк используют undici или c-ares, обновите до исправленных версий, указанных в уведомлении (undici 6.23.0 / 7.18.0, c-ares 1.34.6) и выполните пересборку зависимостей. Если вы полагаетесь на lockfiles, регенерируйте их и запустите полные тесты зависимостей CI. (nodejs.org)

  4. Аудит шаблонов кода, которые увеличивают уязвимость:

    • Ищите использования vm с опциями таймаута и код, который вызывает Buffer.alloc / Buffer.allocUnsafe в контекстах, где таймауты или ненадежный ввод влияют на частоту выделения. Замените небезопасные выделения на явное обнуление или переработайте, чтобы избежать зависимости от времени выделения. (nodejs.org)
    • Избегайте полагаться исключительно на экспериментальные флаги прав Node для изоляции; обеспечьте контроль на уровне контейнера/ОС (только для чтения, seccomp, AppArmor, chroot), где это возможно. (nodejs.org)
  5. Укрепите обработку ошибок и стеки TLS/HTTP:

    • Убедитесь, что обратные вызовы TLS (pskCallback, ALPN) и любые пользовательские обратные вызовы, используемые во время рукопожатия, обернуты в безопасные блоки try/catch и что ваш процесс имеет соответствующие обработчики ошибок, чтобы избежать необработанных исключений и утечек дескрипторов. (nodejs.org)
    • Для серверов HTTP/2 добавьте надежную обработку событий ошибок secureConnection/socket и реализуйте ограничения на количество соединений и разумные ограничения на размер фреймов, если вы разбираете необработанные фреймы. (nodejs.org)
  6. Проверки CI / SRE

    • Добавьте или обновите матрицу CI, чтобы включить исправленные версии Node и запустите интеграционные тесты под этими средами выполнения.
    • Добавьте дымовые тесты, которые имитируют неправильно сформированные фреймы HTTP/2 и агрессивные сценарии рукопожатия TLS (в не производственной среде), чтобы подтвердить стабильность сервиса.
    • Запустите быстрые сканирования зависимостей (SCA) и пересоберите lockfiles; рассмотрите возможность принудительной пересборки в CI, чтобы гарантировать, что нативные дополнения или упакованные библиотеки ссылаются на исправленные c-ares/undici. (nodejs.org)
  7. Триаж инцидентов и секреты

    • Для рабочих нагрузок, где вы не можете немедленно обновить, примените компенсирующие меры (ограничьте сетевое воздействие, изолируйте затронутые сервисы, увеличьте мониторинг).
    • Поскольку проблема с выделением буфера может раскрыть данные в процессе в редкие временные окна, если вы подозреваете утечку учетных данных или токенов, измените секреты и ключи, используемые затронутыми процессами. (nodejs.org)

Rollout notes and long‑term recommendations

  • Рассматривайте серверные и сборочные/сервисные среды выполнения (агенты CI, сборочные серверы, исполнители артефактов) с такой же срочностью, как и производственные веб-сервисы — открытый сборочный агент может раскрыть секреты или сохранить задние двери в артефактах.
  • Для команд, использующих управляемые или edge-среды выполнения (платформы, которые встраивают Node), проверьте сроки поставки провайдеров — некоторые провайдеры могут отставать и потребовать от вас повторной упаковки с исправленным бинарным файлом Node.
  • Поддерживайте автоматизированное окно патчей для LTS-версий Node в вашем календаре релизов и добавьте быстрый путь для экстренных обновлений безопасности Node (автоматизированные сборки образов + канарейка).
  • Рассмотрите возможность увеличения изоляции среды выполнения (меньший радиус поражения) и уменьшения количества секретов, хранящихся в памяти длительных процессов; используйте внешние сервисы секретов с коротким временем жизни, где это возможно.

Bottom line

Это согласованное обновление безопасности Node.js устраняет несколько проблем, которые могут повлиять на конфиденциальность, целостность и доступность серверных JavaScript-сервисов. Команды full‑stack должны приоритизировать обновление до исправленных релизов Node, пересборку артефактов, обновление ключевых зависимостей (undici, c-ares), укрепление обработки ошибок и проверку сред выполнения провайдеров — затем измените секреты, если есть подозрения на утечку. Соблюдайте нормальную гигиену развертывания (канарейки, проверки состояния, наблюдаемость) и действуйте быстро: эти исправления имеют широкое применение и затрагивают несколько активных версий Node. (nodejs.org)

Source:

Source

Читать дальше