‧
阅读时间:3 分钟
紧急:立即升级您的 Metabase 安装。发现 H2 相关的远程代码执行漏洞
Metabase 团队
‧ 3 分钟阅读

分享本文
总结:请立即升级您的 Metabase 安装。(再次提醒)
我们又发现了另一个 H2 相关漏洞。我们已经修复了多个漏洞,并且正在将 H2 从我们支持的数据库中移除。请阅读下文了解更多信息。
什么是漏洞?
核心问题在于我们支持的一个数据仓库(嵌入式内存数据库 H2)暴露了多种方式,允许连接字符串包含由运行嵌入式数据库的进程执行的代码。由于我们允许用户连接到数据库,这意味着用户提供的字符串可以用于注入可执行代码。
我们允许用户在添加数据库(包括在设置时)之前验证其连接字符串。此验证 API 是主要利用的途径,因为可以在未经验证的情况下调用它。
我们之前对用户输入进行了清理,移除了允许代码执行的 init
命令。在一周之内,独立的安全性研究人员向我们报告了三个与 H2 连接字符串处理相关的连续漏洞。我们依次修复了这些漏洞。
出于安全考虑,Metabase 不再支持 H2 作为官方数据库
由于这些攻击的多样性以及该数据库驱动程序的使用率不高,我们正在完全移除用户添加 H2 数据库的功能。我们认为在一个不安全的核心问题上继续打用户输入清理的“补丁”是不负责任的,因此我们正在从我们的应用程序中移除此功能。从这个版本开始,您将无法添加新的 H2 数据库连接。我们是在了解到 H2 中发现的严重漏洞后做出此决定的。
重要细节
Metabase X.43 及更高版本面临风险
我们知道您刚刚升级以修补上一个漏洞,但您应该再次升级以防范此额外的严重漏洞。该漏洞已在野外被利用,因此您应尽快升级您的 Metabase。请参阅我们的漏洞公告。
如果您是自托管的 Metabase Enterprise 客户
您可以在以下位置获取最新的修补版本:
- JAR:https://downloads.metabase.com/enterprise/latest/metabase.jar
- Docker 镜像通过
metabase/metabase-enterprise:latest
或metabase/metabase-enterprise:v1.56.2
获取。
如果您是自托管 Metabase 的开源版本
您可以在以下位置获取最新的修补版本:
- JAR:https://downloads.metabase.com/latest/metabase.jar
- Docker 镜像通过
metabase/metabase:latest
或metabase/metabase:v0.56.2
获取。
如果您运行的是旧版本(43、44 或 45)
升级到
请参阅 Metabase 版本和我们的升级文档。
如果您使用的 Metabase 版本早于 0.43
您不受此漏洞影响。然而,自那时以来,已有很多其他的安全和错误修复,我们强烈建议您尽快升级到最新版本。
如果您是 Metabase 云客户
我们已阻止了易受攻击的端点,并正在对您的 Metabase 实例应用最新的补丁。我们还在仔细审计所有系统,以防未经授权的访问。
如果您将 H2 用作 Metabase 的应用程序数据库
您不受影响。这些漏洞仅限于 H2 的初始连接和设置,而嵌入式 H2 数据库不暴露此攻击面。
如果您在生产环境中使用 H2 数据库,我们建议切换到其他数据库
如果您已有 H2 数据库的现有连接,您仍然可以使用 Metabase 连接到该数据库。但我们强烈建议您将数据从 H2 数据库迁移到其他数据库。
感谢 AssetNote、Qing、Reginaldo 和 Calif 发现并提醒我们这些漏洞
最后,感谢安全研究人员和我们社区中帮助我们发现这些漏洞的其他人员。
鸣谢
- Assetnote 的 Shubham Shah 和 Maxwell Garrett,发现了初始漏洞。
- 长亭科技安全响应中心 和独立安全研究员 bluE0,报告了另一个攻击向量。
- Reginaldo Silva,报告了又一个不同的攻击向量。
- Calif.io 团队的 Duc Nguyen 和 Jang Nguyen,报告了另一个攻击向量。
感谢您维护开源软件的安全。