CVE-2026-40179
Prometheus:通过 Web UI 工具提示和指标资源管理器中的指标名称与标签值实现存储型 XSS
- 已发布
- 2026年4月15日
- 已更新
- 2026年4月16日
- 分配 CNA
- GitHub_M
- 观察到的证据
- 2026年8月19日
初级CVSS
nvd · CVSS 4.0
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X低 · 未来 30 天
- 百分位
- 17.9%
- 型号日期
- 2026年9月21日
EPSS 是统计估计,而不是确定性或影响衡量标准。将其与 CVSS、KEV 状态、暴露程度和您的环境相结合。
总结
Prometheus 是一个开源监控系统和时序数据库。3.0 至 3.5.1 以及 3.6.0 至 3.11.1 版本在 Prometheus Web UI 的多个组件中存在存储型跨站脚本漏洞,指标名称和标签值在未经过滤的情况下被注入到 innerHTML 中。在 Mantine UI 和旧版 React UI 中,Graph 页面上的图表工具提示会渲染包含 HTML/JavaScript 的指标名称而不进行净化处理。在旧版 React UI 中,Metric Explorer 模糊搜索结果使用了 dangerouslySetInnerHTML 而未进行转义,热力图单元格工具提示也会在未净化的情况下插入 le 标签值。由于 Prometheus v3.x 默认采用 UTF-8 指标和标签名称验证,<、> 和 " 等字符现在可以合法地出现在指标名称和标签中。攻击者可以通过受感染的抓取目标、remote write 或 OTLP 接收端点注入指标,从而在查看 Graph UI 中该指标的任何 Prometheus 用户的浏览器中执行任意 JavaScript,根据启用的标志,可能实现配置窃取、数据删除或 Prometheus 关闭。此问题已在 3.5.2 和 3.11.2 版本中修复。如果开发者无法立即更新,建议采用以下缓解措施:确保 remote write 接收器(--web.enable-remote-write-receiver)和 OTLP 接收器(--web.enable-otlp-receiver)未暴露给不受信任的来源;确认所有抓取目标均为可信且不受攻击者控制;在可能摄入不受信任数据的环境中,避免启用管理或变更类 API 端点(例如 --web.enable-admin-api 或 --web.enable-lifecycle);并避免点击不受信任的链接,尤其是包含 label_replace 等函数的链接,因为它们可能生成被污染的标签名称和值。
来源
1针对 CVE-2026-40179 的极简 Python PoC:通过未认证的 Prometheus remote_write 注入恶意指标名称,以在 Web 界面中触发存储型 XSS。无需 protobuf 存根。
负责任的使用
仅在您拥有或有权测试的系统上使用漏洞信息。 Kitploit 链接到公共研究元数据,并且不存储漏洞代码或恶意负载。