{"id":"CVE-2026-3960","aliases":["EUVD-2026-25205","GHSA-qmcv-hh7c-3m56","PYSEC-2026-2180"],"status":"published","title":"Remote Code Execution in h2oai/h2o-3","description":"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.","severity":{"version":"3.0","score":5.9,"vector":"CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-09","score":0.00938,"percentile":0.61135,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-94"],"published":"2026-04-23T08:47:48Z","modified":"2026-10-28T11:13:00Z","fixes":[{"ecosystem":"Maven","package":"ai.h2o:h2o-core","fixed_in":["3.46.0.10"],"sources":["ghsa","osv"]},{"ecosystem":"PyPI","package":"h2o","fixed_in":["3.46.0.10"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"Maven","package":"ai.h2o:h2o-core","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.46.0.10"}]}]},{"source":"osv","ecosystem":"Maven","package":"ai.h2o:h2o-core","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.46.0.10"}]}],"versions":["0.1.10","0.1.11","0.1.12","0.1.13","0.1.14","0.1.15","0.1.16","0.1.17","0.1.18","0.1.19","0.1.20","0.1.21","0.1.22","0.1.23","0.1.24","0.1.25","0.1.3","0.1.3.1","0.1.4","0.1.5","0.1.6","0.1.8","0.1.9","0.2.3.5","0.2.3.6","0.3.0.2","3.0.0.12","3.0.0.16","3.0.0.18","3.0.0.19","3.0.0.22","3.0.0.25","3.0.0.26","3.0.0.30","3.0.0.5","3.0.0.8","3.0.1.2","3.0.1.3","3.0.1.4","3.10.0.1","3.10.0.10","3.10.0.2","3.10.0.3","3.10.0.4","3.10.0.5","3.10.0.6","3.10.0.7","3.10.0.8","3.10.0.9","3.10.1.1","3.10.1.2","3.10.2.1","3.10.2.2","3.10.3.1","3.10.3.2","3.10.3.3","3.10.3.4","3.10.3.5","3.10.3.6","3.10.4.1","3.10.4.11","3.10.4.12","3.10.4.2","3.10.4.3","3.10.4.4","3.10.4.5","3.10.4.6","3.10.4.7","3.10.4.8","3.10.4.9","3.10.5.1","3.10.5.2","3.10.5.3","3.10.5.4","3.12.0.1","3.14.0.1","3.14.0.2","3.14.0.3","3.14.0.4","3.14.0.5","3.14.0.6","3.14.0.7","3.16.0.1","3.16.0.10","3.16.0.11","3.16.0.12","3.16.0.2","3.16.0.3","3.16.0.4","3.16.0.5","3.16.0.6","3.16.0.7","3.16.0.8","3.16.0.9","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.2.0.1","3.2.0.2","3.2.0.3","3.2.0.4","3.2.0.5","3.2.0.6","3.2.0.7","3.2.0.8","3.2.0.9","3.20.0.1","3.20.0.10","3.20.0.2","3.20.0.3","3.20.0.4","3.20.0.5","3.20.0.6","3.20.0.7","3.20.0.8","3.20.0.9","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.0.4","3.28.1.1","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.1","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.1","3.34.0.3","3.34.0.4","3.34.0.5","3.34.0.6","3.34.0.7","3.34.0.8","3.35.0.2","3.36.0.1","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.4.0.1","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","3.6.0.1","3.6.0.10","3.6.0.11","3.6.0.12","3.6.0.2","3.6.0.3","3.6.0.4","3.6.0.5","3.6.0.7","3.6.0.8","3.8.0.1","3.8.0.2","3.8.0.3","3.8.0.4","3.8.0.5","3.8.0.6","3.8.1.1","3.8.1.2","3.8.1.3","3.8.1.4","3.8.2.1","3.8.2.11","3.8.2.2","3.8.2.3","3.8.2.4","3.8.2.5","3.8.2.6","3.8.2.7","3.8.2.8","3.8.2.9","3.8.3.1","3.8.3.2","3.8.3.3","3.8.3.4"]},{"source":"osv","ecosystem":"PyPI","package":"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"]}],"products":[{"vendor":"h2o","product":"h2o"},{"vendor":"h2oai","product":"h2oai/h2o-3"}],"references":[{"url":"https://huntr.com/bounties/6954fe04-b905-453f-8c53-205ac8377e0d","tags":["Exploit","Third Party Advisory","web","evidence"]},{"url":"https://github.com/h2oai/h2o-3/commit/b9ae2d3c5220db2dc53753357a783e590364d044","tags":["Patch","fix","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-3960","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-qmcv-hh7c-3m56"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/3xxx/CVE-2026-3960.json","tags":["advisory"]},{"url":"https://github.com/h2oai/h2o-3","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2026-3960","title":"Remote Code Execution in h2oai/h2o-3","description":"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.","status":"published","published":"2026-04-23T08:47:48.618Z","modified":"2026-04-23T12:29:32.439Z","cvss":[{"version":"3.0","score":5.9,"vector":"CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"medium","assessor":"cna"}],"cwes":["CWE-94"],"updated_at":"2026-11-02T13:48:58.05327Z"}],"euvd":[{"id":"EUVD-2026-25205","description":"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.","status":"published","published":"2026-04-23T08:47:48Z","modified":"2026-04-23T12:29:32Z","cvss":[{"version":"3.0","score":5.9,"vector":"CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"medium"}],"updated_at":"2026-11-02T19:24:19.171803Z"}],"ghsa":[{"id":"GHSA-qmcv-hh7c-3m56","title":"H2O-3 is Vulnerable to Code Injection","description":"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.","status":"published","published":"2026-04-23T12:31:34Z","modified":"2026-05-04T20:15:48Z","cvss":[{"version":"3.0","score":5.9,"vector":"CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"medium"}],"cwes":["CWE-94"],"updated_at":"2026-11-02T14:40:00.970271Z"}],"nvd":[{"id":"CVE-2026-3960","description":"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.","status":"published","published":"2026-04-23T10:16:17.813Z","modified":"2026-10-26T22:10:00.163Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"primary"},{"version":"3.0","score":5.9,"vector":"CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"medium","assessor":"secondary"}],"cwes":["CWE-94"],"updated_at":"2026-11-02T14:12:15.867234Z"}],"osv":[{"id":"CVE-2026-3960","title":"Remote Code Execution in h2oai/h2o-3","description":"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.","status":"published","published":"2026-04-23T08:47:48.618Z","modified":"2026-10-28T11:13:00.901720322Z","cvss":[{"version":"3.0","score":5.9,"vector":"CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"medium"}],"cwes":["CWE-94"],"updated_at":"2026-11-02T15:45:03.040464Z"},{"id":"GHSA-qmcv-hh7c-3m56","title":"H2O-3 is Vulnerable to Code Injection","description":"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.","status":"published","published":"2026-04-23T12:31:34Z","modified":"2026-07-13T07:26:29.642873751Z","cvss":[{"version":"3.0","score":5.9,"vector":"CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"medium"}],"cwes":["CWE-94"],"updated_at":"2026-11-02T15:46:54.760124Z"},{"id":"PYSEC-2026-2180","description":"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.","status":"published","published":"2026-04-23T10:16:17.813Z","modified":"2026-07-13T07:26:29.642873751Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-02T15:52:55.537808Z"}]}}
