Node.js выпустил срочные обновления безопасности для 12 уязвимостей

node.js

Node.js анонсировал критические обновления безопасности, которые закрывают 12 уязвимостей в поддерживаемых версиях платформы. Корректирующие патчи были выпущены 18 июня 2026 года и затронули три актуальные линии разработки: 22.x, 24.x и 26.x. Обновлённые сборки распространяются под номерами v22.23.0, v24.17.0 и v26.3.1. По данным команды Node.js, две уязвимости имеют высокий уровень опасности: одна способна привести к удалённому отказу в обслуживании, другая - к обходу TLS-аутентификации.

Детали уязвимостей

Наиболее серьёзная проблема, зарегистрированная как CVE-2026-48933, связана с WebCrypto API. Уязвимость возникает при работе функции subtle.encrypt() с особым образом подготовленными входными данными. Если размер передаваемых данных кратен двум гигабайтам, происходит целочисленное переполнение, что вызывает аварийное завершение процесса Node.js. В результате злоумышленник может инициировать состояние отказа в обслуживании удалённо, без аутентификации. Особую угрозу эта уязвимость представляет для приложений, выполняющих криптографические операции в недоверенной среде, например, в облачных обработчиках или публичных API.

Вторая уязвимость высокой степени опасности - CVE-2026-48618 - затрагивает механизм проверки имени хоста в TLS. Причиной проблемы стала некорректная обработка символа точки в составе Unicode-разделителей. В результате возможно несоответствие между разрешением имени хоста и проверкой сертификата, что позволяет атакующему обойти подстановочную аутентификацию в определённых конфигурациях. Если эксплуатация состоится, злоумышленник сможет выдать себя за легитимный узел, получить несанкционированный доступ к защищённому соединению или скомпрометировать конфиденциальность передаваемых данных.

Помимо критических проблем, в обновлении исправлены несколько уязвимостей средней степени опасности. Одна из них (CVE-2026-48619) связана с реализацией HTTP/2: отправив избыточное количество кадров ORIGIN, злоумышленник может вызвать неконтролируемый расход памяти вплоть до отказа в обслуживании. Другая уязвимость (CVE-2026-48934) затрагивает повторное использование TLS-сессий с несовпадающими именами серверов, что может привести к обходу проверки подлинности хоста. Ещё одна проблема (CVE-2026-48615) касается утечки учётных данных прокси: при возникновении ошибки туннелирования прокси-сервер может вывести логин и пароль в сообщении об ошибке, если они были встроены в URL. Для корпоративных сред это означает риск компрометации учётных записей через системные журналы или диагностические выводы.

Список уязвимостей средней степени дополнили ещё два дефекта. CVE-2026-48928 связан с нечувствительностью к регистру при сопоставлении SNI, что в определённых сценариях может привести к обходу авторизации mTLS. CVE-2026-48930 описывает проблему с символами NUL в именах хостов: при обработке через резолвер выполняется усечение строки, что позволяет атакующему перенаправить трафик на подконтрольный узел.

Уязвимости низкой степени опасности, хотя и не несут прямой угрозы, могут быть использованы в цепочках атак. В частности, CVE-2026-48617 и CVE-2026-48935 позволяют обойти ограничения файловой системы через методы process.report.writeReport() и FileHandle.utimes() в промисном API. Ещё одна низкая уязвимость, CVE-2026-48936, уникальна для версии 26: серверы Unix-сокетов могут игнорировать флаги сетевых разрешений, что открывает несанкционированный локальный доступ. Также исправлена проблема отравления очереди HTTP-ответов (CVE-2026-48931), вызванная состоянием гонки в модуле http.Agent, и неправильная очистка сессий HTTP/2 после получения сигнала GOAWAY при невалидных протокольных ошибках (CVE-2026-48937).

Параллельно с закрытием уязвимостей Node.js обновил несколько ключевых зависимостей: библиотеку llhttp до версии 9.4.2, nghttp2 до 1.69.0, OpenSSL до 3.5.7 и undici. Эти обновления устраняют дополнительные проблемы безопасности, обнаруженные в смежных компонентах, и повышают общую стабильность среды выполнения.

Специалисты по безопасности настоятельно рекомендуют как можно скорее установить обновлённые версии Node.js, поскольку уязвимости затрагивают все поддерживаемые релизные линии. Организациям, использующим версии, срок поддержки которых истёк, следует немедленно перейти на актуальные сборки - непропатченные экземпляры остаются под повышенным риском эксплуатации. В качестве временной меры для снижения воздействия CVE-2026-48933 можно ограничить объём передаваемых данных в вызовах WebCrypto, а для CVE-2026-48618 - проверить конфигурации TLS-сертификатов на корректность обработки Unicode-разделителей. Однако полноценную защиту гарантирует только установка официальных патчей.

Ссылки

Комментарии: 0