Unauthenticated code execution via JDBC URL settings
Published Jan 19, 2022 · Updated May 5, 2025
Argument injection in H2 Console before 2.1.210 allows remote attackers to execute arbitrary code through a crafted JDBC URL. WebServer.getConnection appends a creation restriction to the attacker-controlled URL, where injected settings override it and INIT=RUNSCRIPT loads an attacker-hosted SQL script. The console must be remotely accessible; exploitation creates an in-memory database and runs trigger code in the H2 Console process without authentication.
Summary
What happened
Argument injection in H2 Console before 2.1.210 allows remote attackers to execute arbitrary code through a crafted JDBC URL. WebServer.getConnection appends a creation restriction to the attacker-controlled URL, where injected settings override it and INIT=RUNSCRIPT loads an attacker-hosted SQL script. The console must be remotely accessible; exploitation creates an in-memory database and runs trigger code in the H2 Console process without authentication.
The record
- CVE
- CVE-2022-23221
- Published
- Jan 19, 2022
- Updated
- May 5, 2025
- Vendor
- Unknown vendor
- Product
- Unknown product
- Classifications
- CWE-88, CWE-502, T1190
- Attack vector
- network
- Privileges
- unauthenticated
Timeline
How it unfolded
- Jan 19, 2022CVE publishedPublication date reported by the CVE source.
- May 5, 2025Record updatedLatest update available in the CVE record.
Exploitability
Present is not the same as exploitable
Compare your product and version with the public record. A matching version still requires validation against your environment.
Is a vulnerable build present?
What conditions does exploitation require?
What is affected?
Affected products and versions are unavailable in this record.
Published CVSS scores
CVSS describes severity. EPSS estimates exploitation probability.
Attacks
What attackers are doing with it
Daily unique IPs observed by Shadowserver honeypots for known exploited vulnerabilities (KEVs). Missing observations do not establish an absence of attacks.
Weakness, pattern, technique
Public exploit references
- H2 Database Console unauthenticated RCE proof of conceptfunctional · demonstrated
Labels summarize the accepted research assessment. They do not indicate a test against your environment.
Technologies
Your stack
See the directory against your own environment.
Your stack
Check the software in your environment
Book a demo to see how Hinoki identifies affected software and validates exploitability in your environment.
Book a demo