CVE-2024-38809

5.3 MEDIUM

📋 TL;DR

This vulnerability allows attackers to cause denial-of-service (DoS) by sending maliciously crafted ETags in 'If-Match' or 'If-None-Match' HTTP request headers. Applications that parse these headers without proper validation are affected. The vulnerability impacts Spring Framework users and potentially other web applications with similar ETag parsing implementations.

💻 Affected Systems

Products:
  • Spring Framework
Versions: Spring Framework 6.1.x prior to 6.1.8, 6.0.x prior to 6.0.19, 5.3.x prior to 5.3.38
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Applications using Spring's ETag support for conditional requests are vulnerable. Other web frameworks with similar ETag parsing may also be affected.

⚠️ Manual Verification Required

This CVE does not have specific version information in our database, so automatic vulnerability detection cannot determine if your system is affected.

Why? The CVE database entry doesn't specify which versions are vulnerable (no version ranges provided by the vendor/NVD).

🔒 Custom verification scripts are available for registered users. Sign up free to download automated test scripts.

Recommended Actions:
  1. Review the CVE details at NVD
  2. Check vendor security advisories for your specific version
  3. Test if the vulnerability is exploitable in your environment
  4. Consider updating to the latest version as a precaution

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete service unavailability due to resource exhaustion from parsing extremely large or complex ETag values, potentially causing application crashes or severe performance degradation.

🟠

Likely Case

Service degradation or temporary unavailability affecting application responsiveness and availability to legitimate users.

🟢

If Mitigated

Minimal impact with proper header size limits and input validation in place.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires sending HTTP requests with malicious ETag headers, which is straightforward. No authentication is required.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Spring Framework 6.1.8, 6.0.19, 5.3.38

Vendor Advisory: https://spring.io/security/cve-2024-38809

Restart Required: Yes

Instructions:

1. Identify your Spring Framework version. 2. Update to the patched version via your package manager or build tool. 3. Rebuild and redeploy your application. 4. Restart the application server.

🔧 Temporary Workarounds

Header Size Limiting Filter

all

Implement a servlet filter or middleware to limit the size of 'If-Match' and 'If-None-Match' headers before they reach the vulnerable parsing code.

Implement custom filter with max header size validation

🧯 If You Can't Patch

  • Implement WAF rules to block or limit ETag header sizes
  • Deploy rate limiting to mitigate DoS attempts

🔍 How to Verify

Check if Vulnerable:

Check if your application uses Spring Framework and is within the affected version range. Test by sending requests with large ETag headers and monitoring resource usage.

Check Version:

Check pom.xml for Spring version or run: java -cp [your-app.jar] org.springframework.boot.loader.JarLauncher --version

Verify Fix Applied:

After patching, verify the application rejects or properly handles oversized ETag headers without resource exhaustion.

📡 Detection & Monitoring

Log Indicators:

  • Unusually large HTTP headers in access logs
  • Increased memory/CPU usage coinciding with specific requests
  • Error logs related to header parsing

Network Indicators:

  • HTTP requests with abnormally large 'If-Match' or 'If-None-Match' headers
  • High volume of conditional requests from single sources

SIEM Query:

source="web_access_logs" AND (header_size>1024 OR header="If-Match" OR header="If-None-Match")

🔗 References

📤 Share & Export