CVE-2025-11539: Grafana Image Renderer /render/csv arbitrary file write leads to RCE
The Grafana Image Renderer service did not validate the filePath parameter of its /render/csv endpoint, so a caller can write a shared object to an arbitrary location, which the bundled Chromium process then loads, giving remote code execution on the renderer host or container. An instance is exploitable if the attacker can reach the renderer endpoint and the auth token is still the default ("-") or otherwise known. Grafana rates it CVSS 9.9.
- CVE-2025-11539CVE identifier
- 9.9CVSS 3.1 base score (critical)
- 0.7%EPSS: chance of exploitation in the next 30 days (higher than 51% of CVEs)
- 2025-10-09published
What do these terms mean? CVE · CVSS score · exploited (KEV) · EPSS · backported fix · all terms
What to do now
- Check whether you run the affected software and which version (commands below).
- Install the fixed version for your system: see “Patch it” below.
- Restart or recreate the image renderer service/container.
- If you cannot patch today, apply the temporary mitigation below and patch as soon as possible.
Affected and fixed versions
Affected:
- grafana-image-renderer 1.0.0 through 4.0.16
Fixed in:
- grafana-image-renderer 4.0.17
Am I affected?
docker ps --format '{{.Image}}' | grep grafana-image-renderer
kubectl get pods -A -o jsonpath='{range .items[*]}{.spec.containers[*].image}{"\n"}{end}' | grep grafana-image-renderer
grep -n -A3 '^\[rendering\]' /etc/grafana/grafana.ini
Patch it
Use the commands for your system. Distribution packages often keep an older version number with the fix backported, so compare with the fixed package versions in the table below, not only with the upstream version.
Docker images
docker pull grafana/grafana-image-renderer:v4.0.17
# update the image tag in docker-compose.yml / Helm values / Deployment, then recreate:
docker compose up -d rendererBuilt from source
# Standalone binary: download the v4.0.17 (or later) release asset from
# https://github.com/grafana/grafana-image-renderer/releases/tag/v4.0.17
# replace the old binary and restart the serviceGeneral update steps for every system are on the Linux and Unix & BSD pages; after updating, see which services to restart.
If you cannot patch yet
- Replace the default renderer token: start the service with a secret --server.auth-token (AUTH_TOKEN env var) and set the same value in Grafana's [rendering] renderer_token (GF_RENDERING_RENDERER_TOKEN).
- Do not expose the renderer port (8081 by default in Grafana's examples) beyond the Grafana server; only Grafana needs to reach it.
Sources
- Grafana security advisory CVE-2025-11539
- grafana-image-renderer v4.0.17 release
- Grafana docs: Set up image rendering (auth token)
- CVE-2025-11539 on CVE.org
- CVE-2025-11539 on NVD
Page generated automatically from official sources on 2026-11-03 18:05 UTC and reviewed by an editor. Always confirm with your vendor's advisory.