Cloudanix VulnDB

CVE-2024-25622

None

CVSS

—

EPSS

0.5%

Published

Oct 11, 2024

CISA due date

—

Cloudanix analysis

Monitor only SSVC: Track

A configuration bug in the web server can cause important headers to be left out of responses when settings are defined at multiple levels.

Exploitation
Other
Attacker needs
None
Complexity
Theoretical
Impact
Other
Component
Application
Class
Misconfiguration
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

The headers directive in inner configuration scopes overrides and ignores all header configurations from outer scopes, preventing expected header modifications from being applied.

Why it matters to the business

Unexpected response headers may be sent or omitted, potentially causing client applications to behave incorrectly or security headers to be missing, which can affect multiple downstream services using this server.

How an attack unfolds

An attacker does not actively trigger the flaw; instead, an administrator's use of a header directive inside a path-level scope silently drops outer-scope header rules, resulting in missing or incorrect headers that may enable client-side attacks or bypass intended controls.

How to fix it

Update h2o to commit 123f5e2b65dcdba8f7ef659a00d24bd1249141be or a later version that restores proper scope inheritance for the headers directive.

How to confirm the fix worked

After upgrade, confirm that header directives defined in outer scopes continue to apply when an inner scope also contains a header directive; test by sending requests to nested paths and inspecting response headers.

Typical attack path

  1. Review public server configuration for nested scopes
  2. Identify use of the header directive inside an inner scope
  3. Request resources that should receive outer-scope headers
  4. Observe absence of expected headers such as security-related ones in responses

How to detect it

Inspect server configuration files for any header directive appearing inside inner scopes such as path blocks, then manually request affected paths and compare received headers against those expected from outer scopes.

What your security team should do

  • Upgrade all h2o instances to the fixed commit immediately
  • Audit existing configuration files for header directives placed inside path or host scopes
  • Add regression tests that verify header inheritance across scopes during configuration changes

The record

h2o is an HTTP server with support for HTTP/1.x, HTTP/2 and HTTP/3. The configuration directives provided by the headers handler allows users to modify the response headers being sent by h2o. The configuration file of h2o has scopes, and the inner scopes (e.g., path level) are expected to inherit the configuration defined in outer scopes (e.g., global level). However, if a header directive is used in the inner scope, all the definition in outer scopes are ignored. This can lead to headers not being modified as expected. Depending on the headers being added or removed unexpectedly, this behavior could lead to unexpected client behavior. This vulnerability is fixed in commit 123f5e2b65dcdba8f7ef659a00d24bd1249141be.

Affected packages

Ecosystem Package Introduced Fixed
Debian:11 h2o 0 No fix
Debian:12 h2o 0 No fix
Debian:13 h2o 0 No fix
Ubuntu:20.04:LTS h2o 0 No fix
Ubuntu:22.04:LTS h2o 0 No fix
Ubuntu:24.04:LTS h2o 0 No fix
Ubuntu:24.10 h2o 0 No fix
Ubuntu:25.04 h2o 0 No fix
Ubuntu:25.10 h2o 0 No fix
Ubuntu:Pro:18.04:LTS h2o 0 No fix
Ubuntu:Pro:20.04:LTS h2o 0 No fix
Ubuntu:Pro:22.04:LTS h2o 0 No fix

Related vulnerabilities