
CVE-2026-15583を再現するProof-of-conceptクライアントおよびDockerラボ。これはGrafana MCP Serverにおける未認証のconfused-deputy SSRFであり、X-Grafana-URL経由でサービスアカウントトークンを漏洩させる。
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 を付けて {url}/api/frontend/settings に GET します。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 のみ |
X-Grafana-URL を自分が制御するコレクターに向けて POST /mcp または GET /sse を送信します。サーバーは GRAFANA_SERVICE_ACCOUNT_TOKEN(または GRAFANA_API_KEY)をあなたに送信します。これは認証情報を伴う SSRF とトークン窃取です。ラボのオラクルは、コレクターの Authorization ヘッダーに含まれるウィットネストークンです。
extractKeyGrafanaInfoFromReq / ExtractGrafanaInfoFromHeaders、次に NewGrafanaClient の fetchPublicURL、そして AuthRoundTripper をマッピングしました。ループバックコレクターを備えた mcp-grafana 0.17.0 を立ち上げました。
ラボにはすでにフェイルコントロールが用意されています。eval/base64/system はウィットネスではなく、リバースシェルもウィットネスではありません。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
Witness: コレクターの 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 によって認可されていません。保証はありません。