CVE-2024-38286

8.6 HIGH

📋 TL;DR

This vulnerability in Apache Tomcat allows attackers to cause denial of service by exploiting the TLS handshake process to trigger OutOfMemoryError conditions. It affects Tomcat versions 11.0.0-M1 through 11.0.0-M20, 10.1.0-M1 through 10.1.24, 9.0.13 through 9.0.89, and certain EOL versions. Systems with TLS-enabled connectors are vulnerable when configured in specific ways.

💻 Affected Systems

Products:
  • Apache Tomcat
Versions: 11.0.0-M1 through 11.0.0-M20, 10.1.0-M1 through 10.1.24, 9.0.13 through 9.0.89, plus EOL versions 8.5.35-8.5.100 and 7.0.92-7.0.109
Operating Systems: All platforms
Default Config Vulnerable: ✅ No
Notes: Only affects specific TLS connector configurations; default configurations may not be vulnerable.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete service outage due to memory exhaustion, potentially requiring server restart and causing extended downtime.

🟠

Likely Case

Intermittent service degradation or crashes affecting application availability.

🟢

If Mitigated

Minimal impact with proper resource limits and monitoring in place.

🌐 Internet-Facing: HIGH - TLS-enabled internet-facing Tomcat instances are directly exposed to exploitation attempts.
🏢 Internal Only: MEDIUM - Internal systems are still vulnerable but require attacker access to internal network.

🎯 Exploit Status

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

Exploitation requires TLS access but no authentication; details are in security advisories but no public exploit code is confirmed.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 11.0.0-M21, 10.1.25, or 9.0.90

Vendor Advisory: https://lists.apache.org/thread/wms60cvbsz3fpbz9psxtfx8r41jl6d4s

Restart Required: Yes

Instructions:

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

🔧 Temporary Workarounds

Disable vulnerable TLS configurations

all

Modify TLS connector settings to avoid the vulnerable configuration pattern

Edit server.xml to review and adjust TLS connector settings

Implement connection rate limiting

linux

Use network-level controls to limit TLS handshake attempts

iptables -A INPUT -p tcp --dport 8443 -m state --state NEW -m recent --set
iptables -A INPUT -p tcp --dport 8443 -m state --state NEW -m recent --update --seconds 60 --hitcount 20 -j DROP

🧯 If You Can't Patch

  • Implement strict network segmentation to limit access to Tomcat TLS ports
  • Deploy memory monitoring and alerting for OutOfMemoryError conditions

🔍 How to Verify

Check if Vulnerable:

Check Tomcat version and review TLS connector configurations in server.xml

Check Version:

java -cp catalina.jar org.apache.catalina.util.ServerInfo

Verify Fix Applied:

Verify Tomcat version shows 11.0.0-M21, 10.1.25, 9.0.90 or higher

📡 Detection & Monitoring

Log Indicators:

  • java.lang.OutOfMemoryError in catalina.out or logs
  • Abnormal TLS handshake patterns
  • High memory usage alerts

Network Indicators:

  • Unusual volume of TLS handshake attempts
  • Multiple incomplete TLS connections

SIEM Query:

source="tomcat.logs" AND "OutOfMemoryError" OR "TLS handshake" AND error

🔗 References

📤 Share & Export