CVE-2026-11769: Grafana Operator Path Traversal & Service Account Token Exposure
The Grafana Operator, a popular tool for managing Grafana instances in Kubernetes environments, contains a security flaw that allows attackers with dashboard creation permissions to steal the operator's service account token. The vulnerability stems from the operator's support for jsonnet templating—a data definition language evaluated within the operator's pod context—which can be exploited to access sensitive credentials. This affects all versions up to and including 5.23, with version 5.24.0 providing the fix.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 8.8 HIGH · CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
- Weaknesses (CWE)
- CWE-22
- Affected products
- 1 configuration(s)
- Published / Modified
- 2026-06-13 / 2026-07-10
NVD description (verbatim)
We have released version 5.24.0 of the Grafana Operator. This patch includes a MEDIUM severity security fix for a path traversal/privilege escalation vulnerability in the Grafana Operator. ### Summary The Grafana Operator supports loading dashboards & library panels using the jsonnet data templating language. The jsonnet expression is evaluated in the context of the operator manager pod. ### Impact It is possible for a malicious user who can create Dashboard or LibraryPanel resources for a Grafana instance to obtain the Kubernetes service account token of the Grafana Operator manager. ### Affected versions All Grafana Operator versions <= 5.23 ### Solutions and mitigations All installations should be upgraded as soon as possible. As a workaround, the following ValidatingAdmissionPolicy prevent the creation or modification of jsonnet based resources: apiVersion: admissionregistration.k8s.io/v1 kind: ValidatingAdmissionPolicy metadata: name: "prevent-jsonnet-dashboards" spec: failurePolicy: Fail matchConstraints: resourceRules: - apiGroups: ["grafana.integreatly.org"] apiVersions: ["v1beta1"] operations: ["CREATE", "UPDATE"] resources: ["grafanadashboards", "grafanalibrarypanels"] validations: - expression: "!has(object.spec.jsonnetLib)" --- apiVersion: admissionregistration.k8s.io/v1 kind: ValidatingAdmissionPolicyBinding metadata: name: "prevent-jsonnet-dashboards-clusterwide" spec: policyName: "prevent-jsonnet-dashboards" validationActions: [Deny] ### Acknowledgement We would like to thank Artem Cherezov for responsibly disclosing the vulnerability.
1 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
CVE-2026-11769 is a path traversal and privilege escalation vulnerability in Grafana Operator stemming from unsafe evaluation of jsonnet expressions used in Dashboard and LibraryPanel resources. When a Dashboard or LibraryPanel resource specifies a jsonnet template via the spec.jsonnetLib field, the Grafana Operator manager pod evaluates this expression directly, executing it within the pod's security context. An attacker with permissions to create or modify these custom resources can craft malicious jsonnet code to access the Kubernetes service account token mounted in the operator pod's filesystem, effectively escalating privileges from resource creator to cluster service account holder. The vulnerability is classified as CWE-22 (Improper Limitation of a Pathname to a Restricted Directory).
Business impact
This vulnerability creates a critical supply-chain and privilege escalation risk in Kubernetes clusters running Grafana Operator. Any user—including developers or operators with limited dashboard-creation permissions—can pivot to full Grafana Operator credentials, effectively gaining the operator's cluster-wide permissions. In multi-tenant or shared Kubernetes environments, this enables lateral movement, access to other namespaces' secrets, and potential cluster compromise. Organizations relying on Grafana Operator for observability should treat this as a high-priority upgrade, especially if RBAC policies grant dashboard creation to semi-trusted users.
Affected systems
Grafana Operator versions 5.23 and earlier are affected. The vulnerability requires the operator to be deployed in Kubernetes with jsonnet evaluation enabled (the default). Any cluster running these versions with users capable of creating Dashboard or LibraryPanel resources is at risk, regardless of namespace isolation or RBAC policies that limit dashboard creation.
Exploitability
Exploitability is moderate to high. The attack requires an authenticated user with permission to create or modify Dashboard and LibraryPanel resources—a relatively common permission in shared observability platforms. Network access to the Kubernetes API is required, but in most enterprise environments this is available to developers and operators. No user interaction or special conditions are needed once the malicious resource is created; the operator's automatic evaluation of jsonnet expressions triggers the vulnerability immediately. The CVSS score of 8.8 (HIGH) reflects the combination of low complexity, low privileges required, and high impact across confidentiality, integrity, and availability.
Remediation
Upgrade to Grafana Operator version 5.24.0 or later immediately. As an interim mitigation pending upgrades, deploy the provided ValidatingAdmissionPolicy to prevent creation or modification of Dashboard and LibraryPanel resources containing jsonnet specifications. This policy leverages Kubernetes admission controllers to enforce a blanket denial of jsonnet-based resources cluster-wide, effectively closing the vulnerability vector until the operator is patched.
Patch guidance
Apply the upgrade to version 5.24.0 during a maintenance window. Review the Grafana Operator release notes for any breaking changes or migration steps. In Helm deployments, update the chart version and re-apply; in manual deployments, update the operator image tag and restart the manager pod. Verify the upgrade by checking the operator pod logs and confirming the running version. If immediate upgrade is not possible, immediately implement the ValidatingAdmissionPolicy workaround to prevent jsonnet-based dashboard creation.
Detection guidance
Monitor audit logs and Kubernetes API events for creation or updates to GrafanaDashboard and GrafanaLibraryPanel resources, particularly those containing the spec.jsonnetLib field. Alert on any such activities from unexpected service accounts or users. Review existing Dashboard and LibraryPanel resources in your cluster to identify any already containing jsonnet specifications—these should be audited for tampering. Monitor the Grafana Operator manager pod for unexpected filesystem access patterns or token file reads (e.g., /var/run/secrets/kubernetes.io/serviceaccount/token). Check pod logs for errors or unusual behavior during resource reconciliation.
Why prioritize this
This vulnerability merits immediate attention due to its HIGH CVSS score (8.8), high exploitability, and the sensitive nature of the Grafana Operator's cluster-wide permissions. The ability to obtain service account tokens represents a direct path to cluster compromise in Kubernetes environments. The wide deployment of Grafana Operator in observability stacks makes this a high-probability attack surface. Organizations should prioritize this upgrade above routine patches but below only active zero-day exploitation scenarios.
Risk score, explained
The CVSS 3.1 score of 8.8 reflects: (1) Network-accessible attack vector via Kubernetes API, (2) Low complexity exploitation requiring only valid dashboard creation permissions, (3) Low privileges required—any dashboard creator can exploit it, (4) High confidentiality impact through service account token exposure, (5) High integrity and availability impact through potential cluster-wide resource manipulation. The score does not include CISA KEV status, as this vulnerability is not yet listed on the Known Exploited Vulnerabilities catalog, though this should not diminish urgency given the straightforward exploitation path.
Frequently asked questions
What exactly can an attacker do with the Grafana Operator's service account token?
The service account token grants the attacker all permissions assigned to the Grafana Operator's cluster role. Depending on the operator's RBAC configuration, this typically includes read/write access to Grafana custom resources across all namespaces, and may include access to other resources if the operator is configured with broad permissions. In many deployments, this effectively provides cluster-admin or near-admin capabilities.
Do I need to worry about this if my Grafana Operator is in an air-gapped or internal-only cluster?
While network isolation reduces exposure, any insider or compromised account with dashboard creation permissions can still exploit this locally. Isolation is a helpful defense layer but not a substitute for patching. Apply the upgrade regardless.
What is the difference between the CVSS score (8.8) and the severity label in the advisory (MEDIUM)?
The source advisory describes the vulnerability as MEDIUM severity, but the calculated CVSS 3.1 score is 8.8, which maps to HIGH severity. There is a discrepancy here; verify against the official Grafana Operator advisory for the authoritative severity guidance. Organizations should follow the CVSS score (HIGH) for prioritization purposes.
Can the ValidatingAdmissionPolicy workaround completely protect my cluster until I patch?
The policy prevents *new* jsonnet-based Dashboard and LibraryPanel resources from being created, but does not remove or disable existing ones. Audit your cluster for existing resources containing spec.jsonnetLib and evaluate them for tampering. Additionally, the policy requires Kubernetes 1.26+ and the ValidatingAdmissionPolicy feature must be enabled on your cluster. Verify your cluster's API version and feature gates before deploying.
This analysis is provided for informational purposes based on publicly disclosed vulnerability data as of the publication date. SEC.co does not verify exploit code or conduct independent testing of patches. Organizations should validate all patch compatibility and deployment procedures in non-production environments before applying to production systems. CVSS scores and severity classifications are subject to revision by vendors and NIST; refer to the official Grafana Operator advisory and NVD records for authoritative guidance. The workaround ValidatingAdmissionPolicy is provided as-is by Grafana; review Kubernetes documentation for admission controller best practices before deployment. Source: NVD (public-domain), retrieved 2026-07-20. Analysis generated by SEC.co (claude-haiku-4-5).
Related vulnerabilities
- CVE-2016-20076HIGHWordPress Simple-Backup 2.7.11 Unauthenticated File Access & Deletion Vulnerability
- CVE-2016-20081HIGHHB Audio Gallery Lite Path Traversal Vulnerability – Unauthenticated File Download
- CVE-2017-20248HIGHApptha Slider Gallery Path Traversal Vulnerability
- CVE-2017-20250HIGHMac Photo Gallery 3.0 Path Traversal File Download Vulnerability
- CVE-2018-25408HIGHOpen ISES Project Path Traversal Vulnerability (High Severity)
- CVE-2024-40646HIGHVertex Path Traversal Vulnerability – Remote File Access Risk
- CVE-2026-0270HIGHCortex XSOAR Path Traversal on Linux — Exploit Requirements & Patching Guide
- CVE-2026-10108HIGHUnauthenticated Path Traversal in xiaomusic v0.5.7 – File Read Vulnerability