•
3 min read

Broccoli2Shell – krytyczna luka w bibliotece Brotli zagraża Node.js i serwerom WWW

Table of Contents

25 października opublikowano szczegóły krytycznej podatności CVE-2026-111497, nazwanej przez badaczy Broccoli2Shell. Dotyczy ona biblioteki Brotli, czyli popularnego algorytmu kompresji używanego w sieci do przyspieszania stron i API. Błąd występuje w dekoderze napisanym w języku C i pozwala na zapis poza przydzieloną pamięcią, co w skrajnym przypadku może zakończyć się zdalnym wykonaniem kodu na serwerze.

Na czym polega problem

Luka to klasyczny out-of-bounds write. Wystarczy, że aplikacja zdekompresuje odpowiednio spreparowane dane Brotli pochodzące od atakującego, na przykład treść żądania HTTP albo odpowiedź z zewnętrznej usługi. Nie jest potrzebne logowanie ani żadne uprawnienia. Skutkiem może być uszkodzenie pamięci, wyciek wrażliwych danych, awaria procesu, a przy sprzyjających warunkach przejęcie kontroli nad serwerem.

Brotli jest wszechobecne, dlatego lista podatnych produktów jest długa. Zagrożone są biblioteki Google Brotli i Python Brotli w wersjach od 1.0.3 do 1.2.0, niezałatane gałęzie Node.js 22, 24 i 26, środowisko Bun, serwer proxy Envoy, platforma Istio oraz biblioteka Go andybalholm/brotli sprzed wersji 1.2.7. Według danych firmy Wiz aż 91% środowisk chmurowych zawiera zasoby podatne na ten błąd, a 82% ma publicznie dostępne instancje Node.js.

Czy ataki już trwają

Badacze, w tym zespół Imperva Red Team, pokazali działający exploit przeciwko niezałatanym środowiskom Node.js. Na razie nie potwierdzono masowych ataków w terenie, ale historia podobnych luk pokazuje, że od publikacji szczegółów do automatycznego skanowania internetu mijają zwykle dni, a nie tygodnie. Podobnie było niedawno z PHP2Shell, gdzie próby wykorzystania pojawiły się jeszcze przed publicznym ujawnieniem błędów.

Co zrobić

Administratorzy i programiści powinni jak najszybciej zaktualizować komponenty do wersji naprawionych: Brotli 1.0.10, 1.1.1 lub 1.2.1, Node.js 22.23.4, 24.22.1 lub 26.12.1, Bun 1.4.4, a w przypadku Envoya i Istio do najnowszych wydań poprawkowych. Ważne, aby po aktualizacji przebudować i ponownie wdrożyć kontenery, bo biblioteka bywa wkompilowana w obrazy.

Jeśli łatka nie jest od razu możliwa, tymczasowo można wyłączyć obsługę dekompresji Brotli lub odrzucać żądania z kodowaniem br, zanim trafią do podatnych usług. Warto też przejrzeć logi WAF, aplikacji i sieci pod kątem nietypowych żądań. Zwykli użytkownicy nie muszą nic robić poza aktualizowaniem przeglądarek i aplikacji, ale właściciele sklepów, stron i hostingów powinni sprawdzić, na jakich wersjach działają ich serwery.

Wnioski

Broccoli2Shell przypomina, że nawet niepozorna biblioteka kompresji może stać się furtką do całej infrastruktury, bo jest ukryta głęboko w zależnościach. Regularna inwentaryzacja komponentów oraz szybkie wdrażanie poprawek to dziś podstawa higieny bezpieczeństwa.

źródło: https://www.wiz.io/blog/cve-2026-111497-brotli-rce-node-js