
Клиент для демонстрации концепции и лаборатория Docker, воспроизводящие CVE-2026-15583 — неаутентифицированный SSRF типа confused deputy в Grafana MCP Server, который приводит к утечке токенов сервисных аккаунтов через 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. Loopback-лаборатория. Клиент — CVE-2026-15583-Abraxas-Labs.py.
Confused deputy. Неаутентифицированный MCP HTTP берёт X-Grafana-URL из запроса, а токен service-account — из окружения, затем выполняет GET {url}/api/frontend/settings с Authorization: Bearer. Пустой 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 |
POST /mcp или GET /sse с X-Grafana-URL, указывающим на подконтрольный вам коллектор. Сервер передаёт вам GRAFANA_SERVICE_ACCOUNT_TOKEN (или GRAFANA_API_KEY). Это SSRF с учётными данными плюс кража токена. Оракулом в лаборатории служит токен-свидетель в заголовке Authorization коллектора.
Я проследил extractKeyGrafanaInfoFromReq / ExtractGrafanaInfoFromHeaders, затем NewGrafanaClient fetchPublicURL, затем AuthRoundTripper. Развернул mcp-grafana 0.17.0 с loopback-коллектором.
В лаборатории уже есть fail-controls: eval/base64/system — не свидетель; reverse shell — не свидетель; 0.17.1 не должен отправлять токен из окружения коллектору.
Порт 18099. mcp-grafana 0.17.0. Доступны SSE или streamable-http. Токен окружения задан. Коллектор в сети compose.
Цель — только 127.0.0.1:18099 (или тот loopback, который вы привязали).
cd lab
docker compose up --force-recreate
python3 ../CVE-2026-15583-Abraxas-Labs.py
Свидетель: заголовок 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.
Клиент обращается к loopback. Использование его против систем, которыми вы не владеете, не разрешено Abraxas Labs. Без гарантий.