ZeroHour

CVE-2026-75889

large

Arbitrary File Read via bearerTokenFile in Grafana Alloy ServiceMonitor Component

CVSS 3.1
7.7 high
EPSS
<1%p12
Published
()
Modified
AI analysis

Grafana Alloy's prometheus.operator.servicemonitors component mishandles a user-controlled bearerTokenFile field, causing Alloy to read an arbitrary local file and transmit its contents as a bearer token. An attacker who can create or modify ServiceMonitor resources in a namespace watched by Alloy can point bearerTokenFile at any file readable by the Alloy process and direct Alloy to send its contents to an attacker-controlled scrape endpoint. This can disclose sensitive files, most notably Alloy's projected Kubernetes service account token, allowing the attacker to obtain Alloy's Kubernetes API permissions and escalate privileges beyond their own role. Affected users are those running Grafana Alloy with the prometheus.operator.servicemonitors component enabled in clusters where less-privileged users hold write access to ServiceMonitor resources. There is no known in-the-wild exploitation, no public proof of concept, a low EPSS score (0.2%), and it is not listed in CISA KEV.

What to do: Upgrade Grafana Alloy to the patched release identified in the Grafana security advisory (fixed version not specified in the source data). Until patched, restrict RBAC so only trusted operators can create or modify ServiceMonitor resources in namespaces Alloy watches, and audit existing ServiceMonitors for unexpected bearerTokenFile values. Review Alloy's service account permissions and rotate its Kubernetes token if compromise is suspected.

Affected
Grafana Labs Grafana Alloy (prometheus.operator.servicemonitors component)
Estimated exposure
largetens of thousands of Kubernetes collector deployments (estimated; only clusters with the ServiceMonitor component enabled and permissive RBAC are exploitable) — Grafana Alloy is the successor to the widely deployed Grafana Agent and Prometheus Operator ServiceMonitor discovery is a common Kubernetes observability pattern, but no public install or scan counts were provided, so this is an…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

Grafana Alloy’s prometheus.operator.servicemonitors component allows a user who can create or modify ServiceMonitor resources in a watched namespace to specify an arbitrary local file through bearerTokenFile. Alloy reads the file and sends its contents as a bearer token to an attacker-controlled scrape endpoint. This may disclose files accessible to the Alloy process, including its projected Kubernetes service account token, potentially granting the attacker Alloy’s Kubernetes permissions. Exploitation requires ServiceMonitor write access and lower privileges than Alloy’s service account.

Weakness
CWE-552
Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N

In the news

No ingested article mentions this CVE yet.