Apache 软件基金会于 2026 年 9 月 14 日同日披露 Apache Storm 两个严重漏洞。CVE-2026-82434 在 CVSS 4.0 体系下被评为满分 10.0:集群启用 ZooKeeper 认证时,Nimbus 会把包含 ZooKeeper 认证载荷的拓扑配置原样下发给任何持有只读拓扑权限的调用方。同批的 CVE-2026-82435(CVSS 9.8)位于 Netty 消息解码器,认证前即可触发内存耗尽,公开信息显示已有可用利用代码。
事件概述
受影响版本为 Apache Storm 3.0.0 至 3.1.0 之前的所有版本,影响 Nimbus、Client 与 Worker 组件,官方修复版本为 3.1.0。值得注意的细节是:ASF 说明这两个漏洞是使用 Claude 智能体研究开源项目安全性时发现、随后经 Apache Storm 团队验证确认的——AI 辅助挖洞已经进入实际产出阶段,而不是演示阶段。
技术细节
Storm 出于 worker 需要,会刻意在拓扑配置中保留 storm.zookeeper.topology.auth.payload。问题在于 Nimbus 把这份配置原封不动返回给任何持有只读拓扑权限的调用方,于是一个「只能查看拓扑」的账号就拿到了集群的 ZooKeeper 凭据。
只读拓扑权限账号 → GET 拓扑配置 → 取得 storm.zookeeper.topology.auth.payload
→ 该凭据 ACL 为可写 → 伪造或删除 worker 心跳 / 背压 / 错误状态
该凭据并非只读:集群状态实现为 worker 心跳、背压与错误状态使用可写 ACL,持有者可针对目标拓扑伪造或清除这些状态;对 assignments 不具备写权限,因此不是完整接管,但足以扰乱调度与容错判断。凭据的扩散路径不止一条——提交客户端在每次生成载荷时以 INFO 级别写入日志,SASL 处理器以 DEBUG 级别记录,因此该凭据同样进入了日志聚合系统与技术支持包。
CVE-2026-82435 成因不同:worker 的 Netty 消息解码器在 SASL 认证之前就处理数据帧,未认证攻击者只要能访问 worker slot 端口,即可用特制长度字段触发巨量内存分配,造成 worker 崩溃、实时计算管道中断。
影响评估
CVE-2026-82434 的 CVSS 4.0 向量为 AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H,即网络可达、复杂度低、无需权限与交互,且对后续系统同样为高影响。它的危险之处在于把一次「只读授权」直接转换成集群协调层的写凭据——权限模型本该提供的隔离被一次配置下发抹掉。CVE-2026-82435 无凭据要求、已有利用代码,任何暴露在公网或防火墙策略宽松的 Storm worker 端口都在风险内。
修复建议
- 升级 Apache Storm 至 3.1.0 及以上,该版本已从只读调用方获取的配置中移除该载荷,且不再写入日志。
- 无法立即升级时:轮换存量拓扑的
storm.zookeeper.topology.auth.payload;把只读拓扑权限收敛到可信主体;检索 Nimbus 日志、日志聚合系统与支持包中是否残留该凭据值。 - 用防火墙或安全组限制 worker slot 端口仅对必要节点开放,降低 CVE-2026-82435 的可达性。
- 审计持有只读拓扑权限的账号清单及其近期对拓扑配置接口的调用记录,评估凭据外泄后的状态篡改风险。