On Jan. 16, an external security researcher, Jasu Viding contacted Grafana to disclose an XSS vulnerability in the way that Grafana handles data sources.
An attacker could serve HTML content through the Grafana datasource or plugin proxy and trick a user to visit this HTML page using a specially crafted link and execute a Cross-site Scripting (XSS) attack. The attacker could either compromise an existing datasource for a specific Grafana instance or either set up its own public service and instruct anyone to set it up in their Grafana instance.
We believe that this vulnerability is rated at CVSS 6.8 (CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:N/A:N).
Impact
Should an existing data source connected to Grafana be compromised, it could be used to inappropriately gain access to other data sources connected to the same Grafana org.
Affected versions with MEDIUM severity
To be impacted, all of the following must be applicable:
For data source proxy:
A Grafana instance running version v2.0.0-beta1 up to v8.3.4.
A Grafana HTTP-based datasource configured with Server as Access Mode and a URL set.
Attacker to be in control of the HTTP server serving the URL of above data source.
A specially crafted link pointing at http://host/api/datasources/proxy/"data source id" and attacker somehow tricks a user of the above Grafana instance to click/visit the link.
A user that’s already authenticated to above Grafana instance clicks on/visits the specially crafted link sent/provided by the attacker.
For plugin proxy:
A Grafana instance running version v2.0.0-beta1 up to v8.3.4.
A Grafana HTTP-based app plugin configured and enabled with a URL set.
Attacker to be in control of the HTTP server serving the URL of above app.
A specially crafted link pointing at http://host/api/plugin-proxy/"plugin id" and attacker somehow tricks a user of the above Grafana instance to click/visit the link.
A user that’s already authenticated to above Grafana instance clicks on/visits the specially crafted link sent/provided by the attacker.
Backend plugin resource:
A Grafana instance running version v7.0.0-beta1 up to v8.3.4.
Attacker potentially needs to craft a custom plugin to be able to pull this off, but if an attacker can compromise/control the backend service that a backend plugin connects to, it might be possible to serve HTML content via the /api/plugins/"plugin Id"/resources* or /api/datasources/"id"/resources* routes.
A specially crafted link pointing at /api/plugins/"plugin Id">/resources* or /api/datasources/"id"/resources* and attacker somehow tricks a user of the above Grafana instance to click/visit the link.
A user that’s already authenticated to above Grafana instance clicks on/visits the specially crafted link sent/provided by the attacker.
2022-01-17 16:01 Begin mitigation for Grafana Cloud
2022-01-18 15:12 Similar report received
2022-01-19 09:57 CVE requested
2022-01-19 13:21 PR with fix opened
2022-01-19 19:53 GitHub issues CVE-2022-21702
2022-01-20 12:43 Second similar report received
2022-01-21 14:30 Private release planned for 2022-01-25, and public release planned for 2022-02-01
2022-01-25 12:00 Private release with patches
2022-02-01 12:00 During the public release process, we realized that private 7.x release was incomplete. Abort public release, send second private release to customers using 7.x
2022-02-08 13:00 Public release
Acknowledgement
We would like to thank Jasu Viding for responsibly disclosing the vulnerability.
Reporting security issues
If you think you have found a security vulnerability, please send a report to [email protected]. This address can be used for all of Grafana Labs' open source and commercial products (including, but not limited to Grafana, Grafana Cloud, Grafana Enterprise, and grafana.com). We can accept only vulnerability reports at this address. We would prefer that you encrypt your message to us by using our PGP key. The key fingerprint is
F988 7BEA 027A 049F AE8E 5CAA D125 8932 BE24 C5CA
The key is available from keyserver.ubuntu.com.
Security announcements
We maintain a security category on our blog, where we will always post a summary, remediation, and mitigation details for any patch containing security fixes.
Grafana is an open-source platform for monitoring and observability. In affected versions an attacker could serve HTML content thru the Grafana datasource or plugin proxy and trick a user to visit this HTML page using a specially crafted link and execute a Cross-site Scripting (XSS) attack. The attacker could either compromise an existing datasource for a specific Grafana instance or either set up its own public service and instruct anyone to set it up in their Grafana instance. To be impacted, all of the following must be applicable. For the data source proxy: A Grafana HTTP-based datasource configured with Server as Access Mode and a URL set, the attacker has to be in control of the HTTP server serving the URL of above datasource, and a specially crafted link pointing at the attacker controlled data source must be clicked on by an authenticated user. For the plugin proxy: A Grafana HTTP-based app plugin configured and enabled with a URL set, the attacker has to be in control of the HTTP server serving the URL of above app, and a specially crafted link pointing at the attacker controlled plugin must be clocked on by an authenticated user. For the backend plugin resource: An attacker must be able to navigate an authenticated user to a compromised plugin through a crafted link. Users are advised to update to a patched version. There are no known workarounds for this vulnerability.
CVE-2026-42127CAO 7.5The public dashboard query endpoint does not limit request body size before processing, allowing unauthenticated attackers to trigger excess…
CVE-2026-9029TRUNG BÌNH 5.4A user with Editor permissions can place a malicious script in the attribution field of a Geomap panel's XYZ tile layer via a template varia…
CVE-2026-42129CAO 7.7A user with Viewer permissions can use a path traversal in the Loki data source plugin to reach administrative Loki endpoints and read sensi…
CVE-2026-10601TRUNG BÌNH 4.3A user with Viewer permissions can use specially crafted requests to the Tempo and Loki data source plugins to reach unintended backend endp…
CVE-2026-33381CAO 8.1When a user's access to mint tokens for a service account is revoked, it is sometimes still possible to do so for a few seconds after the ev…