CVE-2020-9490

7.5 HIGH

📋 TL;DR

This vulnerability in Apache HTTP Server allows an attacker to cause a denial-of-service (crash) by sending a specially crafted Cache-Digest header in an HTTP/2 request, followed by an HTTP/2 PUSH operation. It affects Apache HTTP Server versions 2.4.20 through 2.4.43 with HTTP/2 enabled. Organizations running vulnerable Apache configurations with HTTP/2 support are at risk.

💻 Affected Systems

Products:
  • Apache HTTP Server
Versions: 2.4.20 to 2.4.43
Operating Systems: All operating systems running affected Apache versions
Default Config Vulnerable: ✅ No
Notes: Only vulnerable when HTTP/2 is enabled and configured; HTTP/2 is not enabled by default in Apache.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete server crash leading to denial-of-service for all hosted websites and applications, potentially requiring manual restart and causing extended downtime.

🟠

Likely Case

Targeted denial-of-service attacks against specific Apache servers, causing service disruption until the server is restarted.

🟢

If Mitigated

Minimal impact if HTTP/2 PUSH is disabled or the server is patched; normal operations continue unaffected.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: CONFIRMED
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Exploit requires HTTP/2 access and knowledge of server configuration; public proof-of-concept code exists.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 2.4.44 and later

Vendor Advisory: https://httpd.apache.org/security/vulnerabilities_24.html#CVE-2020-9490

Restart Required: Yes

Instructions:

1. Download Apache HTTP Server version 2.4.44 or later from the official Apache website. 2. Backup current configuration files. 3. Stop the Apache service. 4. Install the updated version. 5. Restore configuration files. 6. Start the Apache service.

🔧 Temporary Workarounds

Disable HTTP/2 PUSH

all

Prevents the vulnerable code path by disabling HTTP/2 PUSH functionality.

Add 'H2Push off' to your Apache configuration file (httpd.conf or appropriate virtual host file)

Disable HTTP/2 Entirely

all

Completely disables HTTP/2 protocol support, eliminating the vulnerability.

Remove or comment out 'Protocols h2 http/1.1' from your Apache configuration

🧯 If You Can't Patch

  • Implement network-level controls to block or rate-limit HTTP/2 traffic to vulnerable servers
  • Deploy web application firewall (WAF) rules to detect and block malicious Cache-Digest headers

🔍 How to Verify

Check if Vulnerable:

Check Apache version with 'httpd -v' or 'apache2 -v' and verify if HTTP/2 is enabled in configuration files.

Check Version:

httpd -v  # or apache2 -v on Debian-based systems

Verify Fix Applied:

Confirm Apache version is 2.4.44 or later and test HTTP/2 functionality remains operational.

📡 Detection & Monitoring

Log Indicators:

  • Apache crash logs, segmentation fault errors in error_log
  • Unusual HTTP/2 connection attempts with Cache-Digest headers

Network Indicators:

  • HTTP/2 traffic patterns with Cache-Digest headers followed by connection resets

SIEM Query:

source="apache_error_log" AND ("segmentation fault" OR "crash" OR "SIGSEGV")

🔗 References

📤 Share & Export