‧
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/v1.55.2/metabase.jar
- Docker 镜像:通过
metabase/metabase-enterprise:latest
或metabase/metabase-enterprise:v1.55.2
。
如果您是自托管 Metabase 开源版本
您可以通过以下方式获取最新的已修补版本:
- JAR:https://downloads.metabase.com/v0.55.2/metabase.jar
- Docker 镜像:通过
metabase/metabase:latest
或metabase/metabase:v0.55.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,发现了最初的漏洞。
- Chaitin 安全响应研究所和独立安全研究员 bluE0,报告了另一个攻击途径。
- Reginaldo Silva,报告了另一个不同的攻击途径。
- Calif.io 团队的 Duc Nguyen 和 Jang Nguyen,报告了另一个攻击途径。
感谢您们为开源软件的安全做出的贡献。