CVE-2026-9029
Stored XSS in the Geomap panel tile-layer attribution
Description
A user with Editor permissions can place a malicious script in the attribution field of a Geomap panel's XYZ tile layer via a template variable. The script then executes in the browser of any user who views the affected dashboard (stored cross-site scripting).
INFO
Published Date :
June 22, 2026, 2:17 p.m.
Last Modified :
July 10, 2026, 4:16 p.m.
Remotely Exploit :
Yes !
Source :
[email protected]
CVSS Scores
| Score | Version | Severity | Vector | Exploitability Score | Impact Score | Source |
|---|---|---|---|---|---|---|
| CVSS | 134c704f-9b21-4f2e-91b3-4a467353bcc0 | |||||
| CVSS 3.1 | HIGH | MITRE-CVE | ||||
| CVSS 3.1 | HIGH | [email protected] | ||||
| CVSS 3.1 | MEDIUM | [email protected] |
Solution
- Ensure variable substitutions are properly escaped.
- Sanitize template string after variable substitution.
- Update the geomap panel to the latest version.
References to Advisories, Solutions, and Tools
Here, you will find a curated list of external links that provide in-depth
information, practical solutions, and valuable tools related to
CVE-2026-9029.
| URL | Resource |
|---|---|
| https://grafana.com/security/security-advisories/cve-2026-9029 | Broken Link |
CWE - Common Weakness Enumeration
While CVE identifies
specific instances of vulnerabilities, CWE categorizes the common flaws or
weaknesses that can lead to vulnerabilities. CVE-2026-9029 is
associated with the following CWEs:
Common Attack Pattern Enumeration and Classification (CAPEC)
Common Attack Pattern Enumeration and Classification
(CAPEC)
stores attack patterns, which are descriptions of the common attributes and
approaches employed by adversaries to exploit the CVE-2026-9029
weaknesses.
We scan GitHub repositories to detect new proof-of-concept exploits. Following list is a collection of public exploits and proof-of-concepts, which have been published on GitHub (sorted by the most recently updated).
Results are limited to the first 15 repositories due to potential performance issues.
The following list is the news that have been mention
CVE-2026-9029 vulnerability anywhere in the article.
The following table lists the changes that have been made to the
CVE-2026-9029 vulnerability over time.
Vulnerability history details can be useful for understanding the evolution of a vulnerability, and for identifying the most recent changes that may impact the vulnerability's severity, exploitability, or other characteristics.
-
CVE Modified by [email protected]
Jul. 10, 2026
Action Type Old Value New Value Changed Affected [{'vendor': 'Grafana', 'product': 'Grafana OSS', 'versions': [{'status': 'affected', 'version': '12.4.0', 'versionType': 'semver'}], 'platforms': ['OnPrem'], 'defaultStatus': 'unaffected'}] [{'vendor': 'Grafana', 'product': 'Grafana OSS', 'versions': [{'status': 'affected', 'version': '12.4.0', 'versionType': 'semver', 'lessThanOrEqual': '12.4.3'}, {'status': 'affected', 'version': '13.0.0', 'versionType': 'semver', 'lessThanOrEqual': '13.0.1'}], 'defaultStatus': 'unaffected'}] Changed Description The geomap panel's XYZ tile layer has a sanitize-then-interpolate ordering bug. sanitizeTextPanelContent() runs on the raw template string before getTemplateSrv().replace() substitutes the variable value, which uses the glob format with no HTML escaping. The result is passed to OpenLayers via element.innerHTML. An Editor can set a textbox variable's default value to an XSS payload that executes for every user who opens the dashboard. This is a bypass of the CVE-2023-0507 fix A user with Editor permissions can place a malicious script in the attribution field of a Geomap panel's XYZ tile layer via a template variable. The script then executes in the browser of any user who views the affected dashboard (stored cross-site scripting). Added CWE CWE-79 -
Initial Analysis by [email protected]
Jun. 30, 2026
Action Type Old Value New Value Added CVSS V3.1 AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N Added CPE Configuration OR *cpe:2.3:a:grafana:grafana:12.4.0:*:*:*:-:*:*:* Added Reference Type Grafana Labs: https://grafana.com/security/security-advisories/cve-2026-9029 Types: Broken Link -
CVE Modified by 134c704f-9b21-4f2e-91b3-4a467353bcc0
Jun. 24, 2026
Action Type Old Value New Value Added CWE CWE-79 Changed SSVC {'id': 'CVE-2026-9029', 'role': 'CISA Coordinator', 'options': [{'exploitation': 'none'}, {'automatable': 'no'}, {'technicalImpact': 'total'}], 'version': '2.0.3', 'timestamp': '2026-06-22T00:00:00+00:00'} {'id': 'CVE-2026-9029', 'role': 'CISA Coordinator', 'options': [{'exploitation': 'none'}, {'automatable': 'no'}, {'technicalImpact': 'total'}], 'version': '2.0.3', 'timestamp': '2026-06-23T03:55:45.644989Z'} -
CVE Modified by 134c704f-9b21-4f2e-91b3-4a467353bcc0
Jun. 23, 2026
Action Type Old Value New Value Changed SSVC {'id': 'CVE-2026-9029', 'role': 'CISA Coordinator', 'options': [{'exploitation': 'none'}, {'automatable': 'no'}, {'technicalImpact': 'total'}], 'version': '2.0.3', 'timestamp': '2026-06-22T15:43:30.408282Z'} {'id': 'CVE-2026-9029', 'role': 'CISA Coordinator', 'options': [{'exploitation': 'none'}, {'automatable': 'no'}, {'technicalImpact': 'total'}], 'version': '2.0.3', 'timestamp': '2026-06-22T00:00:00+00:00'} -
CVE Modified by 134c704f-9b21-4f2e-91b3-4a467353bcc0
Jun. 22, 2026
Action Type Old Value New Value Added SSVC {'id': 'CVE-2026-9029', 'role': 'CISA Coordinator', 'options': [{'exploitation': 'none'}, {'automatable': 'no'}, {'technicalImpact': 'total'}], 'version': '2.0.3', 'timestamp': '2026-06-22T15:43:30.408282Z'} -
New CVE Received by [email protected]
Jun. 22, 2026
Action Type Old Value New Value Added Affected [{'vendor': 'Grafana', 'product': 'Grafana OSS', 'versions': [{'status': 'affected', 'version': '12.4.0', 'versionType': 'semver'}], 'platforms': ['OnPrem'], 'defaultStatus': 'unaffected'}] Added Description The geomap panel's XYZ tile layer has a sanitize-then-interpolate ordering bug. sanitizeTextPanelContent() runs on the raw template string before getTemplateSrv().replace() substitutes the variable value, which uses the glob format with no HTML escaping. The result is passed to OpenLayers via element.innerHTML. An Editor can set a textbox variable's default value to an XSS payload that executes for every user who opens the dashboard. This is a bypass of the CVE-2023-0507 fix Added CVSS V3.1 AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:N Added Reference https://grafana.com/security/security-advisories/cve-2026-9029