Skip to main content

Chartbrew CVE-2026-61851

| EUVDEUVD-2026-84213 MEDIUM
Incomplete List of Disallowed Inputs (CWE-184)
2026-09-21 GitHub_M
6.5
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Authenticate with AI feature access
  2. Delivery
    Craft SELECT with blocklist-absent DB function
  3. Exploit
    Submit via AI runQuery() tool
  4. Execution
    Chartbrew forwards raw SQL to database
  5. Persist
    Privileged DB executes file/network/command operation
  6. Impact
    Data exfiltrated, files written, or privileges altered

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V2 - Validation and Business Logic Input validation completeness
Exploitation Conditions

Requires an authenticated Chartbrew account whose team has the AI feature enabled and configured with an OpenAI model, plus a database connection of type postgres, mysql, or clickhouse (the source types routed through the SQL normalization path). The attacker submits a query through the AI orchestrator's runQuery() tool; the pre-5.2.2 read-only enforcement only blocked seven keywords (DROP, DELETE, UPDATE, INSERT, TRUNCATE, ALTER, CREATE), so any dangerous statement or DB function outside that list (file/network/privilege functions, EXEC/CALL, GRANT/REVOKE) passes through. LIMITING FACTORS: exploitation demands valid authentication with AI-feature access (PR:L, not unauthenticated); actual impact is bounded by the privileges of the configured database user (a least-privilege read-only account greatly reduces damage) and by the database engine and its configuration (e.g., whether file/program functions are permitted). No user interaction by a victim is required.

Impact

This is a genuine but access-gated integrity/confidentiality issue rather than a mass-exploitation emergency. The vendor CVSS 4.0 vector (CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:N/SC:H/SI:H/SA:H, score 6.5) deliberately models the impact on the SUBSEQUENT system (the connected database), keeping vulnerable-system VC/VI/VA at N - a defensible choice since the flaw abuses Chartbrew to attack the backing DB. PR:L confirms authentication is required (a user with AI feature access), and there is no user-interaction requirement. There is NO EPSS score, NO CISA KEV listing, and NO public exploit provided - so exploitation status is 'no public exploit identified at time of analysis,' though the fix commit (8c8412ed) publicly enumerates the exact bypass payloads (pg_read_file, lo_export, COPY...TO PROGRAM, INTO OUTFILE, LOAD_FILE, GRANT, EXEC/CALL), which materially lowers the bar for exploit development. Realized impact is conditional and self-described as 'depending on the database engine, configuration, and database-user privileges' - meaning a least-privilege read-only DB account sharply limits blast radius, while a permissive DB account could yield file access, internal network pivoting, privilege changes, or command execution. Net: a real priority for any Chartbrew operator who has enabled the AI feature and connected privileged DB accounts, but not a drop-everything internet-wide threat given the authentication gate and niche footprint. Note the score tension: my own component-impact reading lands higher than 6.5, but that is a modeling difference (impacted component = the DB), not a contradiction.

Exploit ScenarioDerived

An authenticated Chartbrew user who has access to the AI query feature asks the AI orchestrator to run a query and supplies a SELECT statement embedding a dangerous database function or statement not covered by the seven-keyword blocklist (e.g., PostgreSQL pg_read_file()/lo_export(), or MySQL LOAD_FILE()/INTO OUTFILE). Because no SQL injection or obfuscation is needed, the runQuery() tool forwards it to the connected database, and if the database user is sufficiently privileged the attacker reads/writes server files, reaches internal network resources, or alters data. No public POC exists, but the patch diff publicly documents the exact bypass payloads.

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

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

Alert me

AnalysisAIv1 – Sep 21, 2026

