CVE-2023-6038
Access Control in H2O
Raw vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:NCVSS and EPSS are reproduced from their sources (NVD, FIRST EPSS). Risk Priority is our own derived reading, not an NVD score.
Summary
CVE-2023-6038 is a high-severity Missing Authorization (CWE-862) vulnerability in H2O H2O. Its CVSS base score is 7.5 (High).
Operationally, ranked in the top 9% of CVEs by exploit likelihood; it is not currently listed in the CISA KEV catalog; a public proof-of-concept is referenced.
Deeper analysis AI-assisted summary
Synthesised by an AI model from the NVD description and linked references — a reading aid, not an authoritative source.
A Local File Inclusion vulnerability tracked as CVE-2023-6038 affects the REST API in h2o-3 version 3.40.0.4. Unauthenticated remote attackers can read arbitrary files on the server by sending crafted GET requests to the ImportFiles endpoint or POST requests to the ParseSetup endpoint, with access limited only by the privileges of the process running the h2o-3 instance. The flaw stems from missing authorization checks (CWE-862) and is present in the default installation without requiring user interaction, resulting in a CVSS 3.1 score of 7.5 focused on high confidentiality impact.
Attackers with network access to the h2o-3 instance can exploit the endpoints directly to retrieve sensitive files such as configuration data or credentials stored on the host. Because the vulnerability requires no authentication or special privileges, it can be triggered from any remote system able to reach the API.
The provided references consist of duplicate links to a huntr.dev bounty report that describes the issue; no vendor advisory, patch details, or mitigation guidance appear in the supplied information. The associated EPSS score has remained stable at its recorded peak of 0.6328.
OWASP Top 10 for Web (2025)
EU & UK References
- 🇪🇺 ENISA EUVD: EUVD-2023-2900
Vulnerability Data
A Local File Inclusion (LFI) vulnerability exists in the h2o-3 REST API, allowing unauthenticated remote attackers to read arbitrary files on the server with the permissions of the user running the h2o-3 instance. This issue affects the default installation and…
more
does not require user interaction. The vulnerability can be exploited by making specific GET or POST requests to the ImportFiles and ParseSetup endpoints, respectively. This issue was identified in version 3.40.0.4 of h2o-3.
- CWE(s)
Related Threats
CVEs Like This One
Affected Assets
Mitigating Controls
Likely Mitigating Controls AI
Per-CVE control mapping for this CVE has not run yet; the list below is derived from the weakness types (CWEs) cited in the NVD entry.
Requiring an access control policy ensures authorization checks are defined and applied for critical functions.
Reviews of access controls detect missing authorization checks on critical functions or resources.
Documenting permitted unauthenticated actions prevents missing authorization by making all exceptions explicit and subject to organizational review.
Requiring attribute association with information prevents authorization from being performed without necessary security or privacy context.
Mandating authorization prior to allowing remote connections addresses missing authorization for remote access.
Mandating authorization before wireless connections are allowed prevents missing authorization for wireless access.
The control requires authorization before allowing mobile device connections, directly mitigating missing authorization for system access.
Requiring approvals for account creation and specifying authorizations ensures authorization is not missing for system access.
Mitigating Controls (ISO/IEC 27001:2022 Annex A) AI
Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→ISO cross-walk (authority under review) — links open the control.
Requiring formal authorization of every access request before rights are granted ensures that checks for required permissions are performed, preventing missing authorization checks from being introduced.
A.5.18's provisioning, review, revocation and activation steps (incl. owner approval, SoD, timely removal on role/termination change) directly stop exploitation of missing authorization checks by ensuring no actor receives or retains rights to resources they should not access; the bounded remainder is that it cannot stop missing-authorization defects inside the enforcement mechanism itself once rights have been granted (e.g. flawed code that ignores the rights table).
By requiring competent outsiders to verify that every function enforces the need-to-know principle, the control lowers the likelihood that missing authorization checks persist undetected.
A.5.8 integrates risk assessment, requirements elicitation and governance into the project lifecycle so that authorization needs can be identified and specified; it does not itself perform or enforce authorization checks, so the missing-authorization weakness can still be present and exploitable.
Security checkpoints and explicit authorization requirements in the design phase ensure that every sensitive function is paired with an access-control check, reducing missing-authorization defects.
A.8.27 mandates security-by-design principles (least privilege, default deny, security architecture integration, zero-trust never-trust/always-verify, dynamic access control) plus design reviews that directly specify and enforce authorization checks before access; this stops most missing-authorization cases from being exploitable, with a bounded remainder in non-architectural or legacy components where the principles were documented but not fully applied.
Hardening callouts derived
DISA STIG baselines are authored against specific weaknesses. Where this CVE cites a broad weakness class, the mapping is not asserted at that abstraction (owner ruling, 2026-09-25: grade only at Base and below), so no rule is shown here rather than a rule shown against the wrong grain.
- No fine-grained STIG row for CWE-862, a class-level weakness, and none of its children carries one either.