CVE-2026-35565
ŚrednieCVSS 5.4Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 40 - wyżej niż 40% wszystkich znanych CVE
Streszczenie
Podatność typu Stored Cross-Site Scripting (XSS) w Apache Storm UI polega na tym, że metadane topologii (identyfikatory komponentów, nazwy strumieni, wartości grupowania) są wstawiane bez sanityzacji do HTML przez funkcje parseNode() i parseEdge(). Uwierzytelniony użytkownik z prawem do zgłaszania topologii może osadzić złośliwy kod HTML/JavaScript w identyfikatorach, który następnie jest wykonywany w przeglądarce operatora lub administratora.
Ocena ryzyka
W środowiskach wielodostępnych, gdzie mniej zaufani użytkownicy mogą zgłaszać topologie, a UI jest używane przez administratorów, może dojść do eskalacji uprawnień poprzez wykonanie skryptu w sesji przeglądarki administratora.
Rekomendacja
Zaktualizuj Apache Storm do wersji 2.8.6. Jeśli aktualizacja nie jest natychmiast możliwa, zmodyfikuj funkcje parseNode() i parseEdge() w pliku JavaScript wizualizacji, aby escapować wszystkie wartości dostarczane przez API (nodeId, :capacity, :latency, :component, :stream, :grouping) przed wstawieniem do HTML, oraz ogranicz możliwość zgłaszania topologii do zaufanych użytkowników poprzez ACL w Nimbus.
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)
Stored Cross-Site Scripting (XSS) via Unsanitized Topology Metadata in Apache Storm UI Versions Affected: before 2.8.6 Description: The Storm UI visualization component interpolates topology metadata including component IDs, stream names, and grouping values directly into HTML via innerHTML in parseNode() and parseEdge() without sanitization at any layer. An authenticated user with topology submission rights could craft a topology containing malicious HTML/JavaScript in component identifiers (e.g., a bolt ID containing an onerror event handler). This payload flows through Nimbus → Thrift → the Visualization API → vis.js tooltip rendering, resulting in stored cross-site scripting. In multi-tenant deployments where topology submission is available to less-trusted users but the UI is accessed by operators or administrators, this enables privilege escalation through script execution in an admin's browser session. Mitigation: 2.x users should upgrade to 2.8.6. Users who cannot upgrade immediately should monkey-patch the parseNode() and parseEdge() functions in the visualization JavaScript file to HTML-escape all API-supplied values including nodeId, :capacity, :latency, :component, :stream, and :grouping before interpolation into tooltip HTML strings, and should additionally restrict topology submission to trusted users via Nimbus ACLs as a defense-in-depth measure. A guide on how to do this is available in the release notes of 2.8.6. Credit: This issue was discovered while investigating another report by K.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

