CVE-2026-35565
MediumCVSS 5.4Exploitation Probability (EPSS)
Low risk40th percentile - higher than 40% of all known CVEs
Summary
A Stored Cross-Site Scripting (XSS) vulnerability in Apache Storm UI allows topology metadata (component IDs, stream names, grouping values) to be interpolated into HTML without sanitization via parseNode() and parseEdge(). An authenticated user with topology submission rights can craft a topology containing malicious HTML/JavaScript in component identifiers, which is then executed in an operator's or administrator's browser.
Risk Assessment
In multi-tenant deployments where less-trusted users can submit topologies and the UI is accessed by administrators, this enables privilege escalation through script execution in an admin's browser session.
Recommendation
Upgrade Apache Storm to version 2.8.6. If immediate upgrade is not possible, monkey-patch the parseNode() and parseEdge() functions in the visualization JavaScript file to HTML-escape all API-supplied values (nodeId, :capacity, :latency, :component, :stream, :grouping) before interpolation into tooltip HTML, and restrict topology submission to trusted users via Nimbus ACLs.
Other vulnerabilities in Apache Storm
See all- CVE-2014-0115High
Directory traversal vulnerability in the log viewer in Apache Storm 0.9.0.1 allows remote attackers to read arbitrary files via a .. (dot dot) in the file parameter to log.
- CVE-2026-82435Critical
In Apache Storm before 3.1.0, a vulnerability exists: the Netty decoder is installed before authentication and processes frames without verification, allowing an unauthenticated attacker to allocate large buffers and potentially cause memory pressure on workers.
- CVE-2026-82431Critical
In Apache Storm's SimpleACLAuthorizer, authorization returned early when nimbus.users was empty, skipping evaluation of nimbus.groups. As a result, a cluster restricted by group alone allowed every authenticated principal to perform all user-level operations, including submitTopology, beginFileUpload and getNimbusConf. The issue is fixed in version 3.1.0.
- CVE-2026-82441Critical
A vulnerability in Apache Storm allows a topology submitter to delete blobs belonging to other topologies by listing their keys in `dependency_jars` and `dependency_artifacts`. Additionally, missing validation can cause Nimbus to fail to retain leadership, rendering the cluster inoperative.
- CVE-2026-82439Critical
The DRPC server in Apache Storm keeps a map from function names to request queues, and entries are never removed. An attacker can send arbitrary function names without authentication (as `drpc.authorizer` is disabled by default), leading to unbounded memory growth and eventual heap exhaustion.
- CVE-2015-3188Critical
The UI daemon in Apache Storm 0.10.0 before 0.10.0-beta1 allows remote attackers to execute arbitrary code via unspecified vectors.
- CVE-2026-82438High
Three separate mechanisms in Apache Storm's HTTP components allowed a web page on an unrelated origin to read responses served to an authenticated user. The Logviewer reflected the request's Origin header in Access-Control-Allow-Origin while also sending Access-Control-Allow-Credentials: true, the shared CORS filter was misconfigured (a response header name was supplied where an initialisation parameter name was expected, so the container applied its own credential-allowing defaults), and the UI and Logviewer wrapped API responses in a caller-supplied JSONP callback for every GET request. In each case, a page visited by an authenticated operator can read cluster, topology and log data on their behalf.
- CVE-2026-82434Medium
When ZooKeeper authentication is configured, Storm deliberately retains storm.zookeeper.topology.auth.payload in the topology configuration, and Nimbus serves that configuration to any caller with read-only topology permissions. A user granted only topology view access receives the ZooKeeper credential, which is write-capable and allows forging or removing topology state. The credential also reaches logs (INFO in the submission client, DEBUG in SASL handlers), and version 3.1.0 removes it from the served configuration and logs.
- CVE-2026-82433Medium
In Apache Storm before 3.1.0, the getNimbusConf function returns full configuration without redaction, and the UI endpoint /api/v1/cluster/configuration lacks proper authorization, potentially exposing passwords and keys.
- CVE-2026-82432High
In Apache Storm before 3.1.0, the rebalance operation does not revalidate the blobstore map for permissions, and listBlobs lacks authorization checks, allowing an authorized user to access disallowed blobs and disclose metadata.
Original NVD description (English source)
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.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

