
Proof-of-Concept-Client und Docker-Lab zur Reproduktion von CVE-2026-15583, einer unauthentifizierten Confused-Deputy-SSRF im Grafana MCP Server, die Service-Account-Tokens über X-Grafana-URL preisgibt.
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · CVE-2026-15583
Grafana MCP Server 0.17.0 – Grafana Labs
Ich bin @abraxas_null. Loopback-Lab. Der Client ist CVE-2026-15583-Abraxas-Labs.py.
Confused Deputy. Unauthentifiziertes MCP-HTTP übernimmt X-Grafana-URL aus der Anfrage und das Service-Account-Token aus der Umgebung und führt dann GET {url}/api/frontend/settings mit Authorization: Bearer aus. Ein leeres X-Grafana-Service-Account-Token fällt auf die Umgebungsvariable zurück. Behoben in 0.17.1, indem das konfigurierte Token nicht mehr an unbeabsichtigte Ziele gesendet wird.
| CVE | CVE-2026-15583 · CVE.org |
| CWE | CWE-918 |
| CVSS | Hoch: 8.6 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N |
| Produkt | Grafana MCP Server |
| Betroffen | alle Versionen bis einschließlich 0.17.0 |
| Gepatcht | 0.17.1 und später |
| Authentifizierung | unauthentifiziert |
| Lizenz | GNU Affero GPL v3.0 |
| Lab | nur 127.0.0.1 |
POST /mcp oder GET /sse mit X-Grafana-URL, das auf einen von dir kontrollierten Collector zeigt. Der Server liefert GRAFANA_SERVICE_ACCOUNT_TOKEN (oder GRAFANA_API_KEY) an dich aus. Das ist SSRF mit Credentials plus Token-Diebstahl. Das Orakel im Lab ist das Witness-Token im Authorization-Header des Collectors.
Ich habe extractKeyGrafanaInfoFromReq / ExtractGrafanaInfoFromHeaders nachverfolgt, dann NewGrafanaClient fetchPublicURL, dann AuthRoundTripper. Ich habe mcp-grafana 0.17.0 mit einem Loopback-Collector aufgesetzt.
Fail-Controls bereits im Lab: eval/base64/system ist nicht das Witness; eine Reverse Shell ist nicht das Witness; 0.17.1 darf das Env-Token nicht an den Collector senden.
Port 18099. mcp-grafana 0.17.0. SSE oder streamable-http erreichbar. Env-Token gesetzt. Collector im Compose-Netzwerk.
Ziel ausschließlich 127.0.0.1:18099 (oder der Loopback, an den du gebunden hast).
python3 CVE-2026-15583-Abraxas-Labs.py
oder
cd lab
./run.sh
Witness: Der Collector-Authorization-Header enthält GHSA15583-WITNESS.
Möglichkeiten zu verlieren, ohne etwas zu lernen:
Aktualisiere den Grafana MCP Server auf 0.17.1 oder neuer. Führe CVE-2026-15583-Abraxas-Labs.py erneut gegen den gepatchten Build aus: Der Collector darf das Env-Token nicht sehen.
Abraxas Labs: abraxaslabs.tech · github.com/abraxas · @abraxas_null
GNU Affero GPL v3.0. Siehe LICENSE.
Der Client kommuniziert über Loopback. Die Verwendung gegen Systeme, die Ihnen nicht gehören, ist von Abraxas Labs nicht autorisiert. Keine Gewährleistung.