CVE-2024-7768

7.5 HIGH

📋 TL;DR

A denial-of-service vulnerability in h2o-3's ImportFiles endpoint allows attackers to recursively call the endpoint via the 'path' parameter, filling the request queue and making the server unresponsive. This affects all systems running h2o-3 version 3.46.1 with the vulnerable endpoint exposed. The vulnerability requires network access to the endpoint but no authentication.

💻 Affected Systems

Products:
  • h2oai/h2o-3
Versions: Version 3.46.1 specifically
Operating Systems: All platforms running h2o-3
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects systems with the /3/ImportFiles endpoint accessible. The vulnerability is in the specific endpoint implementation.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete service unavailability for all users, potentially requiring server restart and causing extended downtime.

🟠

Likely Case

Temporary service degradation or unavailability until the malicious requests stop or the server is restarted.

🟢

If Mitigated

Minimal impact if endpoint is not exposed or proper rate limiting/input validation is in place.

🌐 Internet-Facing: HIGH - Any internet-facing instance is vulnerable to simple DoS attacks via crafted GET requests.
🏢 Internal Only: MEDIUM - Internal attackers or compromised systems could exploit this to disrupt services.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Exploitation requires only a single crafted GET request with recursive path parameter. No authentication or special tools needed.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Version 3.46.2 or later

Vendor Advisory: https://huntr.com/bounties/3fe640df-bef4-4072-8890-0d12bc2818f6

Restart Required: No

Instructions:

1. Update h2o-3 to version 3.46.2 or later. 2. Verify the update completed successfully. 3. No restart required as this is a code-level fix.

🔧 Temporary Workarounds

Block vulnerable endpoint

all

Use web application firewall or reverse proxy to block access to /3/ImportFiles endpoint

# Example nginx location block:
location /3/ImportFiles { deny all; }
# Example Apache .htaccess:
<Location "/3/ImportFiles">
    Require all denied
</Location>

Implement rate limiting

all

Add rate limiting to prevent request queue exhaustion

# Example nginx rate limiting:
limit_req_zone $binary_remote_addr zone=importfiles:10m rate=1r/s;
location /3/ImportFiles {
    limit_req zone=importfiles burst=5;
}

🧯 If You Can't Patch

  • Implement network segmentation to restrict access to the vulnerable endpoint only to trusted sources.
  • Deploy a web application firewall with rules to detect and block recursive path parameters in requests.

🔍 How to Verify

Check if Vulnerable:

Check if h2o-3 version is 3.46.1 and the /3/ImportFiles endpoint is accessible. Test with a request containing recursive path parameter.

Check Version:

Check h2o-3 version in application logs or via API if available. For Python installations: pip show h2o

Verify Fix Applied:

After updating, verify version is 3.46.2 or later and test that recursive path parameters no longer cause DoS.

📡 Detection & Monitoring

Log Indicators:

  • Multiple rapid requests to /3/ImportFiles endpoint
  • Requests with recursive path parameters (e.g., path=../ImportFiles?path=...)
  • Increased error rates or timeout messages

Network Indicators:

  • Unusual traffic patterns to /3/ImportFiles endpoint
  • Multiple GET requests with similar path parameters from single source

SIEM Query:

source="h2o-3" AND (url_path="/3/ImportFiles" AND (path_parameter="*../*" OR request_count > threshold))

🔗 References

📤 Share & Export