Authenticated Chartbrew users with access to the AI chart-generation feature can execute dangerous SQL statements and database functions that the application's read-only filter fails to block, because versions prior to 5.2.2 relied on a blocklist covering only seven keywords (DROP, DELETE, UPDATE, INSERT, TRUNCATE, ALTER, CREATE). Depending on the database engine, its configuration, and the privileges of the configured connection user, this can result in file read/write, outbound network access from the database server, privilege changes, command execution, or data modification - the independent assessment rates it CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:L, reflecting high confidentiality and integrity impact to the connected database with scope change. Exploitation requires a valid Chartbrew account on a team with the AI feature enabled and configured against a postgres, mysql, or clickhouse connection; no public exploit code was identified at time of analysis and there is no CISA KEV listing, making this an access-gated issue rather than a mass-exploitation emergency.

RemediationAI

Upgrade to Chartbrew 5.2.2 or later, which is the vendor-released patch that replaces the seven-keyword blocklist with a SELECT/WITH allowlist, rejects multi-statement queries and SQL comments, blocks file/network/privilege functions, and clamps row limits - see https://github.com/chartbrew/chartbrew/releases/tag/v5.2.2 and advisory GHSA-cp8j-2xwc-hxg8. Where immediate upgrade is not possible, the highest-value compensating control is to downgrade the privilege of every database connection configured in Chartbrew to a strictly read-only account limited to the specific schemas and tables needed for dashboards; this does not remove the flaw but neutralizes the write, privilege-escalation, and command-execution outcomes, and its trade-off is that any dashboards relying on broader access will break. Additionally, disable the AI feature for untrusted teams if it is not required, since the vulnerability is only reachable through the AI orchestrator's runQuery() tool and requires an authenticated user on a team where AI is enabled - the trade-off is loss of the AI charting capability. On the database side, revoke or deny execution of SUPERUSER-only and file/system functions (PostgreSQL pg_read_file, pg_read_binary_file, pg_ls_dir, lo_export, lo_import, and COPY TO/FROM PROGRAM; MySQL LOAD_FILE, LOAD DATA, INTO OUTFILE; ClickHouse file() and url() table functions) for the Chartbrew database user, restrict the database server's outbound network access, and avoid running the DB service as an OS user with filesystem write permissions - these measures materially reduce impact but require engine-specific configuration and may need to be re-applied after major DB upgrades. Rotate credentials for any database connection that was exposed to a low-trust Chartbrew team and review database logs for anomalous SELECT statements invoking the functions listed above.

Affected VersionsENISA

chartbrew < 5.2.2

Affected Packages

euvd chartbrew fix: 5.2.2

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

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

Technical ContextAI · show details

The flaw is CWE-184 (Incomplete List of Disallowed Inputs). Chartbrew is a Node.js open-source dashboarding application whose AI orchestrator exposes a runQuery() tool in server/modules/ai/orchestrator/tools/runQuery.js, allowing an LLM-driven workflow to issue SQL against a connected data source. Before 5.2.2, read-only enforcement consisted solely of a case-insensitive whole-word blocklist of seven DML/DDL verbs applied to the query string, with no allowlist of permitted statement types, no multi-statement rejection, no comment handling, and no coverage of database-specific functions. Consequently any construct outside that list passes through unmodified - PostgreSQL pg_read_file(), pg_read_binary_file(), pg_ls_dir(), lo_export(), lo_import(), COPY ... TO PROGRAM; MySQL LOAD_FILE(), LOAD DATA, INTO OUTFILE/DUMPFILE; ClickHouse file() and url() table functions; and engine-level GRANT/REVOKE, EXEC/CALL and stored-procedure invocation. This is not classic SQL injection: the attacker supplies the query directly through an intended interface, so no keyword obfuscation or escaping bypass is needed. The patch (commit 8c8412edce56093e81b524e0235a796c7dd42336) replaces the blocklist with a normalizeSqlQuery() allowlist that requires the statement to begin with SELECT or WITH, rejects semicolon-separated multi-statements, rejects SQL comments (--, /*, */), and screens against an expanded pattern list including the file/network/privilege functions above; it also adds a getSafeRowLimit() clamp (default 1000, maximum 10000 rows) for postgres, mysql and clickhouse sources. The same commit also bumps the default orchestrator model string from gpt-5-nano to gpt-5.4-nano, which is unrelated to the security fix.

