CVE-2026-82431
KrytyczneCVSS 9.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 40 - wyżej niż 40% wszystkich znanych CVE
Streszczenie
W komponencie SimpleACLAuthorizer w Apache Storm autoryzacja kończyła się wcześnie, gdy lista nimbus.users była pusta, pomijając sprawdzanie nimbus.groups. W efekcie konfiguracja ograniczająca dostęp wyłącznie przez grupy nie działała i każdy uwierzytelniony użytkownik mógł wykonywać wszystkie operacje na poziomie użytkownika, w tym submitTopology, beginFileUpload i getNimbusConf. Problem naprawiono w wersji 3.1.0.
Ocena ryzyka
Organizacje, które ograniczały dostęp do klastra wyłącznie przez nimbus.groups, były w rzeczywistości całkowicie otwarte dla wszystkich uwierzytelnionych podmiotów, co mogło pozwolić na nieautoryzowane przesyłanie topologii i dostęp do konfiguracji. Awarie tego typu są ciche — logi i konfiguracja nie sygnalizują ignorowania listy grup.
Rekomendacja
Zaktualizuj Apache Storm do wersji 3.1.0, w której nimbus.groups jest sprawdzane niezależnie od nimbus.users. Jeśli aktualizacja nie jest możliwa, uzupełnij nimbus.users o właściwe podmioty oraz przejrzyj logi dostępu Nimbus pod kątem operacji wykonanych przez podmioty spoza zamierzonych grup.
Inne podatności w Apache Storm
Zobacz wszystkie- CVE-2014-0115Wysokie
Podatność na przejście katalogu w narzędziu do przeglądania logów w Apache Storm 0.9.0.1 pozwala zdalnym atakującym na odczyt dowolnych plików poprzez wykorzystanie parametru pliku z sekwencją .. (kropka kropka).
- CVE-2026-82435Krytyczne
W Apache Storm przed wersją 3.1.0 istnieje podatność: dekoder Netty jest instalowany przed uwierzytelnianiem i przetwarza ramki bez weryfikacji, co pozwala nieuwierzytelnionemu atakującemu na alokację dużych buforów i potencjalne przeciążenie pamięci roboczych.
- CVE-2026-82441Krytyczne
Podatność w Apache Storm pozwala osobie przesyłającej topologię na usunięcie blobów należących do innych topologii poprzez podanie ich kluczy w listach `dependency_jars` i `dependency_artifacts`. Ponadto, brak walidacji może doprowadzić do sytuacji, w której Nimbus nie utrzyma przywództwa, co uniemożliwi działanie klastra.
- CVE-2026-82439Krytyczne
Serwer DRPC w Apache Storm utrzymuje mapę nazw funkcji do kolejek żądań, a wpisy nigdy nie są usuwane. Atakujący może wysyłać dowolne nazwy funkcji bez uwierzytelnienia (ponieważ `drpc.authorizer` jest domyślnie wyłączony), co prowadzi do niekontrolowanego wzrostu pamięci i ostatecznie do wyczerpania sterty.
- CVE-2015-3188Krytyczne
Demon UI w Apache Storm w wersji 0.10.0 przed 0.10.0-beta1 umożliwia zdalnym atakującym wykonanie dowolnego kodu poprzez nieokreślone wektory.
- CVE-2026-82438Wysokie
W komponentach HTTP Apache Storm wykryto trzy niezależne mechanizmy, które pozwalały stronie internetowej z niezwiązanego originu odczytywać odpowiedzi serwowane uwierzytelnionemu użytkownikowi. Logviewer odbijał nagłówek Origin w Access-Control-Allow-Origin wraz z Access-Control-Allow-Credentials: true, wspólny filtr CORS był błędnie skonfigurowany (podano nazwę nagłówka odpowiedzi zamiast parametru inicjalizacyjnego, przez co kontener stosował własne domyślne ustawienia zezwalające na poświadczenia), a UI i Logviewer opakowywały odpowiedzi API w JSONP dla każdego żądania GET. W każdym przypadku strona odwiedzona przez uwierzytelnionego operatora może w jego imieniu odczytać dane klastra, topologii i logi.
- CVE-2026-82434Średnie
Gdy skonfigurowane jest uwierzytelnianie ZooKeeper, Storm celowo zachowuje storm.zookeeper.topology.auth.payload w konfiguracji topologii, a Nimbus udostępnia tę konfigurację każdemu użytkownikowi z uprawnieniami tylko do odczytu topologii. Użytkownik z uprawnieniami wyłącznie do przeglądania topologii otrzymuje poświadczenie ZooKeeper, które ma uprawnienia zapisu i pozwala fałszować lub usuwać stan topologii. Poświadczenie trafia także do logów (INFO w kliencie zgłoszeń, DEBUG w handlerach SASL), a poprawka w wersji 3.1.0 usuwa je z konfiguracji i logów.
- CVE-2026-82433Średnie
W Apache Storm przed wersją 3.1.0 funkcja getNimbusConf zwraca pełną konfigurację bez maskowania poufnych danych, a endpoint UI /api/v1/cluster/configuration nie wymaga odpowiedniej autoryzacji, co może ujawnić hasła i klucze.
- CVE-2026-82432Wysokie
W Apache Storm przed wersją 3.1.0 operacja rebalance nie ponownie weryfikuje mapy blobstore względem uprawnień, a także listBlobs nie sprawdza autoryzacji, co pozwala uprawnionemu użytkownikowi na dostęp do niedozwolonych blobów i ujawnienie metadanych.
- CVE-2026-82430Wysokie
W podatności CVE-2026-82430 w Apache Storm program setuid-root `worker-launcher` najpierw zmienia właściciela całego katalogu workera na niezaufanego użytkownika topologii, a dopiero potem odczytuje plik poleceń zapisany w tym katalogu. Plik jest otwierany bez flagi `O_NOFOLLOW` i bez ponownej weryfikacji właściciela, więc w oknie między zmianą właściciela a odczytem najemca może podmienić jego zawartość. W ścieżce Docker podmienione polecenie jest wykonywane z rzeczywistym uid 0, a w ścieżce OCI możliwe jest bind-mountowanie dowolnych ścieżek hosta z prawem zapisu.
Oryginalny opis (angielski, źródło NVD)
Description `SimpleACLAuthorizer` evaluated the user-level command set by returning early when `nimbus.users` was empty, before `nimbus.groups` was considered. An operator who restricted cluster access by group alone, leaving `nimbus.users` unset, therefore received no restriction at all: every authenticated principal was permitted every user-level operation, including `submitTopology`, `beginFileUpload` and `getNimbusConf`. `docs/SECURITY.md` presents `nimbus.groups` as a supported way to lock down a cluster, so a deployment following the documentation could believe it was restricted while it was not. The failure is silent; nothing in the logs or the configuration indicates that the group list is being ignored. Both lists left empty continues to mean that no restriction is configured, which is the shipped default and is unchanged. Mitigation Upgrade to 3.1.0, where `nimbus.groups` is evaluated whether or not `nimbus.users` is set. Users who cannot upgrade immediately should additionally populate `nimbus.users` with the intended principals, since a non-empty user list causes the group list to be evaluated on affected versions. Operators should review Nimbus access logs for operations by principals outside the intended groups. Note that after upgrading, a cluster configured with `nimbus.groups` alone becomes restrictive for the first time. This includes `NimbusClient`, which calls `getLeader` on every connection, so clients outside the configured groups will begin to be refused. Credit The ASF -- found using Claude agents to study the security of open-source projects, validated and reported by Apache Storm.

