CVE-2023-37470 Metabase vulnerable to remote code execution via POST /api/setup/validate API endpoint

Critical 10.0 Published Updated

Attackers can execute arbitrary code on Metabase servers by injecting malicious commands into H2 database connection strings via the setup validation API.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Over the internet
Victim action needed
Not needed
Fix
None listed

What is CVE-2023-37470?

CVE-2023-37470 is a critical code injection vulnerability in metabase, published on 4 Aug 2023. An attacker can exploit it over the internet without logging in, with no action from the victim.

Official description

Metabase is an open-source business intelligence and analytics platform. Prior to versions 0.43.7.3, 0.44.7.3, 0.45.4.3, 0.46.6.4, 1.43.7.3, 1.44.7.3, 1.45.4.3, and 1.46.6.4, a vulnerability could potentially allow remote code execution on one's Metabase server. The core issue is that one of the supported data warehouses (an embedded in-memory database H2), exposes a number of ways for a connection string to include code that is then executed by the process running the embedded database. Because Metabase allows users to connect to databases, this means that a user supplied string can be used to inject executable code. Metabase allows users to validate their connection string before adding a database (including on setup), and this validation API was the primary vector used as it can be called without validation. Versions 0.43.7.3, 0.44.7.3, 0.45.4.3, 0.46.6.4, 1.43.7.3, 1.44.7.3, 1.45.4.3, and 1.46.6.4 fix this issue by removing the ability of users to add H2 databases entirely. As a workaround, it is possible to block these vulnerabilities at the network level by blocking the endpoints `POST /api/database`, `PUT /api/database/:id`, and `POST /api/setup/validateuntil`. Those who use H2 as a file-based database should migrate to SQLite.

Weakness: CWE-94

Which versions are affected by CVE-2023-37470?

It affects 1 product.

Products include Metabase Metabase.

How do I fix CVE-2023-37470?

No fix has been published for CVE-2023-37470 yet. Limit exposure of the affected software until one is available.

Upgrade, and never evaluate templates, expressions or code built from user input. More about Code injection.

Is CVE-2023-37470 being exploited?

There is no known exploitation of CVE-2023-37470 in the wild and no public exploit code.

Sources

Also known as GHSA-p7w3-9m58-rq83.

Is CVE-2023-37470 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free