Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSend HTTP/2 request with two Host headers
-
Deliveryh2 ≤4.4.0 accepts malformed header block
-
ExploitBoth Host headers forwarded to consuming application
-
ExecutionConsumer rewrites request as HTTP/1.1
-
PersistDownstream origin receives ambiguous dual-Host request
-
ImpactInconsistent Host interpretation exploited for cache poisoning or access control bypass
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V4 - API and Web Service HTTP request consistency
|
| Exploitation Conditions | Exploitation requires two conditions to be simultaneously present. First, the target application must use h2 version 4.4.0 or earlier as its HTTP/2 parsing layer - any deployment running h2 ≥4.4.1 is patched. Second, the application or an intermediary component must downgrade the parsed HTTP/2 request to HTTP/1.1 before forwarding it to an upstream or origin server, which is a common pattern in reverse proxies, API gateways, and load balancers. The CVSS vector (AV:N/AC:L/PR:N/UI:N) confirms that no authentication and no special attacker-side configuration is required to send the crafted HTTP/2 request. The limiting factor is architectural: deployments where h2 terminates HTTP/2 without any subsequent HTTP/1.1 forwarding are not exposed to the smuggling consequence, even though the library still silently accepts the malformed header block. |
| Impact | The NVD CVSS 5.3 (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L) rates this as moderate, but the I:N assignment is worth scrutinising: request smuggling is fundamentally an integrity-class attack (cache poisoning, security control bypass, routing manipulation), and the A:L rating in the official vector is atypical for this vulnerability class. Real-world risk is highly deployment-dependent - the smuggling impact only materialises where h2 feeds into an HTTP/1.1 backend or proxy that interprets Host headers; deployments where h2 is a terminating endpoint with no downstream HTTP/1.1 forwarding are not exposed to the smuggling consequence, though the library still silently accepts the malformed input. No EPSS data was provided, so exploitation probability cannot be quantified. Not in CISA KEV and no public exploit code identified at time of analysis, suggesting no widespread weaponisation at the time of disclosure. Patch is available and straightforward to apply, making this a low-urgency-but-clear-action item for teams running h2-powered HTTP/2-to-HTTP/1.1 gateway architectures. |
| Exploit ScenarioDerived | A remote, unauthenticated attacker sends a crafted HTTP/2 request to an h2-powered reverse proxy, embedding two Host header fields in a single HPACK header block. The h2 library accepts both and forwards them to a backend that rewrites the request as HTTP/1.1; the resulting request carries two Host lines, which the origin server or caching layer interprets inconsistently with the proxy, allowing the attacker to poison a shared cache entry or bypass a Host-based access control rule. No public exploit code has been identified at time of analysis, but the technique is well-documented in HTTP smuggling literature. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 06, 2026
Request smuggling primitive in h2 (pip/h2) versions 4.4.0 and below enables network-accessible attackers to craft HTTP/2 header blocks containing duplicate Host headers that the library forwards verbatim to consuming applications. When a consumer downgrades the HTTP/2 request to HTTP/1.1 - a common pattern in reverse proxy and gateway architectures - the resulting HTTP/1.1 request carries two Host header lines, violating RFC 7230 and creating an ambiguity that downstream servers may interpret differently, enabling cache poisoning, security control bypass, or session hijacking. No active exploitation confirmed (not in CISA KEV); no public exploit code identified at time of analysis; fix is available in v4.4.1.
RemediationAI
Upgrade the pip/h2 package to version 4.4.1 or later; this version raises a ProtocolError and rejects any HTTP/2 header block containing multiple Host headers before the data reaches application code (patch commit 292a40829feefda98c8509dcdbbb4a57af9bd6a6, advisory GHSA-6hr6-w5qg-qmwg). Where an immediate upgrade is not possible, consuming application code should explicitly validate that each inbound request exposes exactly one Host header and reject or terminate requests that carry duplicates - however, the vendor notes that h2 provides best-effort sanity checks and the calling code bears final responsibility, so application-layer workarounds are fragile and should not substitute for upgrading. Teams should audit any reverse proxy or gateway components built on h2 that perform HTTP/2-to-HTTP/1.1 downgrading, as those are the deployments where the smuggling primitive can be realised; architectures that terminate HTTP/2 without any HTTP/1.1 downstream forwarding have reduced but non-zero exposure.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in pypi
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
h2 is the canonical Python implementation of the HTTP/2 protocol, distributed as pip/h2 under the python-hyper organization. HTTP/2 transmits headers as HPACK-compressed binary blocks rather than plaintext; the h2 library is responsible for parsing these blocks and surfacing them to calling application code. CWE-444 (Inconsistent Interpretation of HTTP Requests) describes the root cause: h2 ≤4.4.0 did not enforce the HTTP/2 specification requirement that a header block contain at most one Host header, and forwarded all duplicates downstream. The vulnerability mirrors a prior duplicate content-length issue in the same library. The patch (commit 292a40829feefda98c8509dcdbbb4a57af9bd6a6) adds a ProtocolError in _validate_host_authority_header within src/h2/utilities.py that rejects header blocks containing more than one Host value before they reach consumer code. The affected CPE is pkg:pip/h2.
Know when the next one hits your stack
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Network-accessible with no auth; integrity impact (routing/cache manipulation) better represents smuggling than availability; no confidentiality or availability impact from the primitive itself.
Primary rating from Vendor (https://github.com/python-hyper/h2).
CVSS VectorVendor: https://github.com/python-hyper/h2
DescriptionCVE.org
Impact
h2 <=4.4.0 accepts request header blocks containing more than one Host header, and forwards every Host header to the consuming application. Where the consumer downgrades HTTP/2 to HTTP/1.1, the resulting request carries two Host header lines, which is a request smuggling primitive (CWE-444).
Patches
Patched and fixed in v4.4.1
Workarounds
Users of the h2 library are advised to check and follow HTTP semantics best practices in their application code. h2 provides best effort sanity checks, but ultimately the calling code is responsible to ensure proper and safe usage of HTTP/2 as provided by h2, hyperframe, and hpack.
References
Similar to the previously disclosed and fixed duplicate content-length issue.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
HTTP request smuggling exploits inconsistencies in how front-end and back-end servers parse HTTP message boundaries.
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Same weakness CWE-444 – HTTP Request/Response Smuggling
View allSame technique Information Disclosure
View allVendor StatusVendor
SUSE
Severity: Moderate| Product | Status |
|---|---|
| SUSE Linux Enterprise Desktop 15 SP7 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP7 | Affected |
| SUSE Linux Enterprise Module for Python 3 15 SP7 | Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP7 | Affected |
| SUSE Linux Enterprise Server 15 SP7 | Affected |
| SUSE Linux Enterprise Server 16.0 | Affected |
| SUSE Linux Enterprise Server 16.1 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP7 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.0 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.1 | Affected |
| openSUSE Leap 16.0 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4-LTSS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5-LTSS | Affected |
| SUSE Linux Enterprise Module for Python 3 15 SP4 | Affected |
| SUSE Linux Enterprise Module for Python 3 15 SP5 | Affected |
| SUSE Linux Enterprise Module for Python 3 15 SP6 | Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP4 | Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP5 | Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP6 | Affected |
| SUSE Linux Enterprise Server 15 SP4 | Affected |
| SUSE Linux Enterprise Server 15 SP4-LTSS | Affected |
| SUSE Linux Enterprise Server 15 SP5 | Affected |
| SUSE Linux Enterprise Server 15 SP5-LTSS | Affected |
| SUSE Linux Enterprise Server 15 SP6 | Affected |
| SUSE Linux Enterprise Server 15 SP6-LTSS | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP6 | Affected |
| SUSE Manager Proxy 4.3 | Affected |
| SUSE Manager Proxy LTS 4.3 | Affected |
| SUSE Manager Retail Branch Server 4.3 | Affected |
| SUSE Manager Retail Branch Server LTS 4.3 | Affected |
| SUSE Manager Server 4.3 | Affected |
| SUSE Manager Server LTS 4.3 | Affected |
| SUSE Enterprise Storage 7 | Affected |
| SUSE Enterprise Storage 7.1 | Affected |
| SUSE Linux Enterprise Desktop 15 SP4 | Affected |
| SUSE Linux Enterprise Desktop 15 SP5 | Affected |
| SUSE Linux Enterprise Desktop 15 SP6 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP2 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP2-ESPOS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP2-LTSS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP3 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP3-ESPOS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP3-LTSS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4-ESPOS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP6 | Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP2 | Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP3 | Affected |
| SUSE Linux Enterprise Real Time 15 SP2 | Affected |
| SUSE Linux Enterprise Real Time 15 SP3 | Affected |
| SUSE Linux Enterprise Real Time 15 SP4 | Affected |
| SUSE Linux Enterprise Server 15 SP2 | Affected |
| SUSE Linux Enterprise Server 15 SP2-BCL | Affected |
| SUSE Linux Enterprise Server 15 SP2-LTSS | Affected |
| SUSE Linux Enterprise Server 15 SP3 | Affected |
| SUSE Linux Enterprise Server 15 SP3-BCL | Affected |
| SUSE Linux Enterprise Server 15 SP3-LTSS | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP2 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP3 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP4 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP5 | Affected |
| SUSE Manager Proxy 4.1 | Affected |
| SUSE Manager Proxy 4.2 | Affected |
| SUSE Manager Retail Branch Server 4.1 | Affected |
| SUSE Manager Retail Branch Server 4.2 | Affected |
| SUSE Manager Server 4.1 | Affected |
| SUSE Manager Server 4.2 | Affected |
| openSUSE Leap 15.3 | Affected |
| openSUSE Leap 15.4 | Affected |
| openSUSE Leap 15.5 | Affected |
| openSUSE Leap 15.6 | Affected |
EUVD-2026-54177
GHSA-6hr6-w5qg-qmwg
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB