Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Network endpoint with low complexity but requires an authenticated account able to register datasources (PR:L); arbitrary SQL yields high confidentiality and integrity impact, no availability effect.
Primary rating from GitHub Advisory.
CVSS VectorGitHub Advisory
Lifecycle Timeline
7DescriptionGitHub Advisory
DataEase is an open-source data visualization and analytics platform. Versions 2.10.20 and below contain a SQL injection vulnerability in the /datasource/getTableField endpoint. The getTableFiledSql method in CalciteProvider.java incorporates the tableName parameter directly into SQL query strings using String.format without parameterization or sanitization. Although DatasourceServer.java validates that the table name exists in the datasource, an attacker can bypass this by first registering an API datasource with a malicious deTableName, which is then returned by getTables and passes the validation check. An authenticated attacker can execute arbitrary SQL commands, enabling error-based extraction of sensitive database information. This issue has been fixed in version 2.10.21.
AnalysisAI
SQL injection in DataEase, the open-source data visualization and analytics platform, lets an authenticated attacker execute arbitrary SQL commands via the /datasource/getTableField endpoint in versions 2.10.20 and earlier. The getTableFiledSql method in CalciteProvider.java concatenates the tableName parameter into a query using String.format without parameterization, and the existing table-name validation is bypassed by registering an API datasource with a malicious deTableName that getTables returns as legitimate. Publicly available exploit code exists per the SSVC assessment, though EPSS remains very low (0.03%, 8th percentile) and it is not in CISA KEV; it is one of a cluster of SQLi issues patched together in 2.10.21.
Technical ContextAI
DataEase is a Java-based BI/analytics platform (CPE cpe:2.3:a:dataease:dataease) that federates queries across heterogeneous data sources, using Apache Calcite as its SQL provider layer. The root cause is CWE-89 (Improper Neutralization of Special Elements used in an SQL Command): CalciteProvider.java's getTableFiledSql method builds the metadata query with String.format(), injecting the caller-supplied tableName directly into the SQL text with no bind parameters or escaping. A defense in DatasourceServer.java checks that the supplied table exists among the datasource's tables, but this allowlist is populated dynamically from getTables - so an attacker who registers a custom API datasource controls the deTableName values returned, making a malicious name pass validation. This is a classic trust-boundary failure where server-side validation relies on attacker-influenced data.
RemediationAI
Vendor-released patch: upgrade to DataEase 2.10.21, which parameterizes the CalciteProvider query and closes the validation-bypass path (release: https://github.com/dataease/dataease/releases/tag/v2.10.21; advisory: https://github.com/dataease/dataease/security/advisories/GHSA-pgh3-rgw3-xjmm). Note that 2.10.21 introduces a breaking change - frontend user credential names gain a de_v2_ prefix (e.g. user.token becomes de_v2_user.token), which affects integrations such as SQLBot advanced apps, so plan credential-name updates as part of the upgrade. If immediate patching is not possible, restrict the ability to create/register datasources to trusted administrators only (the attack requires registering an API datasource with a malicious deTableName), limit and audit accounts that can reach the /datasource/getTableField endpoint, and place DataEase behind network access controls so only trusted users can authenticate; the trade-off is reduced self-service datasource functionality for users. Because 2.10.21 fixes multiple additional SQLi and other flaws (CVE-2026-33082/33083/33084/33121/33122 and others), upgrading is strongly preferred over piecemeal mitigation.
Oracle Java SE 7 Update 6 and earlier contains multiple sandbox bypass vulnerabilities via the ClassFinder and forName m
Remote code execution in IBM Sterling B2B Integrator, Sterling Integrator, and Tivoli Common Reporting allows unauthenti
Java Runtime Environment sandbox bypass via incorrect image channel verification in 2D component allows remote unauthent
Oracle Java SE JDK/JRE 7 and 6 Update 27 and earlier allows remote code execution with complete system compromise throug
JBoss Seam 2 in Red Hat JBoss EAP 4.3.0 fails to sanitize JBoss Expression Language inputs, allowing remote attackers to
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 update 4 and earlier, 6 up
Multiple vulnerabilities in Oracle Java 7 before Update 11 allow remote attackers to execute arbitrary code by (1) using
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 2 and earlier, 6 Up
The WLS Security component in Oracle WebLogic Server 10.3.6.0, 12.1.2.0, 12.1.3.0, and 12.2.1.0 allows remote attackers
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 7 and earlier allow
Remote unauthenticated attackers can execute arbitrary code on Adobe ColdFusion servers through Java deserialization fla
The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during
Same weakness CWE-89 – SQL Injection
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-23291