TGViewer
Четыре луча Четыре луча @four_rays · 4.02K subscribers
Post #156 4.03K
Повышение привилегий в Grafana Enterprise (CVE-2025-41115)

CVE-2025-41115 — уязвимость связана с ошибкой в обработке идентификаторов пользователей через SCIM. Система позволяет создать пользователя с внешним идентификатором (externalId) числового вида, например «1», который может совпадать или интерпретироваться как внутренний ID пользователя в Grafana.

Уязвимые версии Grafana Enterprise: 12.0.0 ≤ версия ≤ 12.2.1

😬 Метрики
Base Score: 10.0 CRITICAL
CWE: CWE-266


😬 Об уязвимости
Она возникает при установке флагов [feature_toggles] enableSCIM = true и [auth.scim] user_sync_enabled = true в конфигурации Grafana.

Grafana напрямую сопоставляет SCIM externalId с внутренним user.uid, поэтому числовые значения «1» и другие могут быть интерпретированы как внутренние числовые идентификаторы пользователей. ExternalId — этот параметр контролирует злоумышленник в POST-запросах.

Пример запроса, который эксплуатирует уязвимость:
POST /api/scim/v2/Users HTTP/1.1
Host: 127.0.0.1:3000
User-Agent: python-requests/2.28.1
Accept-Encoding: gzip, deflate, br
Accept: */*
Connection: keep-alive
Authorization: Bearer glsa_00000000000000000000000000000000_00000000000000000000000000000000
Content-Type: application/scim+json
Content-Length: 239

{"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"], "userName": "adminLol", "externalId": "1", "name": {"formatted": "Pwned User"}, "emails": [{"value": " adminLol ", "primary": true}], "active": true}


/api/scim/v2/Users — конечная точка для управления пользователями. Например, чтобы создать пользователя через POST-запрос.

Authorization — заголовок авторизации: его значение могут скомпрометировать или использовать дефолтное значение, как в публичных эксплойтах.

Body — это спецификация SCIM RFC 7644. В теле запроса и содержится параметр externalId, который вызывает коллизию.

😬 Как защищаться
1) Регулярно обновляться.

2) Анализировать запросы к /api/scim/v2/Users из внешних сетей с заголовком Authorization, у которого значения отличаются от сгенерированных или выданных токенов.

3) Анализировать запросы к /api/scim/v2/Users из внешних сетей с параметром externalId, который содержит небольшие значения, например 1-10.

4) Если нельзя быстро обновиться, то установить enableSCIM = false и [auth.scim] user_sync_enabled = false.

Другой вариант — написать блокирующие IDS/WAF-правила на POST-запросы к /api/scim/v2/Users со значением externalId, которое равно числам в диапазоне, например 1-10.
  • ❤ 13
  • 🔥 3
  • ✍ 1
  • 👍 1
  • 👀 1
  • 👾 1
More from @four_rays
  1. Sep 14, 2026💣 Ржавый код: почему все переходят на Rust и когда аналитику можно его не реверсить Rust…
  2. Sep 11, 2026😳 DFIR diggin’ deeper: неочевидные источники артефактов при расследовании атак Когда стан…
  3. Sep 7, 2026😀 Call for Papers на технострим SOC Forum 2026 еще открыт! Темы: 1️⃣ Offense: актуальные…
  4. Aug 31, 2026☀️ Zimbra, все еще скрывающая боль Ранее мы уже рассказывали о расследовании «Zimbra, скры…
  5. Aug 19, 2026💡 Разберемся с непопулярными артефактами на OffZone 2026 Выбираете, какие выступления пос…
  6. Aug 17, 2026😀 Admin may cry CVE-2026-41452 — уязвимость, позволяющая перезаписать данные администрато…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →