abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · CVE-2026-15583
Grafana MCP Server 0.17.0 - Grafana Labs
我是 @abraxas_null。回环实验环境。客户端为 CVE-2026-15583-Abraxas-Labs.py。
混淆代理(Confused deputy)。未认证的 MCP HTTP 从请求中获取 X-Grafana-URL,从环境中获取服务账户令牌,然后以 Authorization: Bearer 发起 GET {url}/api/frontend/settings。若 X-Grafana-Service-Account-Token 为空,则回退到环境变量。已在 0.17.1 中修复,修复方式为不将配置的令牌发送到非预期目的地。
| CVE | CVE-2026-15583 · CVE.org |
| CWE | CWE-918 |
| CVSS | High: 8.6 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N |
| 产品 | Grafana MCP Server |
| 受影响版本 | 至 0.17.0(含)的所有版本 |
| 已修复版本 | 0.17.1 及更高版本 |
| 认证 | 无需认证 |
| 许可证 | GNU Affero GPL v3.0 |
| 实验环境 | 仅 127.0.0.1 |
向 /mcp 发送 POST 或向 /sse 发送 GET,并将 X-Grafana-URL 指向你控制的收集器。服务器会将 GRAFANA_SERVICE_ACCOUNT_TOKEN(或 GRAFANA_API_KEY)发送给你。这属于带凭据的 SSRF 加上令牌窃取。实验环境的判定依据是收集器 Authorization 头中的见证令牌。
我梳理了 extractKeyGrafanaInfoFromReq / ExtractGrafanaInfoFromHeaders,然后是 NewGrafanaClient 的 fetchPublicURL,再是 AuthRoundTripper。用回环收集器搭建了 mcp-grafana 0.17.0。
实验环境中已设置失败对照:eval/base64/system 不是见证;反向 shell 不是见证;0.17.1 不得将环境令牌发送到收集器。
端口 18099。mcp-grafana 0.17.0。SSE 或 streamable-http 可访问。已设置环境令牌。收集器位于 compose 网络中。
目标仅限 127.0.0.1:18099(或你绑定的回环地址)。
python3 CVE-2026-15583-Abraxas-Labs.py
或
cd lab
./run.sh
见证:收集器的 Authorization 头中包含 GHSA15583-WITNESS。
毫无收获的失败方式:
将 Grafana MCP Server 更新至 0.17.1 或更高版本。针对已修补的构建重新运行 CVE-2026-15583-Abraxas-Labs.py:收集器必须无法看到环境变量令牌。
Abraxas Labs: abraxaslabs.tech · github.com/abraxas · @abraxas_null
GNU Affero GPL v3.0。参见 LICENSE。
该客户端仅与回环地址通信。将其用于您不拥有的系统未获 Abraxas Labs 授权。不提供任何担保。