CVE-2026-54428: Apache HttpComponents Core HTTP/2 HPACK Memory Exhaustion DoS
Apache HttpComponents Core, a widely-used Java library for HTTP communication, contains a denial-of-service vulnerability in its HTTP/2 header decompression handler. An attacker can send specially crafted oversized compressed headers to exhaust server memory before the library's safety limits kick in, crashing the service. This affects versions 5.4.2 and earlier, including the 5.5-beta1 release.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 7.5 HIGH · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
- Weaknesses (CWE)
- CWE-400, CWE-770
- Affected products
- 3 configuration(s)
- Published / Modified
- 2026-07-01 / 2026-07-24
NVD description (verbatim)
Allocation of resources without limits or throttling in the HTTP/2 HPACK decoder in Apache HttpComponents Core (5.4.2 and earlier, 5.5-beta1 and earlier) allows an remote attacker to cause a denial of service through memory exhaustion by sending oversized compressed header blocks before the HTTP/2 SETTINGS acknowledgement causes the configured header list size limit to be applied.
2 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
The vulnerability exists in the HPACK (HTTP/2 header compression) decoder within Apache HttpComponents Core. During HTTP/2 connection setup, the decoder processes compressed headers without enforcing size limits until after the HTTP/2 SETTINGS frame has been acknowledged by both peers. An attacker exploits this window by sending a compressed header block that decompresses to an exceptionally large size, triggering unbounded memory allocation (CWE-400, CWE-770). Once the SETTINGS acknowledgement completes, the configured header list size limit becomes active, but by then memory exhaustion may already have occurred.
Business impact
Services built on HttpComponents Core that expose HTTP/2 endpoints face a trivial remote denial-of-service risk. A single attacker, without authentication or special privileges, can force memory consumption that crashes the application, disrupting availability. This is particularly critical for backend APIs, microservices, and proxies that rely on this library for HTTP communication and may be exposed directly to untrusted networks.
Affected systems
Apache HttpComponents Core versions 5.4.2 and earlier are vulnerable, as well as 5.5-beta1. Any Java application embedding this library and accepting HTTP/2 connections is potentially affected. This includes services using HttpComponents for client-side requests if they process responses from untrusted HTTP/2 servers, though the more common exposure is server-side ingestion of incoming HTTP/2 traffic.
Exploitability
This vulnerability has a low barrier to exploitation. No authentication, user interaction, or special network access is required—a remote attacker with basic HTTP/2 knowledge can craft a malicious connection within seconds. The attack is deterministic: once the exploit payload is sent, memory exhaustion occurs predictably. The CVSS score of 7.5 (HIGH) reflects the ease of exploitation and complete availability impact, though no confidentiality or integrity is compromised.
Remediation
Upgrade Apache HttpComponents Core to a patched version released by the project. Organizations must verify the exact patched version numbers against Apache's official advisory, as version numbers depend on the release track (5.4.x vs. 5.5.x). Interim mitigations include implementing HTTP/2 connection-level rate limiting, reducing the maximum concurrent connections, or temporarily disabling HTTP/2 support if feasible, though these do not address the root cause.
Patch guidance
Check the Apache HttpComponents project repository and security advisories for the specific patched version numbers for your release branch. After upgrading, validate that the new version is in use in production (check manifest files, dependency trees, and running process metadata). Test the patched version in a staging environment against your normal HTTP/2 traffic patterns before production deployment. If you maintain custom builds or shaded JARs, ensure the upgrade includes the patched httpcomponents-core dependency.
Detection guidance
Monitor for unexpected spikes in memory consumption on services using HttpComponents Core, particularly heap memory in Java processes. Anomalous JVM garbage collection pauses or OutOfMemoryErrors correlated with incoming HTTP/2 connections are red flags. Network-level detection is challenging because the malicious traffic is valid HTTP/2 framing; focus instead on runtime monitoring and logs showing memory pressure during connection establishment. Ensure application monitoring includes heap usage metrics per connection or per application instance.
Why prioritize this
This vulnerability warrants rapid patching because it is remotely exploitable without authentication, affects a foundational library used across many Java applications, and guarantees denial of service with minimal attacker effort. The lack of a KEV listing does not reduce urgency—it reflects the vulnerability's youth (published July 2026) rather than low risk. Organizations running customer-facing or internal services on HttpComponents Core should treat this as critical.
Risk score, explained
The CVSS 7.5 HIGH score appropriately captures the severity: attack vector is network (AV:N), attack complexity is low (AC:L), no privileges or user interaction required (PR:N/UI:N), impact is isolated to availability (A:H, C:N/I:N). The high score reflects the ease and reliability of exploitation, though the impact is limited to availability rather than data breach or code execution.
Frequently asked questions
Does this affect HttpComponents Client (the HTTP client library)?
The vulnerability is specific to HttpComponents Core, the low-level HTTP implementation. HttpComponents Client depends on Core, so any application using the Client library may be affected if it processes HTTP/2 responses from untrusted servers. However, the primary risk is in server-side applications receiving HTTP/2 requests. Verify your dependency tree to confirm the Core version in use.
Can we mitigate this without patching?
Partial mitigations exist: disable HTTP/2 support if your application allows it, implement aggressive connection rate limits or connection pooling limits, or place a reverse proxy (with its own patched HTTP/2 handler) in front of your service to absorb malformed requests. These are temporary measures only and do not eliminate the vulnerability in the application itself.
How do we know if we've been exploited?
Exploitation manifests as a denial of service: the affected application crashes or becomes unresponsive due to memory exhaustion. Monitor your application logs and metrics for OutOfMemoryErrors, unresponsive thread pools, or unexpected JVM restarts correlating with new HTTP/2 connections. A single exploit attempt will typically crash the service, making it visible in alerting systems.
Why does the vulnerability only apply until the SETTINGS acknowledgement?
HTTP/2 allows peers to negotiate connection parameters via a SETTINGS frame. Until both sides acknowledge the settings, the decoder operates in a default or permissive mode. The header list size limit is part of these negotiated settings. The attacker exploits the window before the limit is applied, sending an enormous header block during the handshake phase. Once settings are acknowledged, the limit activates and prevents further oversized headers.
This analysis is based on the published CVE description and CVSS assessment as of the modification date. Specific patch version numbers and availability should be verified against the official Apache HttpComponents project security advisory and release notes. Exploit status (KEV, active exploitation in the wild) may change; consult CISA's KEV catalog and threat intelligence sources for the latest information. Internal testing in a non-production environment is recommended before deploying patches. This material is provided for informational purposes to support risk management; it does not constitute legal or compliance advice. Source: NVD (public-domain), retrieved 2026-08-10. Analysis generated by SEC.co (claude-haiku-4-5).
Related vulnerabilities
- CVE-2026-49361HIGHApache Fluss Remote Denial of Service via Oversized Frame
- CVE-2023-54365HIGHTraefik HTTP/2 Denial of Service Vulnerability – Rapid Reset Attack
- CVE-2026-12151HIGHundici WebSocket Memory Exhaustion DoS Vulnerability
- CVE-2026-40983HIGHMicrometer gRPC Denial-of-Service Vulnerability
- CVE-2026-40984HIGHMicrometer Denial-of-Service Vulnerability – HTTP Request Handling Flaw
- CVE-2026-42127HIGHGrafana Unauthenticated Denial-of-Service via Request Body Size
- CVE-2026-44250HIGHNetty Redis Codec Denial-of-Service via Nested Array Memory Exhaustion
- CVE-2026-44890HIGHNetty Redis Codec Memory Exhaustion Denial of Service