Критична уязвимост в широко използваната библиотека за компресиране на данни Google Brotli, регистрирана като CVE-2026-111497 (Common Vulnerabilities and Exposures) и придобила популярност под името Node2Shell, наложи спешни софтуерни корекции от водещи технологични доставчици. Тъй като алгоритъмът за компресия Brotli се прилага масово в съвременния уеб трафик, дефектът засяга платформи като Node.js, Microsoft .NET и редица Python компоненти. За българския бизнес навременната проверка на сървърите и контейнерните среди е от критично значение, за да се избегнат потенциални прекъсвания на услуги и неоторизиран достъп.
Какво представлява уязвимостта Node2Shell
Проблемът се корени в модула за декомпресиране (decoder) на Google Brotli и се определя като запис извън допустимите граници на буфера (out-of-bounds write). Дефектът засяга версии на Brotli от 1.0.3 до 1.2.0. Според Google уязвимостта попада в критичната категория с CVSS (Common Vulnerability Scoring System) рейтинг 9.2. Коригираният код е наличен във версии 1.0.10, 1.1.1 и 1.2.1 на библиотеката.
Проблемът е открит от екипа на OpenAI Codex Security по време на симулативни тестове на защитата (red-teaming). От OpenAI съобщават, че първопричината за дефекта всъщност е била премахната в изходния код на Brotli още през февруари, но по това време не е било известно, че тя представлява заплаха за сигурността, и не е било публикувано ново официално издание на библиотеката.
В технологичните среди уязвимостта се среща още под имената HTTP2Shell и Broccoli2Shell поради механизмите за пренос на компресирани данни.
Специално манипулирани компресирани входни данни могат да препълнят буфера на декодера. Това води до повреждане на системната памет, срив на работещите процеси, изтичане на съдържание от паметта или потенциално изпълнение на произволен код от неупълномощени лица.
Кои софтуерни среди и технологии са засегнати
Тъй като декодерът на Brotli е вграден директно в множество приложни библиотеки, обхватът на въздействие е широк:
- Node.js: Разработчиците на проекта потвърдиха наличието на уязвимостта и пуснаха коригиращи версии. При преминаване на злонамерени данни през декодера процесът може да спре или да позволи компрометиране на средата.
- Microsoft .NET и инструменти: Microsoft пусна актуализации на 25 октомври. Те обхващат .NET runtime версии 8.0.33, 9.0.22 и 10.0.14, както и .NET 11 Release Candidate 3. Засегнати и обновени са средите за разработка Visual Studio 2019, 2022 и 2026, както и конзолата PowerShell във версии 7.4, 7.5 и 7.6. Microsoft класифицира проблема като ескалация на привилегии с оценка 8.1 и степен на експлоатируемост „Exploitation More Likely“.
- Python екосистема: Уязвимият декодер е част от два пакета в хранилището PyPI —
Brotliиbrotlicffi. Те са коригирани съответно с версии 1.2.1 и 1.2.1.0. - Облачни и мрежови компоненти: Проектите Bun, Envoy и Istio също получиха обновления за отстраняване на слабостта.
Според публичен регистър на софтуер, който включва свое собствено копие на декодера на Brotli, все още има проекти без издадени корекции, сред които DuckDB, Apache Arrow, 7-Zip-zstd, p7zip и EDK II. Поддържащите списъка уточняват, че не всяка конфигурация на тези продукти задължително излага уязвимия код на външен риск.
Вектори за атака и реални рискове
По данни на изследователите от Imperva е демонстрирано успешно изпълнение на код срещу официалния образ на Node.js 24.22.0 под Linux arm64. В техните тестове компресираните данни са подадени както през сървърен отговор, получен от приложението, така и в тялото на HTTP заявка, обработена с Express 5 или body-parser 2. Екипът посочва, че тестовият механизъм не сработва при всеки опит и демонстрационният код не е публикуван публично.
От инициативата Patch the Planet на OpenAI поясняват, че заплахата възниква само ако зловредните данни достигнат пряко до декодера. Това обхваща компресирани тела на HTTP заявки, отговори от ненадеждни отдалечени сървъри и компресирани файлове, заредени в приложението.
Към момента няма регистрирани реални злонамерени атаки в интернет среда. Публикувани концептуални тестове в GitHub успяват да постигнат изпълнение на код само срещу модифицирани и умишлено отслабени версии на средата. Част от изследователите отбелязват, че в много практически случаи уязвимостта може да доведе единствено до DoS (Denial of Service — отказ на услуга) чрез аварийно спиране на процеса.
Какво да предприемете: препоръки за защита
За да защитите фирмените сървъри и разработваните уеб приложения, вашият системен или ИТ екип трябва да изпълни следните стъпки:
Проверете вътрешните и публичните си приложения за използване на уязвими версии на Node.js, .NET, Python пакети или междинни прокси инструменти като Envoy.
Обновете .NET до версии 8.0.33, 9.0.22 или 10.0.14, инсталирайте последните пакети за PowerShell (7.4, 7.5, 7.6), Visual Studio и обновете Python библиотеките Brotli (1.2.1) и brotlicffi (1.2.1.0).
Инсталирането на пакетите на ниво операционна система не е достатъчно. Стартираните процеси задържат старата библиотека в оперативната памет, поради което работещите услуги трябва да бъдат задължително рестартирани.
Ако използвате Docker или други контейнери в облачна среда, преизградете образите на база на обновени основни операционни системи (base images), за да не останат стари компилации на Brotli в продукция.
Обобщение
Макар до момента да не се наблюдават масови атаки с експлоатация на CVE-2026-111497, широкото разпространение на библиотеката Brotli в съвременната уеб инфраструктура налага превантивни мерки. Редовното обновяване на системните компоненти и рестартирането на критичните услуги гарантират, че вашите сървъри ще останат защитени. При нужда от съдействие за одит на софтуерната инфраструктура и коректно внедряване на обновленията в корпоративната среда, екипът на Defend.bg може да помогне за осигуряване на стабилността и сигурността на вашите системи.

