Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconObtain TenantControlPlane write RBAC role
-
DeliveryCraft DataStoreUsername or DataStoreSchema with embedded SQL injection payload
-
ExploitSubmit malicious TenantControlPlane via Kubernetes API
-
InstallKamaji MySQL/PostgreSQL driver interpolates value into DDL via fmt.Sprintf
-
C2Identifier context broken, injected SQL appended to statement
-
ExecuteStacked query executes over root datastore connection
-
ImpactCorrupt, exfiltrate, or destroy shared tenant datastore schemas
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Parameterized queries, prepared statements
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Persistence The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires the ability to create or modify a Kamaji TenantControlPlane Kubernetes custom resource - typically a cluster-admin role or a custom RBAC role granting write access to TenantControlPlane objects in the kamaji-system namespace. The vulnerability triggers specifically when Kamaji processes the DataStoreUsername or DataStoreSchema fields of a TenantControlPlane resource using the PostgreSQL or MySQL datastore driver; etcd-backed deployments are not vulnerable regardless of RBAC. The pre-fix MySQL primary connection's multiStatements=true parameter is the escalating condition that permits stacked query injection; without it, injection would still break individual DDL statements but could not chain arbitrary SQL in a single call. Exploitation is bounded by the high-privilege prerequisite: unauthenticated users and low-privilege cluster members cannot supply these configuration values and are not able to trigger the vulnerability. |
| Impact | The CVSS 4.7 base score and PR:H vector accurately reflect the primary gatekeeping control: exploitation requires the ability to create or modify a TenantControlPlane Kubernetes custom resource, which is ordinarily restricted to cluster administrators or holders of a delegated RBAC role. This is a meaningful real-world constraint. However, the vendor CVSS impact ratings of C:L/I:L/A:L appear to understate the pre-fix MySQL exposure: the presence of multiStatements=true on the primary connection meant that successful identifier injection could escalate to arbitrary stacked SQL over a root-privileged connection shared across all tenant control planes - plausibly enabling full datastore read, data modification, or DROP operations. This raises the actual blast radius above what the base score suggests. EPSS was not provided in the source data; no KEV listing and no public POC exist, indicating no confirmed widespread exploitation. The combination of high-privilege prerequisite and niche deployment footprint keeps real-world exploitation probability low, but any environment where TenantControlPlane write access has been delegated broadly should treat this as higher priority than the base score implies. |
| Exploit ScenarioDerived | A Kubernetes user holding cluster-admin or a delegated TenantControlPlane write role submits a TenantControlPlane resource with DataStoreUsername set to a value such as legit`; DROP DATABASE tenant_alpha;-- . Kamaji's MySQL driver interpolates this into a CREATE USER DDL statement via fmt.Sprintf without quoting, breaking out of the backtick identifier context. On pre-fix deployments where the primary MySQL connection carries multiStatements=true, the injected DROP DATABASE executes as a second stacked statement over the root datastore connection, destroying tenant_alpha's schema and taking down that tenant's Kubernetes control plane. No public POC has been identified. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 30, 2026
SQL injection via unescaped identifier interpolation in Kamaji's PostgreSQL and MySQL datastore drivers exposes the shared datastore root connection to arbitrary DDL/DML manipulation. Versions prior to 26.7.4-edge interpolate operator-supplied DataStoreUsername and DataStoreSchema fields directly into SQL via fmt.Sprintf without any identifier sanitization, allowing a quote or backtick character to break out of the identifier context. Compounding the risk, the pre-fix MySQL primary connection had multiStatements=true enabled, enabling stacked query execution over a root-privileged database connection that spans all hosted tenant control planes. No active exploitation has been confirmed and no public exploit code has been identified at time of analysis.
RemediationAI
Upgrade to Kamaji 26.7.4-edge or later, available at https://github.com/clastix/kamaji/releases/tag/26.7.4-edge. This release introduces quoteMySQLIdentifier() and escapeMySQLString() to sanitize all operator-supplied identifiers before SQL interpolation, and removes the multiStatements parameter from the primary datastore connection, preventing stacked-query escalation as a defense-in-depth measure. For operators unable to upgrade immediately, restrict creation and modification of TenantControlPlane resources via Kubernetes RBAC to only explicitly trusted administrators - this limits the attack surface to users who already hold the high-privilege access the vulnerability requires, though it does not eliminate the underlying flaw. Auditing existing TenantControlPlane resources for unexpected characters (backticks, single quotes, semicolons) in DataStoreUsername and DataStoreSchema fields can help detect any prior exploitation attempts. No workaround fully mitigates the vulnerability without RBAC restrictions on TenantControlPlane write access.
Affected VersionsENISA
Affected Packages
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
Kamaji (cpe:2.3:a:clastix:kamaji:*:*:*:*:*:*:*:*) is a Clastix open-source project that manages Kubernetes hosted control planes using a shared relational datastore (PostgreSQL or MySQL). The vulnerability is CWE-89 (Improper Neutralization of Special Elements used in an SQL Command). Affected code in mysql.go and its PostgreSQL equivalent constructs DDL statements such as CREATE DATABASE IF NOT EXISTS %s and CREATE USER %s@%% IDENTIFIED BY '%s' using Go's fmt.Sprintf, feeding DataStoreUsername and DataStoreSchema from a TenantControlPlane Kubernetes custom resource directly as string arguments. A value containing a backtick or single quote terminates the identifier context, injecting arbitrary SQL into the statement. The commit diff at https://github.com/clastix/kamaji/commit/6a9f3e10ae408e7948e2aca2db694791a299e79c further reveals that before the fix the MySQL primary connection carried the multiStatements=true DSN parameter, which permits semicolon-separated stacked queries in a single ExecContext call - converting simple identifier injection into a full arbitrary SQL execution primitive against the root datastore connection. The fix introduces quoteMySQLIdentifier() and escapeMySQLString() helpers, removes multiStatements from the primary connection, and isolates multi-statement execution to a scoped temporary connection used only during schema migration. The etcd driver constructs no SQL and is explicitly confirmed unaffected.
Know when Kamaji 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
AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:L/A:L
PR:H for required TenantControlPlane write access; C/I/A:H because pre-fix multiStatements=true enables arbitrary stacked SQL over the root datastore connection.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
Kamaji is the Hosted Control Plane Manager for Kubernetes. Prior to 26.7.4-edge, the PostgreSQL and MySQL datastore drivers build DDL statements by interpolating the user-supplied DataStoreUsername/DataStoreSchema directly into SQL via fmt.Sprintf, without escaping identifiers. These fields have no format validation, so a value containing a quote character breaks out of the quoted identifier - SQL injection executed over Kamaji's root connection to the shared datastore. etcd driver is not affected.This issue is fixed in version 26.7.4-edge.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
SQL injection exploits the way applications construct database queries by mixing user input directly into SQL statements.
Kamaji is the Hosted Control Plane Manager for Kubernetes. Rated critical severity (CVSS 9.9), this vulnerability is rem
Cross-tenant data compromise in Clastix Kamaji (Hosted Control Plane Manager for Kubernetes) before 26.7.4-edge lets one
EUVD-2026-51312
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB