Metabase 中通过 POST /api/session/reset_password 存在的未认证 SQL 注入。
CVSS 10.0,已列入 CISA KEV 目录,正在被野外利用。
密码重置请求体中的一个未声明字段以 HoneySQL 结构 而非经过验证的标识符到达应用数据库
用户查询。JSON 对象键成为 Clojure 关键字,因此 {"raw": "<SQL>"} 会编译为 HoneySQL 的 :raw
子句,并以 原样、无参数化 的方式输出 — 可对 Metabase 应用数据库执行任意 SQL,且无需任何认证。
本仓库包含一个 检测器(基于盲注、时间判断的裁决工具)以及一份源自厂商补丁的 根因分析。它旨在帮助防御者验证自身暴露面,并供安全研究人员研究该漏洞。它不会 窃取数据,也不提供武器化的管理员接管利用程序。
cve-2026-72898.py — 版本门控、失败即关闭的检测器(VULN / SAFE / UNTESTED)TECHNICAL.md — 基于 v0.63.2 → v0.63.15 补丁差异的完整根因分析lab/docker-compose.yml — 一个易受攻击 + 已修补的实例,用于复现检测器对受影响实例报告 VULN,对已修补实例报告 SAFE — 当请求被限流、缓存或从未到达
应用时,则报告 UNTESTED(绝不会误报 SAFE)。另提供一份 asciinema 录像 作为记录。
| 分支 | 易受攻击 | 已修复 |
|---|---|---|
| 0.58 / 1.58 | < 0.58.24 | 0.58.24 |
| 0.59 / 1.59 | < 0.59.21 | 0.59.21 |
| 0.60 / 1.60 | < 0.60.17 | 0.60.17 |
| 0.61 / 1.61 | < 0.61.11 | 0.61.11 |
| 0.62 / 1.62 | < 0.62.9 | 0.62.9 |
| 0.63 / 1.63 | < 0.63.5 | 0.63.5 |
安全公告:GHSA-vwf4-m7j8-wcjf。 如果您运行的是受影响版本,请立即升级 — 该漏洞正在被野外利用。
POST /api/session/reset_password HTTP/1.1
Content-Type: application/json
{"token":"1_00000000-0000-0000-0000-000000000000",
"password":"Placeholder1!",
"user-id":{"raw":"<ARBITRARY SQL>"}}
在应用数据库中产生:
SELECT id, ... FROM core_user WHERE id = (<ARBITRARY SQL>)
该漏洞是盲注 — 重置流程会吞掉 SQL 错误,并在所有情况下返回相同的
400 {"errors":{"password":"Invalid reset token"}} — 因此检测器使用
时间盲注。完整的数据流和补丁差异请参阅 TECHNICAL.md。
python3 cve-2026-72898.py https://metabase.example.com # H2 应用数据库(默认)
python3 cve-2026-72898.py https://metabase.example.com --engine postgres # pg_sleep 时间盲注
python3 cve-2026-72898.py https://metabase.example.com --json --trials 5
退出码 0 = VULN,1 = SAFE 或 UNTESTED。
裁决结果为 VULN / SAFE / UNTESTED — 绝不会是"可能没问题"。该工具:
--force 可有意覆盖;X-Forwarded-For,因为重置端点会在 10 次尝试后限流,而限流响应是一个快速的 400,否则会伪装成否定结果;SYSTEM_RANGE 执行 sum(x)),并要求延迟同时超过绝对下限和对照组自身的时间波动;UNTESTED,而非 SAFE。cd lab
docker compose up -d # 3300 = 易受攻击的 v0.63.2,3301 = 已修补的 v0.63.15
# 等待约 90 秒完成首次运行的数据库初始化
python3 ../cve-2026-72898.py http://127.0.0.1:3300 # -> VULN
python3 ../cve-2026-72898.py http://127.0.0.1:3301 --force # -> SAFE
已验证:v0.63.2 显示 8 秒以上的延迟差,且随载荷行数线性扩展 (5M→0.85s,10M→1.96s,20M→4.61s,40M→7.97s);v0.63.15 无任何差异。
仅测试您拥有或明确获授权评估的系统。在大多数司法管辖区,未经授权访问 计算机系统属违法行为。本工具通过良性的时间探测来检测漏洞,并且有意不读取、修改或窃取数据。
MIT — 参见 LICENSE。