Критична вразливість «HTTP2Shell» у Brotli торкається Node.js, .NET і Python
У бібліотеці декодування Brotli виявлено критичну вразливість CVE-2026-111497, що може призвести до витоку пам’яті та віддаленого виконання коду. Постачальники терміново випустили оновлення.
У відкритій бібліотеці декодування Brotli, яку використовують Node.js та інші екосистеми, знайдено критичну вразливість CVE-2026-111497 («HTTP2Shell», також відому як «Broccoli2Shell» і «Node2Shell»). Розробники випустили стабільні виправлення, а Microsoft екстрено оновила .NET.
Кого зачіпає
Помилка вражає Brotli версій 1.0.3–1.0.9, 1.1.0 і 1.2.0. Ризикують сервіси та клієнти, що розпаковують дані, контрольовані зловмисником: від Node.js до Python-застосунків, зокрема urllib3[brotli], requests, httpx, aiohttp[speedups], якщо вони налаштовані з уразливим декодером. Також під загрозою інші інструменти й застосунки, що вбудовують вразливу реалізацію Brotli.
Microsoft у неділю випустила позачергове оновлення .NET, попередивши, що успішна експлуатація на вразливих системах може дати підвищення привілеїв.
Як працює вразливість
Йдеться про переповнення буфера: спеціально сформований потік з Brotli може спровокувати недійсне перемикання блоку, яке декодер помилково сприймає як потребу у додатковому вводу. У результаті байти дописуються за межі внутрішнього 8-байтового буфера, що пошкоджує сусідню пам’ять.
Експлуатація можлива, коли застосунок розпаковує шкідливі дані — наприклад, через стиснену Brotli-відповідь HTTP або стиснений запит. За даними Node.js, це може спричинити збій процесу, розкриття пам’яті і віддалене виконання коду; звіт Imperva підтверджує потенціал RCE.
Оновлення та виправлені версії
Початкові виправлення внесли до репозиторію Brotli в лютому. Стабільні оновлення від Google і Node.js вийшли 21 жовтня, публічне розкриття відбулося наступного дня. Пакети PyPI з виправленнями стали доступні 23 жовтня.
- 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
- Python brotlicffi: 1.2.1.0
Рекомендації адміністраторам
Негайно встановіть оновлення. Після оновлення перезапустіть уражені процеси; контейнерні образи потрібно перебудувати й перевикласти. Врахуйте, що оновлення системної бібліотеки Brotli не усуває ризик для Node.js чи інших застосунків, які постачають власну копію бібліотеки.
Блокування вхідних Brotli-запитів не закриває вектор через шкідливі HTTP-відповіді. Якщо негайне оновлення неможливе, тимчасово приберіть підтримку Brotli у Python-застосунках та блокуйте Brotli-стиснені запити на рівні проксі або файрвола.
Опубліковані працюючі PoC-експлойти, однак про масові зловмисні атаки наразі не повідомляли. Попри це, варто пріоритезувати встановлення виправлень.