К содержанию
Умно. Полезно. Иногда несерьёзно.
Дыра в Brotli вынудила Node.js и Microsoft срочно латать

Дыра в Brotli вынудила Node.js и Microsoft срочно латать

Обновить только системную библиотеку мало: Node.js и программы со своей копией Brotli нужно обновлять отдельно и перезапускать.

Фото: BleepingComputer

В Brotli, открытой библиотеке сжатия данных от Google, нашли критическую уязвимость CVE-2026-111497. Её прозвали HTTP2Shell, а также Broccoli2Shell и Node2Shell. Ошибка позволяет повредить память программы и, по данным Node.js и компании Imperva, удалённо выполнить на ней чужой код. Microsoft в воскресенье, 25 октября, выпустила экстренное обновление для .NET.

Brotli сжимает веб-страницы и файлы, чтобы они быстрее передавались по сети. Её декодер встроен в Node.js — среду, на которой работает огромное число серверов и веб-сервисов. Уязвимы версии Brotli с 1.0.3 по 1.0.9, а также 1.1.0 и 1.2.0.

Как работает атака

Ошибку в декодере вызывает специально испорченный блок данных. Библиотека принимает его не за ошибку формата, а за просьбу дать ещё данных. В итоге она дописывает байты в восьмибайтовый буфер и выходит за его границы, повреждая соседнюю память.

Атаковать можно с двух сторон. Злоумышленник отдаёт сжатый ответ программе, которая скачивает данные по ссылке, или отправляет сжатый запрос серверу. Несмотря на название, проблема не ограничена протоколом HTTP/2. Под угрозой любое приложение, которое распаковывает присланные извне данные в формате Brotli.

Кроме Node.js уязвимы популярные Python-библиотеки для работы с сетью: urllib3, requests, httpx и aiohttp, если они используют старый декодер Brotli. Microsoft предупредила, что на системах с уязвимой версией .NET ошибка позволяет повысить привилегии.

Что обновлять

Исправления вышли в Google Brotli 1.0.10, 1.1.1 и 1.2.1, в Node.js 22.23.4, 24.22.1 и 26.12.1, а также в Python-пакетах Brotli 1.2.1 и brotlicffi 1.2.1.0. Google и Node.js выпустили стабильные исправления 21 октября, публично об ошибке рассказали на следующий день.

Готовые эксплойты, то есть рабочие примеры атаки, уже опубликованы. О реальных атаках BleepingComputer пока не сообщает. Администраторам советуют обновиться, перезапустить процессы и пересобрать контейнеры. Блокировка входящих запросов в Brotli не спасает, потому что атака может прийти и в ответе сервера.

Это уже вторая крупная дыра в базовых веб-технологиях за неделю. Незадолго до неё хакеры начали взламывать серверы через PHP2Shell.

Источники: BleepingComputer — об уязвимости HTTP2Shell