Cross-tenant project takeover in Chartbrew via team_id in project routes
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Security bypass
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA. Impact type from CWE-639.
Summary
Chartbrew before 5.2.3 is affected. The shared project permission check trusts a caller-controlled team_id, so an authenticated user who owns or administers their own team can act on a project belonging to another team (CWE-639). Such an attacker needs a valid account and a victim project identifier, and can re-parent the project, gain full read and write access, expose it publicly, remove its password protection, or delete it.
Written with Claude Haiku 5.5 from the sources below · 2026-11-06
Description from the CNA
Chartbrew is an open-source web application that can connect directly to databases and APIs and use the data to create charts. Prior to 5.2.3, the shared project permission check trusted a caller-controlled team_id and let the teamOwner/teamAdmin branch continue without confirming that the target project belonged to that team. The vulnerable surface is project routes and related authorization checks that accepted user-controlled project identifiers. An authenticated user who is an owner or admin of their own team submits a victim project id together with the attacker's own team_id in the request body; default self-signup grants the required role on the user's own team. Authorization is evaluated against the attacker-selected team instead of the target project's team, and the update path mass-assigns the request body without a project field allow-list. The attacker needs a valid Chartbrew account, an owner or admin role on their own team, and a victim project identifier; requests without the body team_id trick are rejected. The attacker can re-parent the victim project into their own team, gain full read and write access, expose it publicly, remove password protection, and cause the victim to lose it; the shared delete route also permits cross-tenant deletion. This issue is fixed in version 5.2.3.
Why it matters now
SSVC decision points
Not available: CISA has not published SSVC decision points for this record.
Affected products
Remediation
Update chartbrew to version 5.2.3, which fixes this issue.
Written with Claude Haiku 5.5 from the sources below · 2026-11-06
- Fix · CNA chartbrew (chartbrew) Fixed in 5.2.3
Timeline
- 2026-11-06 Threatist record created from CVE-2026-85712
- 2026-11-08 Priority changed: MEDIUM → LOW
References
More chartbrew vulnerabilities
- TI-2026-46993 Chartbrew: SQL Injection via Missing Backslash Escaping in ClickHouse Variable Substitution CVSS 4.0HIGH 7.9
- TI-2026-29337 Chartbrew: Missing Authorization in /api/chart/:chart_id/query via team-level refresh toggle CVSS 3.1HIGH 7.5
- TI-2026-29331 Chartbrew: Incorrect Access Control in public chart and export routes via missing onReport and SharePolicy checks CVSS 3.1HIGH 7.5
- TI-2026-29560 Chartbrew: Incorrect Access Control in dataset and dataRequest routes via team-scoped permission checks CVSS 3.1HIGH 8.1
- TI-2026-29336 Chartbrew: Incorrect Access Control in project share policy routes via unbound policy_id CVSS 3.1HIGH 8.1
- TI-2026-24781 Chartbrew Cross-Tenant Template Export and Secret Disclosure in `GET /team/:team_id/template/generate/:project_id` CVSS 3.1HIGH 7.7
Sources
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences