Tenable stapled eight paper cuts together and called it a severed artery
Apache HTTP Server 2.4.64 (released July 10, 2025) patches eight CVEs spanning versions 2.4.0 through 2.4.63. The bugs include: CVE-2025-53020 — an unauthenticated HTTP/2 memory-exhaustion DoS (CWE-401, NVD 7.5 HIGH); CVE-2024-42516 — HTTP response splitting via Content-Type manipulation (moderate, a re-fix of CVE-2023-38709); CVE-2025-23048 — TLS 1.3 session-resumption access-control bypass in multi-vhost mod_ssl setups; CVE-2025-49812 — MitM session hijack on the rare SSLEngine optional TLS-upgrade path; CVE-2024-43394 — Windows-only SSRF that leaks NTLM hashes via mod_rewrite; CVE-2025-49630 — mod_proxy_http2 assertion DoS requiring ProxyPreserveHost on; CVE-2024-43204 — SSRF needing an unlikely mod_headers Content-Type rewrite; and CVE-2024-47252 — log-injection via unescaped mod_ssl variables. None of these yields remote code execution.
Tenable's plugin rolls all eight into a single CVSS 9.1 Critical rating — a scanner artifact of aggregation, not a reflection of any single exploitable chain. Apache itself rates every one of these Moderate or Low. Tenable's own VPR (Vulnerability Priority Rating) quietly agrees: 5.0 / Medium. The vendor severity label of Critical is misleading for triage; the real exposure is an unauthenticated remote DoS against HTTP/2-enabled instances and narrow-condition response-splitting, which lands this squarely in HIGH territory — serious enough to prioritize, but not drop-everything Critical.
5 steps from start to impact.
Identify HTTP/2-enabled Apache target
httpx, Shodan dorks (server:Apache http2), or simple curl --http2 probes identify candidates. Apache httpd is one of the most widely deployed web servers globally — Netcraft and W3Techs consistently place it on 25-30% of active sites.- Target runs Apache httpd 2.4.17–2.4.63
- HTTP/2 is enabled (default in many distro packages since 2.4.17+)
- HTTP/2 is common but not universal; some reverse-proxy architectures terminate HTTP/2 at a CDN or load balancer before it reaches Apache
Server header (often stripped by hardened configs)Trigger CVE-2025-53020 memory exhaustion
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H.- Network reachability to the target's HTTP/2 port
- Apache serves HTTP/2 directly (not behind an HTTP/1.1-only reverse proxy)
- CDN/WAF/load-balancer in front may absorb or rate-limit the attack
- Linux OOM killer may terminate and restart workers before full outage
mod_http2can be disabled without losing HTTP/1.1 service
(Alternative chain) HTTP response splitting via CVE-2024-42516
Content-Type response header — common in proxied or CGI setups — they can inject CRLF sequences to split the HTTP response. This enables cache poisoning, XSS via injected headers, or session fixation. This is a re-emergence of CVE-2023-38709; the 2.4.59 patch was incomplete.- Apache proxies or hosts an application where the attacker can influence Content-Type response values
- No downstream WAF strips or validates response headers
- Attacker must already control part of the backend response — this is a second-order attack, not a direct remote exploit
- Modern browsers increasingly ignore ambiguous response splitting
- CDNs with strict header parsing may reject the split response
(Alternative chain) TLS 1.3 session resumption bypass via CVE-2025-23048
SSLCACertificateFile restriction. This requires SSLStrictSNIVHostCheck to be off (the default).- Multiple virtual hosts with distinct client-cert CAs on the same Apache instance
- TLS 1.3 enabled (default in modern OpenSSL)
- Attacker possesses a valid client certificate for at least one vhost
- Client-certificate authentication is rare in most enterprise web deployments
- Attacker must already possess a trusted client cert — this is a lateral-access escalation, not initial access
- Single-vhost or wildcard-cert deployments are unaffected
github.com/absholi7ly/CVE-2025-23048-POC; audit TLS session resumption logs for cross-vhost SNI mismatches(Windows-only) NTLM hash leak via CVE-2024-43394
- Apache running on Windows
- mod_rewrite or expressions process user-supplied input that can contain UNC paths
- Outbound SMB (port 445) not blocked by host firewall
- Apache on Windows is a minority deployment pattern — Linux dominates production use
- Enterprise firewalls typically block outbound SMB at the perimeter
- NTLM relay requires additional tooling and a valid relay target
The supporting signals.
| In-the-wild exploitation | No known active exploitation. None of the 8 CVEs appear in CISA KEV. No campaigns attributed to these vulnerabilities as of 2026-09-17. |
|---|---|
| Proof-of-concept availability | CVE-2025-23048: public PoC by absholi7ly on GitHub. Other CVEs: no standalone weaponized PoC identified, though response-splitting techniques for CVE-2024-42516 are well-understood from CVE-2023-38709 research. |
| EPSS | CVE-2025-53020: 4.80% (91st percentile). CVE-2024-43204: 0.81% (54th percentile). Other CVEs not yet scored or below median. |
| KEV status | Not listed. None of the 8 CVEs are in the CISA Known Exploited Vulnerabilities catalog. |
| CVSS vectors | Highest individual: CVE-2025-53020 — CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H (7.5). Tenable's aggregated 9.1 is a plugin-level composite, not an NVD score for any single CVE. |
| Affected versions | Broadest range: 2.4.0 – 2.4.63 (CVE-2024-42516, CVE-2024-43204, CVE-2024-43394). Narrower: 2.4.17–2.4.63 (CVE-2025-53020), 2.4.26–2.4.63 (CVE-2025-49630), 2.4.35–2.4.63 (CVE-2025-23048). |
| Fixed version | Apache httpd 2.4.64 (released 2025-07-10). Distro backports: check RHEL/CentOS httpd-2.4.37-* errata, Debian/Ubuntu apache2 security updates, Amazon Linux ALAS advisories. |
| Scanning / exposure data | Apache httpd powers ~25-30% of active websites globally (W3Techs/Netcraft). Shodan indexes millions of internet-facing instances. Tenable VPR for this plugin: 5.0 (Medium, 93.91 percentile) — Tenable's own risk model disagrees with its Critical label. |
| Disclosure date | 2025-07-10 — all 8 CVEs disclosed simultaneously with the 2.4.64 release. |
| Reporting researchers | Multiple contributors via Apache security team. CVE-2024-42516 is a re-fix of Orange Tsai's original CVE-2023-38709 HTTP response splitting research. |
noisgate verdict.
The single most decisive factor driving the downgrade from Critical to High is that no CVE in this bundle achieves remote code execution — the worst unauthenticated outcome is denial of service (CVE-2025-53020, CVSS 7.5), and every other chain requires either uncommon configurations, prior access to backend applications, or Windows-only deployment. The floor remains HIGH because Apache httpd is canonically internet-facing infrastructure with massive installed base and CVE-2025-53020 is unauthenticated remote DoS with no prerequisite beyond network reachability.
Why this verdict
- No RCE in the bundle: All 8 CVEs cap out at DoS, response splitting, SSRF, or access-control bypass. Tenable's 9.1 implies confidentiality+integrity impact that simply does not exist in any single CVE here.
- Aggregation inflation: Tenable composites 8 Moderate/Low CVEs into one Critical plugin. Apache's own ratings — the vendor who wrote the code — top out at Moderate. Tenable's VPR (5.0 Medium) contradicts its own CVSS label.
- Configuration-dependent chains: CVE-2025-49630 needs
ProxyPreserveHost onwith HTTP/2 backend. CVE-2025-49812 needsSSLEngine optional. CVE-2025-23048 needs multi-vhost client-cert with TLS 1.3. CVE-2024-43204 needs mod_headers rewriting Content-Type. These are not default configurations. - Role multiplier: Apache httpd is canonically deployed as internet-facing infrastructure (high-value network-edge role). The CVE-2025-53020 DoS chain succeeds in this role with blast radius of service-availability impact per host. However, DoS against a single Apache instance does not cascade to domain takeover, fleet compromise, or supply-chain pivot — it is a per-host availability event, recoverable by restart. This floors the verdict at HIGH but does not reach CRITICAL.
- No exploitation evidence: Zero KEV entries, no known campaigns, no weaponized exploit kits. EPSS for the lead CVE is 4.80% (91st percentile) — elevated but not alarming.
Why not higher?
The path to CRITICAL requires either (a) remote code execution, (b) active mass exploitation, or (c) a chain that ends in fleet/domain compromise from a canonical high-value role. None of the 8 CVEs achieves code execution. The worst unauthenticated outcome is memory-exhaustion DoS, which is recoverable and does not grant persistence or lateral movement. No KEV listing and no in-the-wild campaigns further argue against Critical.
Why not lower?
Apache httpd's massive internet-facing footprint means CVE-2025-53020's unauthenticated remote DoS is reachable against millions of hosts with zero prerequisites. An availability-only attack against a canonical edge component with EPSS in the 91st percentile cannot be dismissed as Medium. The response-splitting issue (CVE-2024-42516) also has real cache-poisoning potential in proxied architectures. The combination of broad exposure and multiple viable (if configuration-dependent) attack surfaces keeps this at HIGH.
What to do — in priority order.
- Disable HTTP/2 if not required — Setting
Protocols h2 http/1.1to justProtocols http/1.1in your Apache config eliminates the CVE-2025-53020 DoS surface entirely. This is the single highest-value mitigation. Deploy within the noisgate mitigation SLA of 30 days for HIGH. - Place Apache behind a CDN or reverse proxy that terminates HTTP/2 — If you need HTTP/2 for clients, terminate it at Cloudflare/Akamai/AWS ALB and proxy HTTP/1.1 to Apache. This shields Apache's HTTP/2 implementation from direct attacker interaction. Deploy within 30 days.
- Block outbound SMB (port 445) from web servers — Prevents CVE-2024-43394 NTLM hash exfiltration on Windows deployments. This should already be in place as basic host hardening. Verify within 30 days.
- Enable SSLStrictSNIVHostCheck on multi-vhost TLS configs — Setting
SSLStrictSNIVHostCheck onmitigates CVE-2025-23048's TLS 1.3 session-resumption bypass across virtual hosts with different client-cert CAs. - Audit and remove SSLEngine optional directives — The
SSLEngine optionalTLS-upgrade path is rare and enables CVE-2025-49812 MitM. Remove it unless you have a documented business requirement. Version 2.4.64 removes TLS upgrade support entirely. - Deploy WAF rules for CRLF injection in response headers — ModSecurity or cloud WAF rules detecting
%0d%0a/ CRLF sequences in response headers mitigate CVE-2024-42516 response splitting.
- Rate limiting alone does not mitigate CVE-2025-53020 — the memory leak is per-connection, not per-request-rate; even moderate connection volumes can exhaust memory over time.
- Upgrading OpenSSL without upgrading Apache does not fix CVE-2025-23048 — the session-resumption logic flaw is in mod_ssl's vhost selection code, not in the TLS library.
- IP-based ACLs on the web port are impractical for internet-facing web servers and do not help for the DoS or response-splitting vectors.
Crowdsourced verification payload.
Run this on each Apache host as any user with read access to the httpd binary. Example: bash check_apache_2.4.64.sh or bash check_apache_2.4.64.sh /usr/local/apache2/bin/httpd if your binary is non-standard. No root required.
#!/usr/bin/env bash
# check_apache_2.4.64.sh — Verify Apache httpd is patched for Tenable 241984
# Usage: bash check_apache_2.4.64.sh [/path/to/httpd]
# Exit codes: 0=PATCHED, 1=VULNERABLE, 2=UNKNOWN
set -euo pipefail
HTTPD="${1:-}"
if [ -z "$HTTPD" ]; then
for candidate in httpd apache2 /usr/sbin/httpd /usr/sbin/apache2 /usr/local/apache2/bin/httpd; do
if command -v "$candidate" &>/dev/null 2>&1; then
HTTPD="$candidate"
break
fi
done
fi
if [ -z "$HTTPD" ]; then
echo "UNKNOWN — could not locate httpd/apache2 binary. Pass path as argument."
exit 2
fi
VERSION_OUTPUT=$($HTTPD -v 2>/dev/null || true)
VERSION=$(echo "$VERSION_OUTPUT" | grep -oP 'Apache/\K[0-9]+\.[0-9]+\.[0-9]+' | head -1)
if [ -z "$VERSION" ]; then
echo "UNKNOWN — could not parse version from: $VERSION_OUTPUT"
exit 2
fi
echo "Detected Apache httpd version: $VERSION"
# Compare version against 2.4.64
IFS='.' read -r MAJOR MINOR PATCH <<< "$VERSION"
if [ "$MAJOR" -lt 2 ]; then
echo "UNKNOWN — Apache 1.x detected; this check targets 2.4.x"
exit 2
elif [ "$MAJOR" -eq 2 ] && [ "$MINOR" -lt 4 ]; then
echo "UNKNOWN — Apache 2.0/2.2 detected; this check targets 2.4.x"
exit 2
elif [ "$MAJOR" -eq 2 ] && [ "$MINOR" -eq 4 ] && [ "$PATCH" -ge 64 ]; then
echo "PATCHED — Apache $VERSION >= 2.4.64. Tenable plugin 241984 should not fire."
exit 0
elif [ "$MAJOR" -eq 2 ] && [ "$MINOR" -eq 4 ] && [ "$PATCH" -lt 64 ]; then
echo "VULNERABLE — Apache $VERSION < 2.4.64. Affected by CVE-2025-53020, CVE-2024-42516, and 6 others."
exit 1
else
# Apache 2.5+ or 3.x — likely fine
echo "PATCHED — Apache $VERSION is newer than 2.4.x branch."
exit 0
fiIf you remember one thing.
Sources
What defenders are saying.
Crowdsourced verification outputs.
Results submitted by users who ran the verification payload against their environment.