🟠 【深度分析】高危安全漏洞: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 构建方式。

  1. 触发位置:io.dataease.datasource.provider.CalciteProvider#checkStatus 方法。

  2. 关键代码逻辑:该方法在检查数据源是否可达时,会获取某个数据源的配置信息,其中包含 schema(模式)字段。随后,程序会将 configuration.getSchema() 返回的值直接拼接进动态 SQL 语句中:

    getTablesSql = 预设的查询固定部分 + configuration.getSchema() + 后续查询部分
    
  3. 漏洞点:configuration.getSchema() 是一个字符串拼接变量,而非参数化查询或预编译语句的绑定变量。这意味着如果攻击者可以控制数据源配置中的 schema 字段(如通过 UI 界面添加或修改数据源时输入恶意值),那么该恶意字符串将被直接嵌入到 SQL 语句中并被执行。

攻击向量分析

  1. 攻击前提:攻击者需要拥有 低权限的用户账户(CVSS: PR:L),例如一个仅可添加/配置数据源的用户。在 DataEase 的默认权限模型中,这类用户通常是被允许进行数据源管理的。

  2. 攻击步骤:

    • 登录受影响的 DataEase 实例。
    • 添加一个新的数据库连接(如 DB2、SQL Server、PostgreSQL 等受影响的数据源类型)。
    • 在 “Schema” 字段中填入包含 SQL 注入负载的字符串,例如:
      正常模式名' UNION SELECT 1,2,3,4,5,6 -- 
      
      或是针对特定数据库构造的篡改语句。
    • 触发连接状态检查,DataEase 随即执行被污染后的 SQL 语句。
  3. 影响的数据源:漏洞影响 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) 攻击完全在服务器端执行,无需受害用户交互。
攻击前置条件 低 攻击者需要能够添加或修改数据源配置,这通常是内置功能。

潜在后果

  1. 机密性影响(高):

    • 攻击者可以通过 SQL 注入读取数据库中的所有表数据,包括敏感的业务数据、用户凭证 (哈希值/令牌)、系统配置信息等。
    • 对于某些数据库(如 SQL Server),攻击者还可能利用 xp_cmdshell 等扩展功能,直接读取服务器文件系统中的文件。
  2. 完整性影响(高):

    • 攻击者可以 修改、插入、删除 数据库中的表数据。
    • 在 SQL Server、PostgreSQL 等数据库中,攻击者还可通过 CREATE/ALTER LOGIN 等 DDL 命令提升自己的数据库权限,从而控制整个数据库实例。
  3. 可用性影响(低):

    • 攻击者可以执行 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 服务器与后端数据库之间的网络严格受控,部署在可信区域内。如果 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 或更高版本,以彻底解决此问题。