數千個自主托管的 Metabase 實例因 CVE-2026-72898 漏洞而暴露
Detection stack
- AIDR
- Alert
- ETL
- Query
总结
Metabase 版本 0.58 及更高版本中的一个关键的未经身份验证的 SQL 注入漏洞允许攻击者获得对应用程序数据库的管理员访问权限。此缺陷可能导致连接数据库凭据的盗取,并可能促进横向移动。该漏洞在公开披露前已被在野利用。
调查
Dataminr 的 TRACE 团队进行了全网扫描,识别出大约 11,000 个自托管的 Metabase 实例,其中 4,309 个被标记为可能存在漏洞。审查发现,受影响分支的指纹主机中超过 97% 仍未修补。一些 Metabase 云租户已披露了未授权的数据访问事件。
缓解
组织应立即将自托管的 Metabase 部署升级到各自分支的最新修补版本。如果无法立即修补,应通过 WAF 或网络控制限制对 /api/session/reset_password 端点的外部访问。管理员还应通过清除 core_session 表来撤销所有活动会话。
响应
检测后,组织必须在 24 小时内轮换与 Metabase 连接的数据库的所有凭据。安全团队应通过审查 Metabase 活动日志、查询历史记录和连接数据库的访问日志来进行威胁狩猎,查找异常的管理操作。团队还必须验证重置密码端点是否仍可从不受信任的网络访问。
攻击流程
我们仍在更新这一部分。
检测
可能的 CVE-2026-72898 (Metabase 中的未经身份验证的 SQL 注入) 利用尝试 (通过网络服务器)
Metabase 中的未经身份验证的 SQL 注入 CVE-2026-72898 [网络服务器]
模拟执行
-
攻击叙述与命令: 攻击者已识别目标网络服务器上运行的 Metabase 实例。知晓 CVE-2026-72898 允许通过密码重置流程进行未经身份验证的 SQL 注入后,攻击者精心构造了恶意 POST 请求。目的是向 /api/session/reset_password
端点发送一个利用底层数据库的有效负载。此操作旨在通过触发特定 URI 和逻辑中定义的方法来触发检测规则。endpoint that exploits the underlying database. This action is designed to trigger the detection rule by hitting the specific URI and method defined in the logic. -
回归测试脚本:
#!/bin/bash # CVE-2026-72898 利用尝试的模拟脚本 # 目标:Metabase /api/session/reset_password 端点 TARGET_URL="http://localhost/api/session/reset_password" echo "[+] 通过 POST 请求启动模拟的 SQL 注入攻击..." # 通过 POST 发送模拟的恶意负载 # 负载代表尝试将 SQL 注入到密码重置流程中 curl -X POST "$TARGET_URL" -H "Content-Type: application/json" -d '{"email": "admin@example.com", "new_password": "password''' OR 1=1 --"}' echo -e "n[+] 攻击命令已发送。请检查 SIEM 以检测 POST /api/session/reset_password 的存在" -
清理命令:
# curl 命令不会对系统造成永久性更改。 # 清除 Nginx 日志以获得干净的状态(在生产中谨慎使用): # sudo truncate -s 0 /var/log/nginx/access.log echo "[+] 清理完成。目标系统上没有遗留任何工件。"