CVE-2022-23221 H2 Database Console JDBC URL 远程代码执行漏洞
影响攻击者可远程执行任意代码
CVE-2022-23221 是 H2 Database Console 中因 JDBC URL 处理不当导致的远程代码执行漏洞。攻击者可通过构造恶意的 JDBC URL 触发 JNDI 注入或加载远程类,从而在目标服务器上执行任意代码。该漏洞常被用于 CTF 和渗透测试环境(如 Vulhub 靶场)。
影响范围
受影响版本为 H2 Database 2.0.206 之前的版本(含 1.4.200 等),具体版本范围请参考官方公告。
漏洞详情
漏洞类型为远程代码执行(RCE),成因是 H2 Console 允许用户输入 JDBC URL 并连接,且未对 URL 中的危险参数(如 INIT、TRIGGER 等)进行有效过滤。攻击者可利用 JNDI 注入或通过加载远程恶意类的方式,在目标 JVM 中执行任意代码。利用方式通常为访问 H2 Console 页面,提交恶意 JDBC URL 触发。
利用条件与风险
利用前提是 H2 Console 对外可访问且未启用认证或认证可绕过。实战中若暴露在公网,攻击者可直接获取服务器权限,风险极高。
修复建议
官方修复方案为升级至 H2 Database 2.0.206 或更高版本。临时缓解措施包括限制 H2 Console 的网络访问、启用强认证、避免使用不受信任的 JDBC URL。
公开 PoC
github.com/CyberCTF/vulhub-h2database-cve-2022-23221
packetstormsecurity.com/files/165676/H2-Database-Console-Remote-Code-Execution.html
Vulhub h2database/CVE-2022-23221: H2 Database Console JDBC URL RCE (CVE-2022-23221), run with Isoloom