CVE-2025-4123: CVE-2025-4123: A cross-site scripting (XSS) vulnerability exists in Grafana caused by combining a client …
grafana · grafana · NVD published 2025-05-22 · posted 2025-05-22 · last modified 2026-06-17
What it is
A cross-site scripting (XSS) vulnerability exists in Grafana caused by combining a client path traversal and open redirect. This allows attackers to redirect users to a website that hosts a frontend plugin that will execute arbitrary JavaScript. This vulnerability does not require editor permissions and if anonymous access is enabled, the XSS will work. If the Grafana Image Renderer plugin is installed, it is possible to exploit the open redirect to achieve a full read SSRF. The default Content-Security-Policy (CSP) in Grafana will block the XSS though the `connect-src` directive.
| Weakness | CWE-79CWE-601 |
|---|---|
| CVSS vector | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N (source: [email protected]) |
| ATT&CK tactics | Initial Access → Execution |
Exploitation evidence
First exploit evidence seen: 2025-05-22 (earliest date across the sources below).
Exploited in the wild
No source on this site lists in-the-wild exploitation yet (CISA KEV, VulnCheck KEV).
Public exploit code
Exploit-DB
- EDB-52491: Grafana 11.6.0 - SSRF (2026-04-06)
GitHub proof-of-concept repositories
5 public repositories from 5 accounts, first seen 2025-05-22. Most starred: NightBloodZ/CVE-2025-4123 (58 stars), view repository.
Verify before running: public PoCs can be malicious. Read the code and only run it in an isolated lab. A PoC means exploit code is public, not that this CVE is exploited in the wild.
Sources: Exploit-DB (OffSec) · nomi-sec/PoC-in-GitHub.
Defend the Chain
The attack chain for CVE-2025-4123 laid across the MITRE ATT&CK Enterprise tactics. Solid cards come from the MITRE CTID KEV mappings; dashed cards are inferred by CVERadar from the CWE or description. Correct defences are real ATT&CK mitigations for that technique.
Pick a red technique card on the board, then choose the defence that stops it.
Defend against T1189 Drive-by Compromise Inferred
Inferred from CWE CWE-79
How to fix it
Fixed versions
- grafana grafana: upgrade to 10.4.18 or later
- grafana grafana: upgrade to 11.2.9 or later (affected from 11.2.0)
- grafana grafana: upgrade to 11.3.6 or later (affected from 11.3.0)
- grafana grafana: upgrade to 11.4.4 or later (affected from 11.4.0)
- grafana grafana: upgrade to 11.5.4 or later (affected from 11.5.0)
- grafana grafana: upgrade to 11.6.1 or later (affected from 11.6.0)
Derived from the NVD CPE configuration (versionEndExcluding / versionEndIncluding). Always confirm with the vendor advisory.
Vendor advisories and patches
- https://grafana.com/blog/2025/05/23/grafana-security-release-medium-and-high-severity-security-fixes-for-cve-2025-4123-and-cve-2025-3580/ (Vendor Advisory)
- https://grafana.com/security/security-advisories/cve-2025-4123/ (Vendor Advisory)
MITRE ATT&CK mitigations for this chain
- M1050 Exploit Protection (for T1189) : Security applications that look for behavior used during exploitation such as Windows Defender Exploit Guard (WDEG) and the Enhanced Mitigation Experience Toolkit (EMET) can be used to mitigate some exploitation behavior. Control flow integrity checking is another way to potentially identify and stop a software exploit
- M1051 Update Software (for T1189) : Ensuring that all browsers and plugins are kept updated can help prevent the exploit phase of this technique. Use modern browsers with security features turned on.
- M1048 Application Isolation and Sandboxing (for T1189) : Browser sandboxes can be used to mitigate some of the impact of exploitation, but sandbox escapes may still exist. Other types of virtualization and application microsegmentation may also mitigate the impact of client-side exploitation. The risks of additional exploits and weaknesses in implementation may still exist
- M1021 Restrict Web-Based Content (for T1189, T1566.002, T1059.007) : Adblockers can help prevent malicious code served through ads from executing in the first place. Script blocking extensions can also help to prevent the execution of JavaScript. Consider disabling browser push notifications from certain applications and browsers.
- M1017 User Training (for T1189, T1566.002) : Train users to be aware of access or manipulation attempts by an adversary to reduce the risk of successful spearphishing, social engineering, and other techniques that involve user interaction.
- M1054 Software Configuration (for T1566.002) : Use anti-spoofing and email authentication mechanisms to filter messages based on validity checks of the sender domain (using SPF) and integrity of messages (using DKIM). Enabling these mechanisms within an organization (through policies such as DMARC) may enable recipients (intra-org and cross domain) to perform simil
- M1047 Audit (for T1566.002) : Audit applications and their permissions to ensure access to data and resources are limited based upon necessity and principle of least privilege.
- M1018 User Account Management (for T1566.002) : Azure AD Administrators apply limitations upon the ability for users to grant consent to unfamiliar or unverified third-party applications.
- M1040 Behavior Prevention on Endpoint (for T1059.007) : On Windows 10, enable Attack Surface Reduction (ASR) rules to prevent [JavaScript](https://attack.mitre.org/techniques/T1059/007) scripts from executing potentially malicious downloaded content .
- M1038 Execution Prevention (for T1059.007) : Denylist scripting where appropriate.
Detection Generic guidance
- Initial Access: Alert on unusual requests to the affected service (odd paths, oversized payloads, exploit strings) in WAF, reverse-proxy and application logs.
- Execution: Watch for the service process spawning shells or script interpreters (cmd.exe, powershell, sh, bash, python) via EDR process-tree rules.
Response checklist Generic guidance
- Inventory: find every instance of the affected product and version (include internet-facing and forgotten ones).
- Patch or mitigate per the vendor advisory; if you cannot patch, remove internet exposure or apply the vendor workaround.
- Assume compromise if the system was exposed before patching: hunt for the indicators in the advisory and review logs back to the disclosure date.
- Rotate credentials and secrets stored on or used by the affected system if compromise cannot be ruled out.