CVE-2026-75889: CVE Record
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.
Affected Software
Event History
Frequently Asked Questions
Who is exposed to this issue?
Deployments are exposed when Alloy watches a namespace where a user can create or modify ServiceMonitor resources. The issue is most significant when those users have fewer Kubernetes permissions than Alloy’s service account.
What does an attacker need to exploit it?
An attacker needs permission to create or modify a ServiceMonitor resource in a namespace watched by Alloy. They must also be able to direct scraping to an endpoint they control so Alloy sends the selected file contents as a bearer token.
Are default permissions sufficient for exploitation?
The provided information does not establish whether default Kubernetes or Alloy role bindings grant ServiceMonitor write access. Exploitation depends specifically on ServiceMonitor create or modification rights in a watched namespace.
What can be done if patching is not immediately possible?
Restrict create and update permissions for ServiceMonitor resources in namespaces watched by Alloy, particularly for lower-privileged users. Also review Alloy’s service account permissions, since an exposed projected service account token could grant those permissions to an attacker.
How can administrators assess whether they are affected?
Identify the namespaces watched by Alloy and determine who can create or modify ServiceMonitor resources in them. Review whether those users can configure bearerTokenFile and whether Alloy can reach attacker-controlled scrape endpoints.