Know when Chartbrew 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 6.5 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:N/SC:H/SI:H/SA:H
vuln.today AI 9.9 CRITICAL

Authenticated AI-feature user (PR:L) sends a query over the network (AV:N/AC:L); scope changes to the connected database (S:C) with potential file/data read and write (C:H/I:H) and possible data destruction (A:L), conditional on DB privileges.

3.1 AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:L
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:N/SC:H/SI:H/SA: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
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
High
Subsequent system: Integrity
High
Subsequent system: Availability
High

Lifecycle Timeline

1
Patch available
Sep 21, 2026 - 23:02 EUVD

DescriptionCVE.org

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.2, Chartbrew's runQuery() implementation in server/modules/ai/orchestrator/tools/runQuery.js attempts to enforce read-only database access with a blocklist containing only seven SQL keywords. An authenticated user with AI feature access can submit dangerous statements or database functions that are absent from the read-only keyword blocklist, causing them to execute without SQL injection or keyword-obfuscation techniques. Depending on the database engine, configuration, and database-user privileges, this can expose or write files, access internal network resources, change database privileges, execute commands, or alter data. This issue is fixed in version 5.2.2.

Threat Intelligence Overview

EPSS Score
0.3%
Top 81% exploitable
Prevalence
Low
Niche open-source self-hosted BI/charting tool, limited enterprise footprint
Data Quality
6 sources
Confidence: High

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.3%
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

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

Attack Technique

SQL injection exploits the way applications construct database queries by mixing user input directly into SQL statements.

CVE-2026-27005 CRITICAL POC
9.8 Mar 06

SQL injection in Chartbrew before 4.8.3. PoC available.

CVE-2026-25888 HIGH POC
8.8 Mar 06

Remote code execution in Chartbrew prior to version 4.8.1 allows authenticated attackers to execute arbitrary code throu

CVE-2026-27603 HIGH POC
7.5 Mar 06

Chartbrew versions up to 4.8.4 is affected by missing authentication for critical function (CVSS 7.5).

CVE-2026-25887 HIGH POC
7.2 Mar 06

Remote code execution in Chartbrew versions prior to 4.8.1 allows authenticated attackers with high privileges to execut

CVE-2026-25877 MEDIUM POC
6.5 Mar 06

Chartbrew versions before 4.8.1 fail to validate chart ownership during modification operations, allowing authenticated

CVE-2026-27605 MEDIUM POC
6.3 Mar 06

Chartbrew versions prior to 4.8.4 allow authenticated users to upload arbitrary files by bypassing file type validation,

CVE-2026-40600 HIGH
8.1 Apr 30

Authenticated users in Chartbrew 4.9.0 can modify or delete dashboard sharing policies across projects they don't own du

CVE-2026-40904 HIGH
8.1 Apr 30

Horizontal privilege escalation in Chartbrew 4.9.0 allows authenticated low-privilege team members to access datasets, d

CVE-2026-65980 HIGH
7.9 Sep 21

SQL injection in Chartbrew versions prior to 5.2.3 allows an unauthenticated remote attacker to break out of an intended

CVE-2026-30232 HIGH
7.8 Apr 10

Server-Side Request Forgery in Chartbrew versions prior to 4.8.5 allows authenticated users to create API data connectio

CVE-2026-32252 HIGH
7.7 Apr 10

Cross-tenant authorization bypass in Chartbrew versions prior to 4.9.0 allows authenticated attackers to exfiltrate sens

CVE-2026-40601 HIGH
7.5 Apr 30

Unauthenticated remote attackers can access and refresh private chart data in Chartbrew 4.9.0 via an exposed API endpoin

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