IPBUF安全漏洞报告
English
CVE-2026-35565 CVSS 5.4 中危

CVE-2026-35565 Apache Storm UI 存储型XSS漏洞

披露日期: 2026-04-13

漏洞信息

漏洞编号
CVE-2026-35565
漏洞类型
存储型跨站脚本 (Stored XSS)
CVSS评分
5.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
Apache Storm

相关标签

XSSApache Storm存储型跨站脚本权限提升CVE-2026-35565

漏洞概述

Apache Storm UI组件存在存储型跨站脚本(XSS)漏洞。由于可视化组件在解析拓扑元数据时未进行安全过滤,直接通过innerHTML插入HTML。拥有拓扑提交权限的攻击者可植入恶意代码,当管理员查看拓扑时触发脚本,进而窃取会话凭证或实现权限提升。

技术细节

该漏洞源于Apache Storm UI的可视化组件缺乏输入校验。系统在`parseNode()`和`parseEdge()`函数中,直接使用`innerHTML`将拓扑元数据(如组件ID、流名称、分组值)渲染到HTML页面,且未经过任何转义处理。攻击者只需具备拓扑提交权限,即可构造包含恶意HTML标签(例如在Bolt ID中植入带有`onerror`事件的img标签)的拓扑定义。当该拓扑被提交后,恶意数据持久化存储,经由Nimbus和Thrift API传输,最终在vis.js生成工具提示时被解析为可执行脚本。在多租户场景下,当管理员访问受感染的拓扑可视化页面时,恶意脚本自动运行,导致管理员会话被劫持,从而实现权限提升。

攻击链分析

STEP 1
1. 获取权限
攻击者获取Apache Storm的拓扑提交权限。
STEP 2
2. 构造拓扑
攻击者编写恶意拓扑代码,在组件ID(如Bolt ID)中注入XSS Payload(例如包含onerror事件的HTML标签)。
STEP 3
3. 提交拓扑
攻击者将恶意拓扑提交至Apache Storm Nimbus,恶意元数据被存储并传输。
STEP 4
4. 触发漏洞
管理员或运维人员登录Storm UI并查看该拓扑的可视化图表。
STEP 5
5. 执行攻击
UI解析未过滤的元数据,在浏览器中渲染恶意脚本,导致XSS攻击,可能窃取管理员Cookie或执行进一步操作。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// PoC: Create a topology with a malicious Bolt ID // Attacker needs topology submission rights public class MaliciousTopology { public static void main(String[] args) throws Exception { TopologyBuilder builder = new TopologyBuilder(); // Malicious payload containing XSS String xssPayload = "<img src=x onerror=alert('XSS')>"; builder.setSpout("spout", new TestSpout()); // Inject payload into component ID builder.setBolt(xssPayload, new TestBolt()) .globalGrouping("spout"); // Submit topology to Nimbus // When admin views UI, the alert triggers } }

影响范围

Apache Storm < 2.8.6

防御指南

临时缓解措施
如果无法立即升级,应对可视化JavaScript文件中的parseNode()和parseEdge()函数进行修补,对所有API提供的值(如nodeId, :capacity等)进行HTML转义后再插入HTML字符串。同时,作为纵深防御措施,应严格限制拓扑提交权限,仅授予受信任用户。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表