🟠 高危 | CVE-2026-45417 — DataEase is an open source data visualization and ...
🟠 【深度分析】高危安全漏洞:CVE-2026-45417
CVSS 评分: 高危(8.7)🟠 状态: Deferred 发布时间: 2026-07-15
🔍 技术细节速览
| 字段 | 值 |
|---|---|
| CVE ID | CVE-2026-45417 |
| CVSS 评分 | 8.7 🟠 |
| 严重程度 | 高危 |
| CVSS 向量 | CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:L/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 |
| CWE 分类 | CWE-89 |
| 发布时间 | 2026-07-15 |
| 最后更新 | 2026-07-16 |
| 状态 | Deferred |
| 数据来源 | security-advisories@github.com |
CVSS 4.0 评分:8.7(高危)
危害等级:高危
攻击向量:网络 (AV:N)
攻击复杂度:低 (AC:L)
权限要求:低 (PR:L)
用户交互:无 (UI:N)
漏洞概述
CVE-2026-45417 是开源数据可视化及分析工具 DataEase 中的一个高危 SQL 注入漏洞。该漏洞存在于DataEase 的数据源连接状态检查功能中。由于 io.dataease.datasource.provider.CalciteProvider#checkStatus 方法在处理 SQL 构建时,未对 configuration.getSchema() 获取的 schema 名称进行充分过滤或参数化,导致攻击者可以将恶意 SQL 语句拼接进最终执行的 SQL 查询,从而实现针对 DB2、SQL Server、PostgreSQL 等多种受影响数据源的 SQL 注入攻击。
该漏洞影响 DataEase 2.10.23 之前的所有版本,已在版本 2.10.23 中修复。
受影响组件与版本
| 组件 | 受影响版本范围 | 修复版本 |
|---|---|---|
| DataEase (开源数据可视化分析工具) | < 2.10.23 | ≥ 2.10.23 |
注意:此漏洞影响所有使用易受攻击版本的 DataEase 实例,无论其部署方式(Docker、手动部署等)。
漏洞原理分析
技术成因
该漏洞源于 DataEase 在数据源连接状态检查功能中的 SQL 构建方式。
触发位置:
io.dataease.datasource.provider.CalciteProvider#checkStatus方法。关键代码逻辑:该方法在检查数据源是否可达时,会获取某个数据源的配置信息,其中包含
schema(模式)字段。随后,程序会将configuration.getSchema()返回的值直接拼接进动态 SQL 语句中:getTablesSql = 预设的查询固定部分 + configuration.getSchema() + 后续查询部分漏洞点:
configuration.getSchema()是一个字符串拼接变量,而非参数化查询或预编译语句的绑定变量。这意味着如果攻击者可以控制数据源配置中的schema字段(如通过 UI 界面添加或修改数据源时输入恶意值),那么该恶意字符串将被直接嵌入到 SQL 语句中并被执行。
攻击向量分析
攻击前提:攻击者需要拥有 低权限的用户账户(CVSS: PR:L),例如一个仅可添加/配置数据源的用户。在 DataEase 的默认权限模型中,这类用户通常是被允许进行数据源管理的。
攻击步骤:
- 登录受影响的 DataEase 实例。
- 添加一个新的数据库连接(如 DB2、SQL Server、PostgreSQL 等受影响的数据源类型)。
- 在 “Schema” 字段中填入包含 SQL 注入负载的字符串,例如:
或是针对特定数据库构造的篡改语句。正常模式名' UNION SELECT 1,2,3,4,5,6 -- - 触发连接状态检查,DataEase 随即执行被污染后的 SQL 语句。
影响的数据源:漏洞影响 Calcite 框架支持的所有数据库类型,包括但不限于:
- IBM Db2
- Microsoft SQL Server
- PostgreSQL
- (可能还包括其他支持
schema概念的数据库)
代码层面示意
// 伪代码示意,非官方代码
public boolean checkStatus(DataSourceConfig config) {
String schema = config.getSchema(); // 用户可控
String sql = "SELECT TABLE_NAME FROM ALL_TABLES WHERE OWNER = '" + schema + "'";
// 实际 getTablesSql 逻辑类似,直接拼接
ResultSet rs = executeQuery(sql); // 恶意 SQL 被执行
// ...
}
影响评估
利用难度评估
| 评估指标 | 等级 | 说明 |
|---|---|---|
| 攻击向量 | 网络 (AV:N) | 无需物理访问,通过网络即可完成攻击。 |
| 攻击复杂度 | 低 (AC:L) | 无需特殊条件,只需在界面中构造特定的输入字符串即可。 |
| 权限要求 | 低 (PR:L) | 需要一个低权限账户,通常用于管理数据源的用户即可满足。 |
| 用户交互 | 无 (UI:N) | 攻击完全在服务器端执行,无需受害用户交互。 |
| 攻击前置条件 | 低 | 攻击者需要能够添加或修改数据源配置,这通常是内置功能。 |
潜在后果
机密性影响(高):
- 攻击者可以通过 SQL 注入读取数据库中的所有表数据,包括敏感的业务数据、用户凭证 (哈希值/令牌)、系统配置信息等。
- 对于某些数据库(如 SQL Server),攻击者还可能利用
xp_cmdshell等扩展功能,直接读取服务器文件系统中的文件。
完整性影响(高):
- 攻击者可以 修改、插入、删除 数据库中的表数据。
- 在 SQL Server、PostgreSQL 等数据库中,攻击者还可通过
CREATE/ALTER LOGIN等 DDL 命令提升自己的数据库权限,从而控制整个数据库实例。
可用性影响(低):
- 攻击者可以执行
DROP操作直接摧毁数据库表,或者通过占用大量资源(如执行复杂查询、循环插入)导致数据库服务不可用。 - 不过 CVSS 评估此项为 低 (VA:L),表明初始设计中直接导致完全拒绝服务的可能性相对较低。
- 攻击者可以执行
综合风险
总体风险极高。综合来看,攻击者一旦成功,可以:
- 完全攻破后端数据库。
- 如果 DataEase 所在的服务器与数据库服务器在同一网络且使用共享的数据库账户,攻击者可能在数据库层面获得对整个数据平台的控制权。
- 由于 DataEase 是一个数据可视化工具,其数据库中很可能包含大量企业核心业务数据,因此该漏洞的泄露风险具有很强的破坏性。
修复建议
1. 立即升级(推荐)
官方已在 DataEase 2.10.23 版本中修复此漏洞。请立即将 DataEase 升级至该版本或更高:
# 如果使用 Docker Compose 部署
docker-compose pull dataease
docker-compose up -d
# 如果使用一键安装脚本
cd /opt/dataease
./install.sh upgrade 2.10.23
升级后,代码将使用参数化查询或预编译语句来替代直接字符串拼接,从而完全消除注入风险。
2. 临时缓解措施
如果无法立即升级,可采取以下临时措施:
最小权限原则:
- 确保具有数据源管理权限的用户数量最少,且这些用户的密码强度足够高。
- 对于已有的用户,检查是否存在不必要的
DATASOURCE:CREATE或DATASOURCE:EDIT权限。
限制数据源类型:
- 如果业务上不需要,可以通过配置防火墙或 DataEase 的组件限制,暂时关闭对高风险数据库类型(如 DB2、SQL Server)的连接支持。
Web 应用防火墙 (WAF):
- 在 DataEase 前端添加 WAF 规则,对请求中的
schema参数进行过滤,禁止包含 SQL 关键字或特殊字符(如'、;、--、/*等)的输入。 - 注意:这种方法只是临时缓解,不能完全杜绝攻击,因为恶意负载可以绕过部分简单的关键词过滤。
- 在 DataEase 前端添加 WAF 规则,对请求中的
网络隔离:
- 确保 DataEase 服务器与后端数据库之间的网络严格受控,部署在可信区域内。如果 DataEase 暴露在公网,强烈建议通过 VPN 或堡垒机进行访问。
参考资料
| 类型 | 链接/标识符 |
|---|---|
| CVE 详情 | NVD - CVE-2026-45417 |
| CWE 分类 | CWE-89 - SQL Injection |
| DataEase GitHub | DataEase 离线仓库 |
| 安全公告来源 | security-advisories@github.com |
总结
CVE-2026-45417 是一个针对 DataEase 的严重 SQL 注入漏洞。它利用了数据源 schema 参数在 SQL 语句构建时的直接拼接,使低权限攻击者能够直接攻击后端的关联数据库。利用该漏洞,攻击者可以完全读取、修改甚至破坏数据库资源,对企业的数据安全构成直接威胁。建议所有 DataEase 用户立即升级至 2.10.23 或更高版本,以彻底解决此问题。