CVE-2026-9029: Grafana OSS stored XSS in geomap panel XYZ tile layer

CVE-2026-9029 · Severity: high · CVSS 7.3 · Published 2026-06-22

Grafana is a popular data visualization platform used to create dashboards for monitoring systems and applications. A security flaw in the geomap panel allows a user with 'Editor' permissions to inject malicious code into a dashboard. When other users view the affected dashboard, this code executes in their browser, potentially allowing the attacker to steal sensitive information or perform actions on their behalf.

Technologies: github.com/grafana/grafana (Go). Vendors: Go.

Quick answers

Is CVE-2026-9029 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-9029 being exploited in the wild.
How severe is CVE-2026-9029?
High severity, with a CVSS score of 7.3, published 22 June 2026.
Which products and versions are affected?
github.com/grafana/grafana (Go) SEMVER:introduced=0, SEMVER:introduced=2.0.0-beta1.
Is there a fix for CVE-2026-9029?
No fixed version is recorded yet. Check the vendor's advisory in the references below. If you run it, Junglewise drafts a mitigation that fits your setup and applies it once you approve, with senior security engineers behind it.
How is CVE-2026-9029 attacked?
It is attacked over the network, in a network appliance.
Am I affected by CVE-2026-9029?
Check whether you run github.com/grafana/grafana (Go) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

Technical details

A stored cross-site scripting (XSS) vulnerability exists in Grafana's geomap panel XYZ tile layer due to a 'sanitize-then-interpolate' ordering bug. The 'sanitizeTextPanelContent()' function is executed on the raw template string before 'getTemplateSrv().replace()' performs variable substitution. Because the substitution uses a glob format without HTML escaping, the resulting unsanitized content is passed directly to OpenLayers via 'element.innerHTML'. An attacker with Editor permissions can set a textbox variable's default value to an XSS payload, which then executes in the context of any user viewing the dashboard. This vulnerability represents a bypass of the previous fix for CVE-2023-0507.

Affected products

  • Grafana Grafana OSS 12.4.0

Identifiers

  • CVE-2026-9029
  • GHSA-9g84-39mm-q4p3
  • GO-2026-6542

Timeline

  • 2026-06-22: disclosed
  • 2026-06-22: advisory

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.