Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Network-reachable and low-complexity, but requires an authenticated user with native-query rights (PR:L); deserialization yields full RCE, so C/I/A all High with unchanged scope.
Primary rating from Vendor (github).
CVSS VectorNVD
Lifecycle Timeline
8DescriptionNVD
Metabase is an open-source business intelligence and embedded analytics tool. Prior to 1.58.15, 1.59.12, 1.60.6.3, and 1.61.1.4, Metabase instances with an H2 database connection, including the default sample database, deserialize arbitrary Java objects returned in H2 native query result columns of type OTHER without validation, allowing an authenticated user who can run native H2 queries to execute code on the Metabase server. This issue is fixed in versions 1.58.15, 1.59.12, 1.60.6.3, and 1.61.1.4.
Articles & Coverage 2
AnalysisAI
Remote code execution in Metabase's H2 database driver allows an authenticated user with native-query privileges to run arbitrary Java on the server. When Metabase returns H2 result columns of type OTHER (JDBC JAVA_OBJECT), it deserializes the embedded Java object without validation, so a crafted native H2 query triggers CWE-502 unsafe deserialization and full server compromise. It affects any instance using an H2 connection, including the default bundled sample database. No public exploit is identified at time of analysis (SSVC exploitation: none; EPSS 0.45%), though the upstream fix commit and vendor advisory GHSA-w95f-x9v9-wv36 are public.
Technical ContextAI
Metabase is a Clojure/Java open-source business intelligence platform. The flaw lives in the H2 JDBC driver integration (src/metabase/driver/h2.clj), which reads result-set columns via .getObject. H2 supports a native column type OTHER that maps to JDBC Types.JAVA_OBJECT and carries a serialized Java object; calling .getObject on such a column invokes Java native deserialization (ObjectInputStream) on attacker-influenced bytes. This is a textbook CWE-502 (Deserialization of Untrusted Data): the H2 engine performs the deserialization when the query result is materialized, so any gadget chain on the Metabase classpath can lead to code execution. The fix inspects .getColumnType and throws 'Unable to parse jdbc type' whenever the column type is Types/JAVA_OBJECT, refusing to deserialize OTHER columns entirely.
RemediationAI
Vendor-released patch: upgrade to Metabase 1.58.15, 1.59.12, 1.60.6.3, or 1.61.1.4 (community tags v0.58.15, v0.59.12, v0.60.6.3, v0.61.1.4), which reject H2 columns of type JAVA_OBJECT instead of deserializing them (fix commit 00f42511fe3bc4385652a2e96862ee6fd7d42cf8); see the advisory at https://github.com/metabase/metabase/security/advisories/GHSA-w95f-x9v9-wv36 and the corresponding GitHub release tags. If immediate patching is not possible, revoke native (raw SQL) query permissions on all H2-backed databases and, where feasible, remove or disconnect the bundled H2 sample database and any production H2 connections, migrating analytics to a non-H2 warehouse; the trade-off is that analysts lose native-query capability against those sources and the sample dataset becomes unavailable. Additionally restrict who holds data-editor/native-query roles, since exploitation depends on that privilege.
Oracle Java SE 7 Update 6 and earlier contains multiple sandbox bypass vulnerabilities via the ClassFinder and forName m
Remote code execution in IBM Sterling B2B Integrator, Sterling Integrator, and Tivoli Common Reporting allows unauthenti
Java Runtime Environment sandbox bypass via incorrect image channel verification in 2D component allows remote unauthent
Oracle Java SE JDK/JRE 7 and 6 Update 27 and earlier allows remote code execution with complete system compromise throug
JBoss Seam 2 in Red Hat JBoss EAP 4.3.0 fails to sanitize JBoss Expression Language inputs, allowing remote attackers to
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 update 4 and earlier, 6 up
Multiple vulnerabilities in Oracle Java 7 before Update 11 allow remote attackers to execute arbitrary code by (1) using
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 2 and earlier, 6 Up
The WLS Security component in Oracle WebLogic Server 10.3.6.0, 12.1.2.0, 12.1.3.0, and 12.2.1.0 allows remote attackers
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 7 and earlier allow
Remote unauthenticated attackers can execute arbitrary code on Adobe ColdFusion servers through Java deserialization fla
The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during
Same weakness CWE-502 – Deserialization of Untrusted Data
View allSame technique Deserialization
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-42659