Node.js выпустил исправления для 16 уязвимостей в собственном коде. Семь из них получили высокий рейтинг опасности: ошибки позволяли удалённым клиентам без аутентификации обрушить сервер, истощить его ресурсы, повредить память или прочитать данные, связанные с другими соединениями.
Исправленные версии доступны во всех трёх поддерживаемых ветках: 22.x — 22.23.5, 24.x — 24.22.3, 26.x — 26.13.1. В рекомендациях проекта обновление до соответствующей версии названо единственным способом устранения проблем; обходных мер для серверов, которые не могут обновиться, не предложено.
Особенно опасна уязвимость CVE-2026-123863: клиент без учётной записи может вызвать сбой HTTP/2-сервера. Для этого стандартный сервер должен отправить ответ до того, как получено всё тело запроса. По описанию Node.js, это типичное поведение. Атака возможна как через TLS, так и через незашифрованное соединение.
Другая ошибка HTTP/2, CVE-2026-123866, способна привести к отправке клиенту фрагментов памяти сервера. Среди возможных утечек — ответы, предназначенные для других соединений. В версиях 24.22.0 и новее, а также 26.9.0 и новее, уязвимость может вызвать один клиент. В более ранних сборках веток 22.x, 24.x и 26.x для атаки требуется, чтобы сервер прервал поток посреди ответа, например из-за тайм-аута бездействия. Проблема затрагивает все три поддерживаемые ветки.
CVE-2026-123864 связана уже с HTTPS. Клиент без аутентификации может прочитать память, относящуюся к другим соединениям; в ней могут оказаться закрытые TLS-ключи и запросы других пользователей. Уязвимый обработчик должен вызвать
Ещё одна высоко оценённая ошибка, CVE-2026-123865, позволяет заставить стандартный HTTP/2-сервер навсегда удерживать память и файловые дескрипторы. CVE-2026-123874 может повредить память сервера в ветках 24.x и 26.x, если тот отдаёт файлы через
В TLS-коде обнаружены две отдельные проблемы. CVE-2026-126051 позволяет обрушить TLS-сервер в ветках 24.x и 26.x, если он использует хуки
Уязвимость CVE-2026-123875 имеет средний рейтинг. На любой из поддерживаемых веток сервер может завершить работу, если клиент отменит загрузку файла, отправляемого через
Все восемь описанных проблем относятся к серверному коду HTTP/2, HTTPS и TLS в Node.js и касаются процессов, которые сами принимают такие соединения. Ветки с завершённым сроком поддержки, в том числе 20.x и 25.x, исправления не получили; проект указывает, что они остаются уязвимыми. Сведений об атаках, использующих эти ошибки, в рекомендациях нет. Там также не сказано, должны ли серверы, соответствовавшие условиям уязвимости HTTPS, заменить TLS-ключи или другие секреты после обновления.
По данным Node.js, пять уязвимостей, включая CVE-2026-123863 и CVE-2026-123864, обнаружил Chris Rohlf при участии Claude и Anthropic Research. В общей сложности выпуск закрывает 16 уязвимостей, семь из которых оценены как высокоопасные.
Исправленные версии доступны во всех трёх поддерживаемых ветках: 22.x — 22.23.5, 24.x — 24.22.3, 26.x — 26.13.1. В рекомендациях проекта обновление до соответствующей версии названо единственным способом устранения проблем; обходных мер для серверов, которые не могут обновиться, не предложено.
Особенно опасна уязвимость CVE-2026-123863: клиент без учётной записи может вызвать сбой HTTP/2-сервера. Для этого стандартный сервер должен отправить ответ до того, как получено всё тело запроса. По описанию Node.js, это типичное поведение. Атака возможна как через TLS, так и через незашифрованное соединение.
Другая ошибка HTTP/2, CVE-2026-123866, способна привести к отправке клиенту фрагментов памяти сервера. Среди возможных утечек — ответы, предназначенные для других соединений. В версиях 24.22.0 и новее, а также 26.9.0 и новее, уязвимость может вызвать один клиент. В более ранних сборках веток 22.x, 24.x и 26.x для атаки требуется, чтобы сервер прервал поток посреди ответа, например из-за тайм-аута бездействия. Проблема затрагивает все три поддерживаемые ветки.
CVE-2026-123864 связана уже с HTTPS. Клиент без аутентификации может прочитать память, относящуюся к другим соединениям; в ней могут оказаться закрытые TLS-ключи и запросы других пользователей. Уязвимый обработчик должен вызвать
res.flushHeaders() до получения полного тела запроса, а затем передать данные в res.end(). Для получения утечки также нужен маршрут, который возвращает тело запроса в ответе или сохраняет его. Ошибка затрагивает все поддерживаемые ветки, но обычные HTTP-серверы на node:http от неё не страдают. Ещё одна высоко оценённая ошибка, CVE-2026-123865, позволяет заставить стандартный HTTP/2-сервер навсегда удерживать память и файловые дескрипторы. CVE-2026-123874 может повредить память сервера в ветках 24.x и 26.x, если тот отдаёт файлы через
stream.respondWithFile() или stream.respondWithFD(). В TLS-коде обнаружены две отдельные проблемы. CVE-2026-126051 позволяет обрушить TLS-сервер в ветках 24.x и 26.x, если он использует хуки
SNICallback, OCSPRequest, newSession или resumeSession, либо метод server.addContext(). CVE-2026-123872 обходит правила проверки клиентских сертификатов при повторном согласовании TLS 1.2: клиент, допущенный для одного имени хоста, может переключиться на хост с более строгими требованиями, не выполняя их. Эта уязвимость есть во всех трёх поддерживаемых ветках. Уязвимость CVE-2026-123875 имеет средний рейтинг. На любой из поддерживаемых веток сервер может завершить работу, если клиент отменит загрузку файла, отправляемого через
stream.respondWithFile() или stream.respondWithFD(). Все восемь описанных проблем относятся к серверному коду HTTP/2, HTTPS и TLS в Node.js и касаются процессов, которые сами принимают такие соединения. Ветки с завершённым сроком поддержки, в том числе 20.x и 25.x, исправления не получили; проект указывает, что они остаются уязвимыми. Сведений об атаках, использующих эти ошибки, в рекомендациях нет. Там также не сказано, должны ли серверы, соответствовавшие условиям уязвимости HTTPS, заменить TLS-ключи или другие секреты после обновления.
По данным Node.js, пять уязвимостей, включая CVE-2026-123863 и CVE-2026-123864, обнаружил Chris Rohlf при участии Claude и Anthropic Research. В общей сложности выпуск закрывает 16 уязвимостей, семь из которых оценены как высокоопасные.