
Cliente proof-of-concept e laboratório Docker que reproduzem o CVE-2026-15583, um SSRF de confused deputy não autenticado no Grafana MCP Server que vaza tokens de conta de serviço via X-Grafana-URL.
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · CVE-2026-15583
Grafana MCP Server 0.17.0 - Grafana Labs
Sou @abraxas_null. Laboratório em loopback. O cliente é CVE-2026-15583-Abraxas-Labs.py.
Confused deputy. O MCP HTTP não autenticado recebe X-Grafana-URL da requisição e o token da conta de serviço do ambiente, e então faz GET {url}/api/frontend/settings com Authorization: Bearer. Um X-Grafana-Service-Account-Token vazio recorre ao ambiente. Corrigido em 0.17.1 ao não enviar o token configurado para destinos não intencionais.
| CVE | CVE-2026-15583 · CVE.org |
| CWE | CWE-918 |
| CVSS | Alto: 8.6 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N |
| Produto | Grafana MCP Server |
| Afetado | todas as versões até 0.17.0 (inclusive) |
| Corrigido | 0.17.1 e posteriores |
| Autenticação | não autenticado |
| Licença | GNU Affero GPL v3.0 |
| Laboratório | apenas 127.0.0.1 |
POST /mcp ou GET /sse com X-Grafana-URL apontando para um coletor que você controla. O servidor envia GRAFANA_SERVICE_ACCOUNT_TOKEN (ou GRAFANA_API_KEY) para você. Isso é SSRF com credenciais, além de roubo de token. O oráculo do laboratório é o token testemunha no cabeçalho Authorization do coletor.
Mapeei extractKeyGrafanaInfoFromReq / ExtractGrafanaInfoFromHeaders, depois NewGrafanaClient fetchPublicURL, depois AuthRoundTripper. Montei o mcp-grafana 0.17.0 com um coletor em loopback.
Controles de falha já presentes no laboratório: eval/base64/system não é a testemunha; um reverse shell não é a testemunha; a 0.17.1 não deve enviar o token do ambiente para o coletor.
Porta 18099. mcp-grafana 0.17.0. SSE ou streamable-http acessível. Token de ambiente definido. Coletor na rede do compose.
Alvo apenas 127.0.0.1:18099 (ou o loopback que você vinculou).
python3 CVE-2026-15583-Abraxas-Labs.py
ou
cd lab
./run.sh
Testemunha: o cabeçalho Authorization do coletor contém GHSA15583-WITNESS.
Formas de perder sem aprender nada:
Atualize o Grafana MCP Server para 0.17.1 ou mais recente. Execute novamente CVE-2026-15583-Abraxas-Labs.py contra a versão corrigida: o coletor não deve ver o token de ambiente.
Abraxas Labs: abraxaslabs.tech · github.com/abraxas · @abraxas_null
GNU Affero GPL v3.0. Consulte LICENSE.
O cliente se comunica com o loopback. O uso contra sistemas que você não possui não é autorizado pela Abraxas Labs. Sem garantias.