---
id: "CVE-2024-10553"
kind: "vulnerability"
aliases: ["CVE-2024-10553", "GHSA-h7xg-cmpp-48hf"]
title: "H2O Deserialization of Untrusted Data Vulnerability"
severity: "critical"
cvss: 9.8
epss: 0.01587
exploited: false
status: "open"
category: "package"
products: [{"name": "h2o", "fixed": ["3.46.0.6"], "affected": "< 3.46.0.6", "ecosystem": "pypi"}, {"name": "ai.h2o:h2o-core", "fixed": ["3.46.0.6"], "affected": "< 3.46.0.6", "ecosystem": "maven"}, {"name": "h2o", "fixed": [], "affected": "= 3.46.0.4", "ecosystem": "vendor"}]
ecosystems: ["maven", "pypi", "vendor"]
tags: ["cwe-502", "h2o", "java", "ml-pipelines", "package", "python", "self-hosted"]
not_affected_if: ["already-on-3.46.0.6", "no-mysql-or-postgresql-driver", "rest-api-not-exposed"]
published_at: "2025-03-20T10:15:17+00:00"
first_seen_at: "2026-10-27T16:35:55+00:00"
updated_at: "2026-10-27T17:03:04+00:00"
sources: [{"source": "ghsa", "url": "https://github.com/advisories/GHSA-h7xg-cmpp-48hf", "first_seen_at": "2026-10-27T16:35:55+00:00"}, {"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2024-10553", "first_seen_at": "2026-10-27T17:03:04+00:00"}]
---

# H2O Deserialization of Untrusted Data Vulnerability

The H2O machine learning REST API accepts user-controlled JDBC URLs on two endpoints and passes them to DriverManager.getConnection, which deserializes untrusted data when a MySQL or PostgreSQL driver is on the classpath. An unauthenticated remote attacker can execute arbitrary code on the server.

_Summary, check and fix written by a model from the sources; labelled as such._

## Affected

- pypi:h2o affected < 3.46.0.6 fixed 3.46.0.6
- maven:ai.h2o:h2o-core affected < 3.46.0.6 fixed 3.46.0.6
- vendor:h2o affected = 3.46.0.4 fixed ?

## How to check

- Check the installed H2O Python package version with `pip show h2o` and compare against `3.46.0.6`
- Check the Maven dependency `ai.h2o:h2o-core` in the project's build file or `mvn dependency:tree` and compare against `3.46.0.6`
- Check whether the H2O REST API is reachable from untrusted networks, since the endpoints `POST /99/ImportSQLTable` and `POST /3/SaveToHiveTable` are the attack path

## Fix

- Upgrade the `h2o` PyPI package to `3.46.0.6` or later
- Upgrade the `ai.h2o:h2o-core` Maven artifact to `3.46.0.6` or later
- Restrict network access to the H2O REST API to trusted hosts until upgraded

## Timeline

- 2026-10-27T16:35:55+00:00 ghsa https://github.com/advisories/GHSA-h7xg-cmpp-48hf
- 2026-10-27T17:03:04+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2024-10553

## From the sources

A vulnerability in the h2oai/h2o-3 REST API versions 3.46.0.4 allows unauthenticated remote attackers to execute arbitrary code via deserialization of untrusted data. The vulnerability exists in the endpoints POST /99/ImportSQLTable and POST /3/SaveToHiveTable, where user-controlled JDBC URLs are passed to DriverManager.getConnection, leading to deserialization if a MySQL or PostgreSQL driver is available in the classpath. This issue is fixed in version 3.46.0.6.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
