CVE-2026-82430
WysokieCVSS 7.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 4 - wyżej niż 4% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Atakujący z uprawnieniami użytkownika topologii może uzyskać wykonanie poleceń jako root na hoście lub uruchomić kontener z dostępem do systemu plików hosta, co prowadzi do pełnego przejęcia węzła. Możliwe jest także uruchomienie procesu jako inny najemca poprzez pole `username`.
Rekomendacja
Należy zaktualizować Apache Storm do wersji 3.1.0, a po aktualizacji przebudować i ponownie zainstalować launcher. Jeśli aktualizacja nie jest możliwa, należy wyłączyć izolację workerów Docker i OCI lub ograniczyć zgłaszanie topologii na dotkniętych supervisorach do zaufanych podmiotów.
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-82431Krytyczne
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.
- 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.
Oryginalny opis (angielski, źródło NVD)
Description When launching a Docker or OCI worker, the setuid-root `worker-launcher` first changes ownership of the entire worker directory to the untrusted topology user, and only afterwards reads and acts on the command file that the supervisor wrote into that same directory. The file is opened without `O_NOFOLLOW` and without re-verifying its owner, so between the ownership change and the read the tenant can replace its contents. For the Docker path the parsed command is executed with real uid 0, and the command sanitiser is not a privilege boundary: it admits `-v` with an arbitrary source, `--device`, `--cap-add`, `--security-opt`, `--user` and `--net`, and copies positional arguments through verbatim. A rewritten file therefore yields an attacker-authored, root-equivalent container invocation with the host filesystem available. For the OCI path the same rewrite window applies, and mount validation is structural only, with no source or destination allow-list, so arbitrary host paths can be bind-mounted read-write into the container. The `username` field of the command file is likewise attacker-settable and is checked only against non-root and minimum-uid rules, permitting execution as another tenant's uid. Mitigation Upgrade to 3.1.0, where the command file is validated before the ownership change and re-verified on open, and where mount sources and destinations are constrained by configuration. Users who cannot upgrade immediately should disable Docker and OCI worker isolation, or restrict topology submission on affected supervisors to trusted principals. Note that the launcher must be rebuilt and reinstalled after upgrading. Credit The ASF -- found using Claude agents to study the security of open-source projects, validated and reported by Apache Storm.

