TL;DR
Jedna odpowiedź HTTP z nagłówkiem Content-Encoding: br może wystarczyć, żeby wykonać dowolny kod w procesie Node.js. Błąd siedzi w dekoderze Brotli napisanym w C: kod nie sprawdzał przełączenia bloku w sytuacji, w której według specyfikacji nie powinno ono wystąpić wcale (gdy deklarowana jest tylko jedna kategoria bloku). Zamiast przerwać dekompresję z błędem, szedł dalej. Lukę zgłosił Matteo Collina, a zespół Imperva Red Team pokazał działającego exploita RCE dla arm64.
Podatne są nie tylko aplikacje, które jawnie dekompresują Brotli. Wystarczy fetch(), Express 5, klient HTTP albo proxy. Łatki są w Node.js 26.12.1, 24.22.1 i 22.23.4, a linie spoza wsparcia, czyli 25.x, 23.x i 20.x, zostają bez poprawki. Jeśli system linkuje Brotli z dystrybucji, trzeba zaktualizować także ją. W tekście znajdziesz pełną listę wersji i szczegóły techniczne.
Ostatnie dni były szczególnie intensywne dla naszej cyber-niszy. Najpierw zagrożenie ze strony słabych kluczy kryptograficznych pośredniego CA, potem podatność dotykająca szerokie...
Czytaj cały wpis u źródła