← Back to Feed CACHED · 2026-09-17 09:16:50 · CACHE_KEY tenable:241984
tenable:241984 · CWE-401 · Disclosed 2025-07-10

Apache 2.4.x < 2.4.64 Multiple Vulnerabilities

Apache httpd 2.4.x < 2.4.64 — HTTP/2 DoS, Response Splitting, SSRF, TLS Bypass (8 CVEs)

ASSESSED — NOISGATE
Vendor
—
—
—
Reassessed
—
—
—
Verdict: —
Do you agree?
01 · The Real Story

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.

"Tenable inflates 8 moderate Apache bugs to Critical; real risk is HIGH from unauthenticated DoS."
02 · The Attack Path

5 steps from start to impact.

STEP 01

Identify HTTP/2-enabled Apache target

The attacker scans for internet-facing Apache httpd instances advertising HTTP/2 support via ALPN negotiation. Tools like 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.
Conditions required:
  • Target runs Apache httpd 2.4.17–2.4.63
  • HTTP/2 is enabled (default in many distro packages since 2.4.17+)
Where this breaks in practice:
  • HTTP/2 is common but not universal; some reverse-proxy architectures terminate HTTP/2 at a CDN or load balancer before it reaches Apache
Detection/coverage: Shodan/Censys fingerprinting; version detection via Server header (often stripped by hardened configs)
STEP 02

Trigger CVE-2025-53020 memory exhaustion

The attacker opens HTTP/2 connections and exploits the late-release-of-memory flaw (CWE-401) to cause Apache worker processes to accumulate memory without timely release. Repeated connections drive the server toward OOM. This requires no authentication, no special headers, and no user interaction — just network access to the HTTP/2 endpoint. CVSS vector: AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H.
Conditions required:
  • Network reachability to the target's HTTP/2 port
  • Apache serves HTTP/2 directly (not behind an HTTP/1.1-only reverse proxy)
Where this breaks in practice:
  • 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_http2 can be disabled without losing HTTP/1.1 service
Detection/coverage: EPSS 4.80% (91st percentile) indicates moderate exploit likelihood; no known weaponized tooling yet; memory monitoring and HTTP/2 connection-rate alerts would catch this
STEP 03

(Alternative chain) HTTP response splitting via CVE-2024-42516

If the attacker controls or influences a backend application's 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.
Conditions required:
  • Apache proxies or hosts an application where the attacker can influence Content-Type response values
  • No downstream WAF strips or validates response headers
Where this breaks in practice:
  • 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
Detection/coverage: WAF rules for CRLF in response headers; cache-poisoning detection signatures
STEP 04

(Alternative chain) TLS 1.3 session resumption bypass via CVE-2025-23048

In multi-vhost Apache setups where different virtual hosts require different client certificates, an attacker with a valid client cert for vhost A can resume a TLS 1.3 session against vhost B, bypassing the SSLCACertificateFile restriction. This requires SSLStrictSNIVHostCheck to be off (the default).
Conditions required:
  • 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
Where this breaks in practice:
  • 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
Detection/coverage: PoC available at github.com/absholi7ly/CVE-2025-23048-POC; audit TLS session resumption logs for cross-vhost SNI mismatches
STEP 05

(Windows-only) NTLM hash leak via CVE-2024-43394

On Windows deployments, unsanitized UNC paths in mod_rewrite rules or Apache expressions can trigger outbound SMB/NTLM authentication to an attacker-controlled server. The attacker captures NTLM hashes for offline cracking or relay attacks. This is Windows-specific and requires the Apache instance to process attacker-influenced input through rewrite rules.
Conditions required:
  • 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
Where this breaks in practice:
  • 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
Detection/coverage: Monitor for outbound SMB connections from web server hosts; Responder/ntlmrelayx detection signatures
03 · Compensating Control

1
Disable HTTP/2 if not required — Setting Protocols h2 http/1.1 to just Protocols http/1.1 in 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.
2
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.
3
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.
4
Enable SSLStrictSNIVHostCheck on multi-vhost TLS configs — Setting SSLStrictSNIVHostCheck on mitigates CVE-2025-23048's TLS 1.3 session-resumption bypass across virtual hosts with different client-cert CAs.
5
Audit and remove SSLEngine optional directives — The SSLEngine optional TLS-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.
6
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.
What doesn't work
  • 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.
04 · Intelligence Metadata

The supporting signals.

In-the-wild exploitationNo 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 availabilityCVE-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.
EPSSCVE-2025-53020: 4.80% (91st percentile). CVE-2024-43204: 0.81% (54th percentile). Other CVEs not yet scored or below median.
KEV statusNot listed. None of the 8 CVEs are in the CISA Known Exploited Vulnerabilities catalog.
CVSS vectorsHighest 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 versionsBroadest 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 versionApache 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 dataApache 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 date2025-07-10 — all 8 CVEs disclosed simultaneously with the 2.4.64 release.
Reporting researchersMultiple contributors via Apache security team. CVE-2024-42516 is a re-fix of Orange Tsai's original CVE-2023-38709 HTTP response splitting research.

Sources.

  1. Tenable Plugin 241984
  2. Apache httpd 2.4 Security Vulnerabilities
  3. oss-security: CVE fixes in Apache HTTP Server 2.4.64
  4. CyberSecurityNews: Apache 2.4.64 Released
  5. CVE-2025-53020 Detail — CyberStrike
  6. CVE-2025-23048 PoC — GitHub
  7. SecurityOnline: Apache 2.4.64 Analysis
  8. LinuxSecurity: Apache 2.4.64 Patch Analysis
05 · The Call

Final Verdict
= UNCHANGED to HIGH (6.5/10)

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 on with HTTP/2 backend. CVE-2025-49812 needs SSLEngine 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.

06 · Verification

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.

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/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
fi