CVE-2026-40557Apache Storm的Prometheus报告器组件存在证书验证不当漏洞。当管理员启用特定的跳过TLS验证配置时,该组件会全局设置JVM的默认SSL上下文。这导致不仅Prometheus连接跳过验证,Storm守护进程中所有后续的HTTPS连接(包括ZooKeeper、Thrift等)都会静默信任所有证书。攻击者可利用此漏洞拦截集群状态、拓扑数据和管理凭据,实施中间人攻击。
该漏洞的根本原因在于Apache Storm的`PrometheusPreparableReporter`类在处理TLS配置时存在全局副作用。为了支持`storm.daemon.metrics.reporter.plugin.prometheus.skip_tls_validation`配置项,该类实现了一个名为`INSECURE_TRUST_MANAGER`的信任管理器,其`checkClientTrusted`和`checkServerTrusted`方法为空实现,意味着接受任何证书。最严重的问题在于`INSECURE_CONNECTION_FACTORY`中调用了`SSLContext.setDefault(sslContext)`。这个Java原生方法会修改整个JVM进程的默认SSL上下文,而不仅仅是针对Prometheus的连接。因此,当管理员启用该配置时,意图仅针对Prometheus PushGateway的TLS绕过会扩散到Storm守护进程的所有HTTPS通道,包括ZooKeeper、Thift、Netty和UI连接。攻击者利用此漏洞,可以在网络中通过提供自签名或恶意生成的证书,成功建立TLS连接并拦截集群通信,实施中间人攻击。