CVE-2024-34750

7.5 HIGH

📋 TL;DR

This vulnerability in Apache Tomcat allows attackers to cause uncontrolled resource consumption through HTTP/2 connections. By sending excessive HTTP headers, attackers can force Tomcat to keep connections open indefinitely, potentially leading to denial of service. This affects Tomcat versions 9.0.0-M1 through 9.0.89, 10.1.0-M1 through 10.1.24, and 11.0.0-M1 through 11.0.0-M20.

💻 Affected Systems

Products:
  • Apache Tomcat
Versions: 9.0.0-M1 through 9.0.89, 10.1.0-M1 through 10.1.24, 11.0.0-M1 through 11.0.0-M20, and EOL versions 8.5.0 through 8.5.100
Operating Systems: All operating systems running affected Tomcat versions
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects HTTP/2 connections. HTTP/1.x connections are not vulnerable.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete denial of service where all available connections are exhausted, making the Tomcat server unavailable to legitimate users.

🟠

Likely Case

Degraded performance and eventual service unavailability as connection pool is exhausted over time.

🟢

If Mitigated

Limited impact with proper connection limits and monitoring in place, but still vulnerable to targeted attacks.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires sending malformed HTTP/2 requests with excessive headers, which is straightforward for attackers with network access.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 11.0.0-M21, 10.1.25, or 9.0.90

Vendor Advisory: https://lists.apache.org/thread/4kqf0bc9gxymjc2x7v3p7dvplnl77y8l

Restart Required: Yes

Instructions:

1. Download the patched version from Apache Tomcat website. 2. Stop the Tomcat service. 3. Backup configuration files. 4. Replace Tomcat installation with patched version. 5. Restore configuration files. 6. Start Tomcat service.

🔧 Temporary Workarounds

Disable HTTP/2

all

Disable HTTP/2 protocol support to prevent exploitation via vulnerable HTTP/2 streams

Edit server.xml and remove or comment out HTTP/2 connector configurations

Limit HTTP Header Size

all

Configure maximum HTTP header size to reduce impact of excessive headers

Set maxHttpHeaderSize parameter in connector configuration in server.xml

🧯 If You Can't Patch

  • Implement network-level controls to limit HTTP/2 traffic to trusted sources only
  • Deploy rate limiting and connection throttling at load balancer or WAF level

🔍 How to Verify

Check if Vulnerable:

Check Tomcat version and verify it falls within affected ranges. Also check if HTTP/2 is enabled in server.xml configuration.

Check Version:

java -cp "$CATALINA_HOME/lib/catalina.jar" org.apache.catalina.util.ServerInfo

Verify Fix Applied:

Verify Tomcat version is 9.0.90+, 10.1.25+, or 11.0.0-M21+. Test HTTP/2 connections remain stable under normal header loads.

📡 Detection & Monitoring

Log Indicators:

  • Unusually high number of open HTTP/2 connections
  • Connection timeout errors
  • Increased memory usage patterns

Network Indicators:

  • Excessive HTTP/2 traffic with large headers
  • Sustained connections from single sources

SIEM Query:

source="tomcat" AND ("HTTP/2" OR "h2") AND (connection_count > threshold OR memory_usage > threshold)

🔗 References

📤 Share & Export