{"id":"PYSEC-2026-2180","details":"A critical remote code execution vulnerability exists in the unauthenticated REST API endpoint /99/ImportSQLTable in H2O-3 version 3.46.0.9 and prior. The vulnerability arises due to insufficient security controls in the parameter blacklist mechanism, which only targets MySQL JDBC driver-specific dangerous parameters. An attacker can bypass these controls by switching the JDBC URL protocol to jdbc:postgresql: and exploiting PostgreSQL JDBC driver-specific parameters such as socketFactory and socketFactoryArg. This allows unauthenticated attackers to execute arbitrary code on the H2O-3 server with the privileges of the H2O-3 process. The issue is resolved in version 3.46.0.10.","aliases":["CVE-2026-3960","GHSA-qmcv-hh7c-3m56"],"modified":"2026-07-13T07:26:29.642873751Z","published":"2026-04-23T10:16:17.813Z","references":[{"type":"FIX","url":"https://github.com/h2oai/h2o-3/commit/b9ae2d3c5220db2dc53753357a783e590364d044"},{"type":"EVIDENCE","url":"https://huntr.com/bounties/6954fe04-b905-453f-8c53-205ac8377e0d"}],"affected":[{"package":{"name":"h2o","ecosystem":"PyPI","purl":"pkg:pypi/h2o"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.46.0.10"}]}],"versions":["3.10.0.10","3.10.0.3","3.10.0.6","3.10.0.7","3.10.0.8","3.10.3.3","3.10.3.4","3.10.4.1","3.10.4.2","3.10.4.3","3.10.4.4","3.10.4.6","3.10.4.8","3.16.0.1","3.16.0.2","3.16.0.3","3.16.0.4","3.18.0.1","3.18.0.10","3.18.0.11","3.18.0.2","3.18.0.3","3.18.0.4","3.18.0.5","3.18.0.6","3.18.0.7","3.18.0.8","3.18.0.9","3.20.0.4","3.20.0.5","3.20.0.6","3.20.0.7","3.20.0.8","3.22.0.1","3.22.0.2","3.22.0.3","3.22.0.4","3.22.0.5","3.22.1.1","3.22.1.2","3.22.1.3","3.22.1.4","3.22.1.5","3.22.1.6","3.24.0.1","3.24.0.2","3.24.0.3","3.24.0.4","3.24.0.5","3.26.0.1","3.26.0.10","3.26.0.11","3.26.0.2","3.26.0.3","3.26.0.4","3.26.0.5","3.26.0.6","3.26.0.8","3.26.0.9","3.28.0.1","3.28.0.2","3.28.0.3","3.28.1.2","3.28.1.3","3.30.0.1","3.30.0.2","3.30.0.3","3.30.0.4","3.30.0.5","3.30.0.6","3.30.0.7","3.30.1.1","3.30.1.2","3.30.1.3","3.32.0.2","3.32.0.3","3.32.0.4","3.32.0.5","3.32.1.1","3.32.1.2","3.32.1.3","3.32.1.4","3.32.1.5","3.32.1.6","3.32.1.7","3.34.0.3","3.34.0.7","3.34.0.8","3.36.0.2","3.36.0.3","3.36.0.4","3.36.1.1","3.36.1.2","3.36.1.3","3.36.1.4","3.36.1.5","3.38.0.1","3.38.0.2","3.38.0.3","3.38.0.4","3.40.0.1","3.40.0.2","3.40.0.3","3.40.0.4","3.42.0.1","3.42.0.2","3.42.0.3","3.42.0.4","3.44.0.1","3.44.0.2","3.44.0.3","3.46.0.1","3.46.0.2","3.46.0.3","3.46.0.4","3.46.0.5","3.46.0.6","3.46.0.7","3.46.0.8","3.46.0.9"],"ecosystem_specific":{},"database_specific":{"source":"https://github.com/pypa/advisory-database/blob/main/vulns/h2o/PYSEC-2026-2180.yaml"}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"}]}