critical CVSS 9 EPSS 79% Public exploit available

CVE-2016-8740·Apache vulnerability

The mod_http2 module in the Apache HTTP Server 2.4.17 through 2.4.23, when the Protocols configuration includes h2 or h2c, does not restrict request-header length, which allows remote attackers to cause a denial of service (memory consumption) via crafted CONTINUATION frames in an HTTP/2 request.

Severity
critical
Software
Apache
Fixed in
2.4.25-1
Published

How likely is exploitation

FIRST's Exploit Prediction Scoring System puts the probability of this CVE being exploited in the next 30 days at 79% — in the top 0.4% of all published CVEs. EPSS is an independent forecast of exploitation, not a severity rating: it says nothing about how much damage a successful attack does, which is what a CVSS score measures.

Affected versions

Until: 2.4.25-1

Fixed in: 2.4.25-1

How to fix this CVE

Upgrade Apache HTTP Server to version 2.4.25-1 or later to patch the HTTP/2 header handling vulnerability. Organizations running Apache 2.4.17 through 2.4.23 with HTTP/2 enabled must prioritize this update, as the vulnerability allows attackers to exhaust server memory through malformed HTTP/2 frames without authentication. Verify that mod_http2 is properly configured post-upgrade to enforce request-header limits.

sudo dnf update httpd httpd-tools httpd-devel

Defensia detects this vulnerability

What an exploitation attempt looks like

Sample log line indicative of exploitation attempts:

POST|GET.*HTTP/2.*CONTINUATION.*frame|Multiple rapid CONTINUATION frames with cumulative header size exceeding normal limits in a single stream

WAF mitigation (if patching is not yet possible)

Add this rule to your WAF to block exploitation attempts while you schedule the patch.

Configure WAF rules to enforce strict HTTP/2 header size limits (e.g., max 8KB per header field) and rate-limit CONTINUATION frames per connection; drop streams that exceed the threshold to prevent memory exhaustion attacks.

How to check if you are affected

  1. Run 'apache2ctl -v' or 'httpd -v' to check the installed Apache version; if version is 2.4.17–2.4.23, the system is vulnerable
  2. Check if HTTP/2 is enabled by running 'apache2ctl -M | grep http2' or inspecting the Apache configuration for 'Protocols h2' or 'Protocols h2c' directives
  3. Search Apache error logs for patterns like 'HTTP/2 stream reset' or 'CONTINUATION frame' with high frequency, which may indicate exploitation attempts
  4. After patching, re-run 'apache2ctl -v' to confirm the version is 2.4.25-1 or later, then restart Apache with 'sudo systemctl restart apache2'

FAQ

What is CVE-2016-8740?

CVE-2016-8740 is a denial-of-service vulnerability in Apache's mod_http2 module that fails to enforce request-header length limits, allowing attackers to send specially crafted HTTP/2 CONTINUATION frames that consume excessive server memory and crash the web service.

Is CVE-2016-8740 being actively exploited?

While not listed on the CISA Known Exploited Vulnerabilities (KEV) catalog, public exploit code is available, and the vulnerability has moderate to high exploitation risk due to its simplicity and the prevalence of HTTP/2 in modern Apache deployments.

What versions of Apache are affected by CVE-2016-8740?

Apache HTTP Server versions 2.4.17 through 2.4.23 are affected when the HTTP/2 module (mod_http2) is enabled; version 2.4.25-1 and later contain the fix.

How do I check if my server is vulnerable to CVE-2016-8740?

Run 'apache2ctl -v' to check your version; if it reports 2.4.17–2.4.23, then confirm HTTP/2 is loaded with 'apache2ctl -M | grep http2' or check your Apache configuration file for 'Protocols h2' or 'Protocols h2c'.

Does Defensia detect CVE-2016-8740?

Yes — Defensia's CVE advisory scanner compares installed package versions against the NVD database. If Apache is installed on a monitored server, CVE-2016-8740 will appear in your dashboard with remediation steps.

Related Apache CVEs

CVE-2026-29167CVSS 10Use After Free vulnerability in Apache HTTP Server with mod_ldap in per-directory configuration This issue affects Apache HTTP Server: from 2.4.0 through 2.4.67. Users are recommended to upgrade to version 2.4.68, which fixes the issue.
CVE-2021-41773CVSS 10A flaw was found in a change made to path normalization in Apache HTTP Server 2.4.49. An attacker could use a path traversal attack to map URLs to files outside the directories configured by Alias-like directives. If files outside of these directories are not protected by the usual default configuration "require all denied", these requests can succeed. If CGI scripts are also enabled for these aliased pathes, this could allow for remote code execution. This issue is known to be exploited in the wild. This issue only affects Apache 2.4.49 and not earlier versions. The fix in Apache HTTP Server 2.4.50 was found to be incomplete, see CVE-2021-42013.
CVE-2026-44631CVSS 10Buffer Underwrite vulnerability in Apache HTTP Server on crafted regular expressions in the configuration. This issue affects Apache HTTP Server: from 2.4.0 through 2.4.67. Users are recommended to upgrade to version 2.4.68, which fixes the issue.
CVE-2021-42013CVSS 10It was found that the fix for CVE-2021-41773 in Apache HTTP Server 2.4.50 was insufficient. An attacker could use a path traversal attack to map URLs to files outside the directories configured by Alias-like directives. If files outside of these directories are not protected by the usual default configuration "require all denied", these requests can succeed. If CGI scripts are also enabled for these aliased pathes, this could allow for remote code execution. This issue only affects Apache 2.4.49 and Apache 2.4.50 and not earlier versions.
CVE-2021-44790CVSS 10A carefully crafted request body can cause a buffer overflow in the mod_lua multipart parser (r:parsebody() called from Lua scripts). The Apache httpd team is not aware of an exploit for the vulnerabilty though it might be possible to craft one. This issue affects Apache HTTP Server 2.4.51 and earlier.

References

Track CVEs across your fleet automatically

Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2016-8740. Free for 1 server.

Get started free