httpx2
A next generation HTTP client for Python. 🦋
Activity
- Latest release
- 3w ago
- Total releases
- 16
- Cadence
- ~2 days
- Last 12 months
- 16
Reach
- Stars
- 999
Details
- License
- BSD-3-Clause
- First release
- May 11, 2026
| Version | Released | |
|---|---|---|
2.12.0
minor
| ||
2.11.0
minor
1 CVE
CVE-2026-84382
PYSEC-2026-3846
GHSA-8xx6-hgc6-gc2m
Sep 10, 2026
HTTPX2: Streaming response decompression does not bound peak memory (decompression amplification)
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
SummaryWhen decoding a compressed response body ( DetailsHTTPX2's default transport reads the socket in pieces of up to 64 KiB. Before At DEFLATE's maximum compression ratio of roughly 1032:1, a 64 KiB compressed chunk can expand to about 64 MiB in one allocation. Brotli and Zstandard responses can cause similarly large amplification. Streaming the response did not prevent these transient allocations. ImpactApplications that fetch resources from untrusted or attacker-influenced servers - such as webhook receivers, link unfurlers, crawlers, SSRF-reachable fetchers, and redirect followers - can experience memory pressure or out-of-memory termination when processing a malicious compressed response. No authentication or user interaction is required beyond issuing a request to the server. MitigationUpgrade to HTTPX2 Affected versions
0.0.0
2.0.0
2.0.0b1
2.1.0
2.10.0
2.11.0
2.2.0
2.3.0
2.4.0
2.5.0
2.6.0
2.7.0
+ 3 more Show less
2.8.0
2.9.0
2.9.1
Fixed in
2.12.0
References
Updated Sep 10, 2026 · Source: OSV.dev | ||
2.10.0
minor
3 CVEs
CVE-2026-84382
PYSEC-2026-3846
GHSA-8xx6-hgc6-gc2m
Sep 10, 2026
HTTPX2: Streaming response decompression does not bound peak memory (decompression amplification)
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
SummaryWhen decoding a compressed response body ( DetailsHTTPX2's default transport reads the socket in pieces of up to 64 KiB. Before At DEFLATE's maximum compression ratio of roughly 1032:1, a 64 KiB compressed chunk can expand to about 64 MiB in one allocation. Brotli and Zstandard responses can cause similarly large amplification. Streaming the response did not prevent these transient allocations. ImpactApplications that fetch resources from untrusted or attacker-influenced servers - such as webhook receivers, link unfurlers, crawlers, SSRF-reachable fetchers, and redirect followers - can experience memory pressure or out-of-memory termination when processing a malicious compressed response. No authentication or user interaction is required beyond issuing a request to the server. MitigationUpgrade to HTTPX2 Affected versions
0.0.0
2.0.0
2.0.0b1
2.1.0
2.10.0
2.11.0
2.2.0
2.3.0
2.4.0
2.5.0
2.6.0
2.7.0
+ 3 more Show less
2.8.0
2.9.0
2.9.1
Fixed in
2.12.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-84380
PYSEC-2026-3849
GHSA-pf96-p4fj-6566
Sep 10, 2026
HTTPX2: Conflicting Content-Length and Transfer-Encoding headers can be auto-generated
5.6
/ 10
Medium
Network
High
None
None
Unchanged
Low
Low
Low
SummaryHTTPX2 can automatically add a DetailsWhen a request body has a known size, HTTPX2's content encoder returns a default For example:
The request contains both:
On an HTTP/1.1 connection, the body is serialized using chunked transfer coding while both headers are sent on the wire. This violates HTTP message-framing requirements. Fixed-size byte, JSON, form, and known-length multipart bodies can reach the affected path. Streaming bodies with an explicit ImpactAn attacker may be able to use the conflicting framing headers as a request-smuggling or desynchronization primitive. Exploitation requires an application to pass attacker-controlled request framing headers and associated body data to HTTPX2, use HTTP/1.1, and communicate through a proxy or origin that accepts conflicting headers and interprets them differently from another hop. Depending on the downstream infrastructure, successful exploitation could interfere with requests sharing a persistent connection, bypass front-end routing or authorization decisions, or poison responses or caches. Applications that do not forward attacker-controlled MitigationUpgrade to HTTPX2 If upgrading is not immediately possible, remove Affected versions
0.0.0
2.0.0
2.0.0b1
2.1.0
2.10.0
2.2.0
2.3.0
2.4.0
2.5.0
2.6.0
2.7.0
2.8.0
+ 2 more Show less
2.9.0
2.9.1
Fixed in
2.11.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-84379
PYSEC-2026-3848
GHSA-h4x7-gw46-3wm6
Sep 10, 2026
HTTPX2: Multipart part header injection via unvalidated file Content-Type and custom headers
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
Low
None
SummaryHTTPX2 serializes the per-file DetailsThe three-element file tuple accepts For example:
The generated body contains an attacker-injected part header:
The same issue affects names and values in the custom header mapping from the four-element tuple. Field names and filenames are serialized through a separate escaping path and do not permit CRLF header injection. ImpactApplications are affected when they pass attacker-controlled upload metadata into the per-file This does not split the outer HTTP request: the injected headers are contained within the multipart body. The concrete security impact therefore depends on the downstream multipart parser and application behavior. MitigationUpgrade to HTTPX2 If upgrading is not immediately possible, applications should validate custom multipart header names as HTTP field-name tokens. They should reject NUL, CR, LF, other C0 controls except horizontal tab, and DEL in per-file content types and custom header values before passing them to HTTPX2. Affected versions
0.0.0
2.0.0
2.0.0b1
2.1.0
2.10.0
2.2.0
2.3.0
2.4.0
2.5.0
2.6.0
2.7.0
2.8.0
+ 2 more Show less
2.9.0
2.9.1
Fixed in
2.11.0
References
Updated Sep 10, 2026 · Source: OSV.dev | ||
2.9.1
patch
5 CVEs
CVE-2026-84382
PYSEC-2026-3846
GHSA-8xx6-hgc6-gc2m
Sep 10, 2026
HTTPX2: Streaming response decompression does not bound peak memory (decompression amplification)
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
SummaryWhen decoding a compressed response body ( DetailsHTTPX2's default transport reads the socket in pieces of up to 64 KiB. Before At DEFLATE's maximum compression ratio of roughly 1032:1, a 64 KiB compressed chunk can expand to about 64 MiB in one allocation. Brotli and Zstandard responses can cause similarly large amplification. Streaming the response did not prevent these transient allocations. ImpactApplications that fetch resources from untrusted or attacker-influenced servers - such as webhook receivers, link unfurlers, crawlers, SSRF-reachable fetchers, and redirect followers - can experience memory pressure or out-of-memory termination when processing a malicious compressed response. No authentication or user interaction is required beyond issuing a request to the server. MitigationUpgrade to HTTPX2 Affected versions
0.0.0
2.0.0
2.0.0b1
2.1.0
2.10.0
2.11.0
2.2.0
2.3.0
2.4.0
2.5.0
2.6.0
2.7.0
+ 3 more Show less
2.8.0
2.9.0
2.9.1
Fixed in
2.12.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-84380
PYSEC-2026-3849
GHSA-pf96-p4fj-6566
Sep 10, 2026
HTTPX2: Conflicting Content-Length and Transfer-Encoding headers can be auto-generated
5.6
/ 10
Medium
Network
High
None
None
Unchanged
Low
Low
Low
SummaryHTTPX2 can automatically add a DetailsWhen a request body has a known size, HTTPX2's content encoder returns a default For example:
The request contains both:
On an HTTP/1.1 connection, the body is serialized using chunked transfer coding while both headers are sent on the wire. This violates HTTP message-framing requirements. Fixed-size byte, JSON, form, and known-length multipart bodies can reach the affected path. Streaming bodies with an explicit ImpactAn attacker may be able to use the conflicting framing headers as a request-smuggling or desynchronization primitive. Exploitation requires an application to pass attacker-controlled request framing headers and associated body data to HTTPX2, use HTTP/1.1, and communicate through a proxy or origin that accepts conflicting headers and interprets them differently from another hop. Depending on the downstream infrastructure, successful exploitation could interfere with requests sharing a persistent connection, bypass front-end routing or authorization decisions, or poison responses or caches. Applications that do not forward attacker-controlled MitigationUpgrade to HTTPX2 If upgrading is not immediately possible, remove Affected versions
0.0.0
2.0.0
2.0.0b1
2.1.0
2.10.0
2.2.0
2.3.0
2.4.0
2.5.0
2.6.0
2.7.0
2.8.0
+ 2 more Show less
2.9.0
2.9.1
Fixed in
2.11.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-84379
PYSEC-2026-3848
GHSA-h4x7-gw46-3wm6
Sep 10, 2026
HTTPX2: Multipart part header injection via unvalidated file Content-Type and custom headers
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
Low
None
SummaryHTTPX2 serializes the per-file DetailsThe three-element file tuple accepts For example:
The generated body contains an attacker-injected part header:
The same issue affects names and values in the custom header mapping from the four-element tuple. Field names and filenames are serialized through a separate escaping path and do not permit CRLF header injection. ImpactApplications are affected when they pass attacker-controlled upload metadata into the per-file This does not split the outer HTTP request: the injected headers are contained within the multipart body. The concrete security impact therefore depends on the downstream multipart parser and application behavior. MitigationUpgrade to HTTPX2 If upgrading is not immediately possible, applications should validate custom multipart header names as HTTP field-name tokens. They should reject NUL, CR, LF, other C0 controls except horizontal tab, and DEL in per-file content types and custom header values before passing them to HTTPX2. Affected versions
0.0.0
2.0.0
2.0.0b1
2.1.0
2.10.0
2.2.0
2.3.0
2.4.0
2.5.0
2.6.0
2.7.0
2.8.0
+ 2 more Show less
2.9.0
2.9.1
Fixed in
2.11.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-84378
PYSEC-2026-3847
GHSA-f2fp-rgf2-35cp
Sep 10, 2026
HTTPX2: Quadratic SSE line buffering can cause CPU denial of service
5.9
/ 10
Medium
Network
High
None
None
Unchanged
None
None
High
SummaryHTTPX2's Server-Sent Events (SSE) parser repeatedly copied and rescanned buffered text when a server split one unterminated line across many response chunks. The total work grows quadratically with the length of the line. An attacker-controlled or compromised SSE endpoint can exploit this behavior to consume excessive client CPU. DetailsBefore version 2.10.0, HTTPX2 combined the complete pending SSE line with each newly received chunk and then scanned the combined text for line separators. If an SSE server sends a long line as many small chunks without a line separator, every chunk causes all previously received text to be copied and scanned again. For The behavior affects both ImpactApplications that consume SSE from an attacker-controlled or compromised endpoint can experience excessive CPU usage. A crafted stream can block a synchronous worker or the asynchronous event loop that is consuming it, degrading availability for other work in that process. Confidentiality and integrity are not affected. MitigationUpgrade to HTTPX2 2.10.0 or later. SSE parsing now accumulates incomplete line fragments and combines them only when necessary, making processing linear in the amount of received data. HTTPX2 2.10.0 also limits buffered SSE events to 1 MiB by default through If upgrading is not immediately possible, only consume SSE from trusted endpoints and enforce an external size or time budget on the stream. Affected versions
2.5.0
2.6.0
2.7.0
2.8.0
2.9.0
2.9.1
Fixed in
2.10.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-84381
PYSEC-2026-3845
GHSA-7mj9-2mp8-4m2p
PYSEC-2026-3844
Sep 10, 2026
HTTPX2: Secure WebSocket traffic sent without TLS through SOCKS proxies
8.1
/ 10
High
Adjacent
Low
None
None
Unchanged
High
High
None
Summaryhttpcore2 does not start TLS for The transport flaw affects httpcore2 releases before DetailsThe synchronous and asynchronous SOCKS5 connection implementations upgrade the established proxy tunnel to TLS only when the remote origin scheme is For example, an application using HTTPX2
On affected versions, the stream passing through the SOCKS proxy begins with a plaintext request such as:
Before HTTPX2 A normal secure WebSocket server will usually reject these plaintext bytes because it expects a TLS ClientHello. However, a malicious or compromised SOCKS proxy can accept the SOCKS connection, observe the plaintext handshake, return a forged RFC 6455 requires a client using a secure WebSocket connection to perform the TLS handshake before sending the WebSocket opening handshake. A ImpactAn attacker able to control or observe the SOCKS proxy path can obtain URL query parameters, authorization headers, cookies, and application messages that the caller expected TLS to protect. Because no TLS handshake occurs, certificate verification also does not occur, allowing an attacker controlling the proxy to impersonate the WebSocket server and inject or alter messages. Only MitigationUpgrade HTTPX2 and httpcore2 to If upgrading is not immediately possible, do not route Affected versions
2.6.0
2.7.0
2.8.0
2.9.0
2.9.1
Fixed in
2.10.0
References
Updated Sep 10, 2026 · Source: OSV.dev | ||
2.9.0
minor
5 CVEs
CVE-2026-84382
PYSEC-2026-3846
GHSA-8xx6-hgc6-gc2m
Sep 10, 2026
HTTPX2: Streaming response decompression does not bound peak memory (decompression amplification)
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
SummaryWhen decoding a compressed response body ( DetailsHTTPX2's default transport reads the socket in pieces of up to 64 KiB. Before At DEFLATE's maximum compression ratio of roughly 1032:1, a 64 KiB compressed chunk can expand to about 64 MiB in one allocation. Brotli and Zstandard responses can cause similarly large amplification. Streaming the response did not prevent these transient allocations. ImpactApplications that fetch resources from untrusted or attacker-influenced servers - such as webhook receivers, link unfurlers, crawlers, SSRF-reachable fetchers, and redirect followers - can experience memory pressure or out-of-memory termination when processing a malicious compressed response. No authentication or user interaction is required beyond issuing a request to the server. MitigationUpgrade to HTTPX2 Affected versions
0.0.0
2.0.0
2.0.0b1
2.1.0
2.10.0
2.11.0
2.2.0
2.3.0
2.4.0
2.5.0
2.6.0
2.7.0
+ 3 more Show less
2.8.0
2.9.0
2.9.1
Fixed in
2.12.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-84380
PYSEC-2026-3849
GHSA-pf96-p4fj-6566
Sep 10, 2026
HTTPX2: Conflicting Content-Length and Transfer-Encoding headers can be auto-generated
5.6
/ 10
Medium
Network
High
None
None
Unchanged
Low
Low
Low
SummaryHTTPX2 can automatically add a DetailsWhen a request body has a known size, HTTPX2's content encoder returns a default For example:
The request contains both:
On an HTTP/1.1 connection, the body is serialized using chunked transfer coding while both headers are sent on the wire. This violates HTTP message-framing requirements. Fixed-size byte, JSON, form, and known-length multipart bodies can reach the affected path. Streaming bodies with an explicit ImpactAn attacker may be able to use the conflicting framing headers as a request-smuggling or desynchronization primitive. Exploitation requires an application to pass attacker-controlled request framing headers and associated body data to HTTPX2, use HTTP/1.1, and communicate through a proxy or origin that accepts conflicting headers and interprets them differently from another hop. Depending on the downstream infrastructure, successful exploitation could interfere with requests sharing a persistent connection, bypass front-end routing or authorization decisions, or poison responses or caches. Applications that do not forward attacker-controlled MitigationUpgrade to HTTPX2 If upgrading is not immediately possible, remove Affected versions
0.0.0
2.0.0
2.0.0b1
2.1.0
2.10.0
2.2.0
2.3.0
2.4.0
2.5.0
2.6.0
2.7.0
2.8.0
+ 2 more Show less
2.9.0
2.9.1
Fixed in
2.11.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-84379
PYSEC-2026-3848
GHSA-h4x7-gw46-3wm6
Sep 10, 2026
HTTPX2: Multipart part header injection via unvalidated file Content-Type and custom headers
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
Low
None
SummaryHTTPX2 serializes the per-file DetailsThe three-element file tuple accepts For example:
The generated body contains an attacker-injected part header:
The same issue affects names and values in the custom header mapping from the four-element tuple. Field names and filenames are serialized through a separate escaping path and do not permit CRLF header injection. ImpactApplications are affected when they pass attacker-controlled upload metadata into the per-file This does not split the outer HTTP request: the injected headers are contained within the multipart body. The concrete security impact therefore depends on the downstream multipart parser and application behavior. MitigationUpgrade to HTTPX2 If upgrading is not immediately possible, applications should validate custom multipart header names as HTTP field-name tokens. They should reject NUL, CR, LF, other C0 controls except horizontal tab, and DEL in per-file content types and custom header values before passing them to HTTPX2. Affected versions
0.0.0
2.0.0
2.0.0b1
2.1.0
2.10.0
2.2.0
2.3.0
2.4.0
2.5.0
2.6.0
2.7.0
2.8.0
+ 2 more Show less
2.9.0
2.9.1
Fixed in
2.11.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-84378
PYSEC-2026-3847
GHSA-f2fp-rgf2-35cp
Sep 10, 2026
HTTPX2: Quadratic SSE line buffering can cause CPU denial of service
5.9
/ 10
Medium
Network
High
None
None
Unchanged
None
None
High
SummaryHTTPX2's Server-Sent Events (SSE) parser repeatedly copied and rescanned buffered text when a server split one unterminated line across many response chunks. The total work grows quadratically with the length of the line. An attacker-controlled or compromised SSE endpoint can exploit this behavior to consume excessive client CPU. DetailsBefore version 2.10.0, HTTPX2 combined the complete pending SSE line with each newly received chunk and then scanned the combined text for line separators. If an SSE server sends a long line as many small chunks without a line separator, every chunk causes all previously received text to be copied and scanned again. For The behavior affects both ImpactApplications that consume SSE from an attacker-controlled or compromised endpoint can experience excessive CPU usage. A crafted stream can block a synchronous worker or the asynchronous event loop that is consuming it, degrading availability for other work in that process. Confidentiality and integrity are not affected. MitigationUpgrade to HTTPX2 2.10.0 or later. SSE parsing now accumulates incomplete line fragments and combines them only when necessary, making processing linear in the amount of received data. HTTPX2 2.10.0 also limits buffered SSE events to 1 MiB by default through If upgrading is not immediately possible, only consume SSE from trusted endpoints and enforce an external size or time budget on the stream. Affected versions
2.5.0
2.6.0
2.7.0
2.8.0
2.9.0
2.9.1
Fixed in
2.10.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-84381
PYSEC-2026-3845
GHSA-7mj9-2mp8-4m2p
PYSEC-2026-3844
Sep 10, 2026
HTTPX2: Secure WebSocket traffic sent without TLS through SOCKS proxies
8.1
/ 10
High
Adjacent
Low
None
None
Unchanged
High
High
None
Summaryhttpcore2 does not start TLS for The transport flaw affects httpcore2 releases before DetailsThe synchronous and asynchronous SOCKS5 connection implementations upgrade the established proxy tunnel to TLS only when the remote origin scheme is For example, an application using HTTPX2
On affected versions, the stream passing through the SOCKS proxy begins with a plaintext request such as:
Before HTTPX2 A normal secure WebSocket server will usually reject these plaintext bytes because it expects a TLS ClientHello. However, a malicious or compromised SOCKS proxy can accept the SOCKS connection, observe the plaintext handshake, return a forged RFC 6455 requires a client using a secure WebSocket connection to perform the TLS handshake before sending the WebSocket opening handshake. A ImpactAn attacker able to control or observe the SOCKS proxy path can obtain URL query parameters, authorization headers, cookies, and application messages that the caller expected TLS to protect. Because no TLS handshake occurs, certificate verification also does not occur, allowing an attacker controlling the proxy to impersonate the WebSocket server and inject or alter messages. Only MitigationUpgrade HTTPX2 and httpcore2 to If upgrading is not immediately possible, do not route Affected versions
2.6.0
2.7.0
2.8.0
2.9.0
2.9.1
Fixed in
2.10.0
References
Updated Sep 10, 2026 · Source: OSV.dev | ||
2.8.0
minor
5 CVEs
CVE-2026-84382
PYSEC-2026-3846
GHSA-8xx6-hgc6-gc2m
Sep 10, 2026
HTTPX2: Streaming response decompression does not bound peak memory (decompression amplification)
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
SummaryWhen decoding a compressed response body ( DetailsHTTPX2's default transport reads the socket in pieces of up to 64 KiB. Before At DEFLATE's maximum compression ratio of roughly 1032:1, a 64 KiB compressed chunk can expand to about 64 MiB in one allocation. Brotli and Zstandard responses can cause similarly large amplification. Streaming the response did not prevent these transient allocations. ImpactApplications that fetch resources from untrusted or attacker-influenced servers - such as webhook receivers, link unfurlers, crawlers, SSRF-reachable fetchers, and redirect followers - can experience memory pressure or out-of-memory termination when processing a malicious compressed response. No authentication or user interaction is required beyond issuing a request to the server. MitigationUpgrade to HTTPX2 Affected versions
0.0.0
2.0.0
2.0.0b1
2.1.0
2.10.0
2.11.0
2.2.0
2.3.0
2.4.0
2.5.0
2.6.0
2.7.0
+ 3 more Show less
2.8.0
2.9.0
2.9.1
Fixed in
2.12.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-84380
PYSEC-2026-3849
GHSA-pf96-p4fj-6566
Sep 10, 2026
HTTPX2: Conflicting Content-Length and Transfer-Encoding headers can be auto-generated
5.6
/ 10
Medium
Network
High
None
None
Unchanged
Low
Low
Low
SummaryHTTPX2 can automatically add a DetailsWhen a request body has a known size, HTTPX2's content encoder returns a default For example:
The request contains both:
On an HTTP/1.1 connection, the body is serialized using chunked transfer coding while both headers are sent on the wire. This violates HTTP message-framing requirements. Fixed-size byte, JSON, form, and known-length multipart bodies can reach the affected path. Streaming bodies with an explicit ImpactAn attacker may be able to use the conflicting framing headers as a request-smuggling or desynchronization primitive. Exploitation requires an application to pass attacker-controlled request framing headers and associated body data to HTTPX2, use HTTP/1.1, and communicate through a proxy or origin that accepts conflicting headers and interprets them differently from another hop. Depending on the downstream infrastructure, successful exploitation could interfere with requests sharing a persistent connection, bypass front-end routing or authorization decisions, or poison responses or caches. Applications that do not forward attacker-controlled MitigationUpgrade to HTTPX2 If upgrading is not immediately possible, remove Affected versions
0.0.0
2.0.0
2.0.0b1
2.1.0
2.10.0
2.2.0
2.3.0
2.4.0
2.5.0
2.6.0
2.7.0
2.8.0
+ 2 more Show less
2.9.0
2.9.1
Fixed in
2.11.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-84379
PYSEC-2026-3848
GHSA-h4x7-gw46-3wm6
Sep 10, 2026
HTTPX2: Multipart part header injection via unvalidated file Content-Type and custom headers
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
Low
None
SummaryHTTPX2 serializes the per-file DetailsThe three-element file tuple accepts For example:
The generated body contains an attacker-injected part header:
The same issue affects names and values in the custom header mapping from the four-element tuple. Field names and filenames are serialized through a separate escaping path and do not permit CRLF header injection. ImpactApplications are affected when they pass attacker-controlled upload metadata into the per-file This does not split the outer HTTP request: the injected headers are contained within the multipart body. The concrete security impact therefore depends on the downstream multipart parser and application behavior. MitigationUpgrade to HTTPX2 If upgrading is not immediately possible, applications should validate custom multipart header names as HTTP field-name tokens. They should reject NUL, CR, LF, other C0 controls except horizontal tab, and DEL in per-file content types and custom header values before passing them to HTTPX2. Affected versions
0.0.0
2.0.0
2.0.0b1
2.1.0
2.10.0
2.2.0
2.3.0
2.4.0
2.5.0
2.6.0
2.7.0
2.8.0
+ 2 more Show less
2.9.0
2.9.1
Fixed in
2.11.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-84378
PYSEC-2026-3847
GHSA-f2fp-rgf2-35cp
Sep 10, 2026
HTTPX2: Quadratic SSE line buffering can cause CPU denial of service
5.9
/ 10
Medium
Network
High
None
None
Unchanged
None
None
High
SummaryHTTPX2's Server-Sent Events (SSE) parser repeatedly copied and rescanned buffered text when a server split one unterminated line across many response chunks. The total work grows quadratically with the length of the line. An attacker-controlled or compromised SSE endpoint can exploit this behavior to consume excessive client CPU. DetailsBefore version 2.10.0, HTTPX2 combined the complete pending SSE line with each newly received chunk and then scanned the combined text for line separators. If an SSE server sends a long line as many small chunks without a line separator, every chunk causes all previously received text to be copied and scanned again. For The behavior affects both ImpactApplications that consume SSE from an attacker-controlled or compromised endpoint can experience excessive CPU usage. A crafted stream can block a synchronous worker or the asynchronous event loop that is consuming it, degrading availability for other work in that process. Confidentiality and integrity are not affected. MitigationUpgrade to HTTPX2 2.10.0 or later. SSE parsing now accumulates incomplete line fragments and combines them only when necessary, making processing linear in the amount of received data. HTTPX2 2.10.0 also limits buffered SSE events to 1 MiB by default through If upgrading is not immediately possible, only consume SSE from trusted endpoints and enforce an external size or time budget on the stream. Affected versions
2.5.0
2.6.0
2.7.0
2.8.0
2.9.0
2.9.1
Fixed in
2.10.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-84381
PYSEC-2026-3845
GHSA-7mj9-2mp8-4m2p
PYSEC-2026-3844
Sep 10, 2026
HTTPX2: Secure WebSocket traffic sent without TLS through SOCKS proxies
8.1
/ 10
High
Adjacent
Low
None
None
Unchanged
High
High
None
Summaryhttpcore2 does not start TLS for The transport flaw affects httpcore2 releases before DetailsThe synchronous and asynchronous SOCKS5 connection implementations upgrade the established proxy tunnel to TLS only when the remote origin scheme is For example, an application using HTTPX2
On affected versions, the stream passing through the SOCKS proxy begins with a plaintext request such as:
Before HTTPX2 A normal secure WebSocket server will usually reject these plaintext bytes because it expects a TLS ClientHello. However, a malicious or compromised SOCKS proxy can accept the SOCKS connection, observe the plaintext handshake, return a forged RFC 6455 requires a client using a secure WebSocket connection to perform the TLS handshake before sending the WebSocket opening handshake. A ImpactAn attacker able to control or observe the SOCKS proxy path can obtain URL query parameters, authorization headers, cookies, and application messages that the caller expected TLS to protect. Because no TLS handshake occurs, certificate verification also does not occur, allowing an attacker controlling the proxy to impersonate the WebSocket server and inject or alter messages. Only MitigationUpgrade HTTPX2 and httpcore2 to If upgrading is not immediately possible, do not route Affected versions
2.6.0
2.7.0
2.8.0
2.9.0
2.9.1
Fixed in
2.10.0
References
Updated Sep 10, 2026 · Source: OSV.dev | ||
2.7.0
minor
5 CVEs
CVE-2026-84382
PYSEC-2026-3846
GHSA-8xx6-hgc6-gc2m
Sep 10, 2026
HTTPX2: Streaming response decompression does not bound peak memory (decompression amplification)
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
SummaryWhen decoding a compressed response body ( DetailsHTTPX2's default transport reads the socket in pieces of up to 64 KiB. Before At DEFLATE's maximum compression ratio of roughly 1032:1, a 64 KiB compressed chunk can expand to about 64 MiB in one allocation. Brotli and Zstandard responses can cause similarly large amplification. Streaming the response did not prevent these transient allocations. ImpactApplications that fetch resources from untrusted or attacker-influenced servers - such as webhook receivers, link unfurlers, crawlers, SSRF-reachable fetchers, and redirect followers - can experience memory pressure or out-of-memory termination when processing a malicious compressed response. No authentication or user interaction is required beyond issuing a request to the server. MitigationUpgrade to HTTPX2 Affected versions
0.0.0
2.0.0
2.0.0b1
2.1.0
2.10.0
2.11.0
2.2.0
2.3.0
2.4.0
2.5.0
2.6.0
2.7.0
+ 3 more Show less
2.8.0
2.9.0
2.9.1
Fixed in
2.12.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-84380
PYSEC-2026-3849
GHSA-pf96-p4fj-6566
Sep 10, 2026
HTTPX2: Conflicting Content-Length and Transfer-Encoding headers can be auto-generated
5.6
/ 10
Medium
Network
High
None
None
Unchanged
Low
Low
Low
SummaryHTTPX2 can automatically add a DetailsWhen a request body has a known size, HTTPX2's content encoder returns a default For example:
The request contains both:
On an HTTP/1.1 connection, the body is serialized using chunked transfer coding while both headers are sent on the wire. This violates HTTP message-framing requirements. Fixed-size byte, JSON, form, and known-length multipart bodies can reach the affected path. Streaming bodies with an explicit ImpactAn attacker may be able to use the conflicting framing headers as a request-smuggling or desynchronization primitive. Exploitation requires an application to pass attacker-controlled request framing headers and associated body data to HTTPX2, use HTTP/1.1, and communicate through a proxy or origin that accepts conflicting headers and interprets them differently from another hop. Depending on the downstream infrastructure, successful exploitation could interfere with requests sharing a persistent connection, bypass front-end routing or authorization decisions, or poison responses or caches. Applications that do not forward attacker-controlled MitigationUpgrade to HTTPX2 If upgrading is not immediately possible, remove Affected versions
0.0.0
2.0.0
2.0.0b1
2.1.0
2.10.0
2.2.0
2.3.0
2.4.0
2.5.0
2.6.0
2.7.0
2.8.0
+ 2 more Show less
2.9.0
2.9.1
Fixed in
2.11.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-84379
PYSEC-2026-3848
GHSA-h4x7-gw46-3wm6
Sep 10, 2026
HTTPX2: Multipart part header injection via unvalidated file Content-Type and custom headers
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
Low
None
SummaryHTTPX2 serializes the per-file DetailsThe three-element file tuple accepts For example:
The generated body contains an attacker-injected part header:
The same issue affects names and values in the custom header mapping from the four-element tuple. Field names and filenames are serialized through a separate escaping path and do not permit CRLF header injection. ImpactApplications are affected when they pass attacker-controlled upload metadata into the per-file This does not split the outer HTTP request: the injected headers are contained within the multipart body. The concrete security impact therefore depends on the downstream multipart parser and application behavior. MitigationUpgrade to HTTPX2 If upgrading is not immediately possible, applications should validate custom multipart header names as HTTP field-name tokens. They should reject NUL, CR, LF, other C0 controls except horizontal tab, and DEL in per-file content types and custom header values before passing them to HTTPX2. Affected versions
0.0.0
2.0.0
2.0.0b1
2.1.0
2.10.0
2.2.0
2.3.0
2.4.0
2.5.0
2.6.0
2.7.0
2.8.0
+ 2 more Show less
2.9.0
2.9.1
Fixed in
2.11.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-84378
PYSEC-2026-3847
GHSA-f2fp-rgf2-35cp
Sep 10, 2026
HTTPX2: Quadratic SSE line buffering can cause CPU denial of service
5.9
/ 10
Medium
Network
High
None
None
Unchanged
None
None
High
SummaryHTTPX2's Server-Sent Events (SSE) parser repeatedly copied and rescanned buffered text when a server split one unterminated line across many response chunks. The total work grows quadratically with the length of the line. An attacker-controlled or compromised SSE endpoint can exploit this behavior to consume excessive client CPU. DetailsBefore version 2.10.0, HTTPX2 combined the complete pending SSE line with each newly received chunk and then scanned the combined text for line separators. If an SSE server sends a long line as many small chunks without a line separator, every chunk causes all previously received text to be copied and scanned again. For The behavior affects both ImpactApplications that consume SSE from an attacker-controlled or compromised endpoint can experience excessive CPU usage. A crafted stream can block a synchronous worker or the asynchronous event loop that is consuming it, degrading availability for other work in that process. Confidentiality and integrity are not affected. MitigationUpgrade to HTTPX2 2.10.0 or later. SSE parsing now accumulates incomplete line fragments and combines them only when necessary, making processing linear in the amount of received data. HTTPX2 2.10.0 also limits buffered SSE events to 1 MiB by default through If upgrading is not immediately possible, only consume SSE from trusted endpoints and enforce an external size or time budget on the stream. Affected versions
2.5.0
2.6.0
2.7.0
2.8.0
2.9.0
2.9.1
Fixed in
2.10.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-84381
PYSEC-2026-3845
GHSA-7mj9-2mp8-4m2p
PYSEC-2026-3844
Sep 10, 2026
HTTPX2: Secure WebSocket traffic sent without TLS through SOCKS proxies
8.1
/ 10
High
Adjacent
Low
None
None
Unchanged
High
High
None
Summaryhttpcore2 does not start TLS for The transport flaw affects httpcore2 releases before DetailsThe synchronous and asynchronous SOCKS5 connection implementations upgrade the established proxy tunnel to TLS only when the remote origin scheme is For example, an application using HTTPX2
On affected versions, the stream passing through the SOCKS proxy begins with a plaintext request such as:
Before HTTPX2 A normal secure WebSocket server will usually reject these plaintext bytes because it expects a TLS ClientHello. However, a malicious or compromised SOCKS proxy can accept the SOCKS connection, observe the plaintext handshake, return a forged RFC 6455 requires a client using a secure WebSocket connection to perform the TLS handshake before sending the WebSocket opening handshake. A ImpactAn attacker able to control or observe the SOCKS proxy path can obtain URL query parameters, authorization headers, cookies, and application messages that the caller expected TLS to protect. Because no TLS handshake occurs, certificate verification also does not occur, allowing an attacker controlling the proxy to impersonate the WebSocket server and inject or alter messages. Only MitigationUpgrade HTTPX2 and httpcore2 to If upgrading is not immediately possible, do not route Affected versions
2.6.0
2.7.0
2.8.0
2.9.0
2.9.1
Fixed in
2.10.0
References
Updated Sep 10, 2026 · Source: OSV.dev | ||
2.6.0
minor
5 CVEs
CVE-2026-84382
PYSEC-2026-3846
GHSA-8xx6-hgc6-gc2m
Sep 10, 2026
HTTPX2: Streaming response decompression does not bound peak memory (decompression amplification)
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
SummaryWhen decoding a compressed response body ( DetailsHTTPX2's default transport reads the socket in pieces of up to 64 KiB. Before At DEFLATE's maximum compression ratio of roughly 1032:1, a 64 KiB compressed chunk can expand to about 64 MiB in one allocation. Brotli and Zstandard responses can cause similarly large amplification. Streaming the response did not prevent these transient allocations. ImpactApplications that fetch resources from untrusted or attacker-influenced servers - such as webhook receivers, link unfurlers, crawlers, SSRF-reachable fetchers, and redirect followers - can experience memory pressure or out-of-memory termination when processing a malicious compressed response. No authentication or user interaction is required beyond issuing a request to the server. MitigationUpgrade to HTTPX2 Affected versions
0.0.0
2.0.0
2.0.0b1
2.1.0
2.10.0
2.11.0
2.2.0
2.3.0
2.4.0
2.5.0
2.6.0
2.7.0
+ 3 more Show less
2.8.0
2.9.0
2.9.1
Fixed in
2.12.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-84380
PYSEC-2026-3849
GHSA-pf96-p4fj-6566
Sep 10, 2026
HTTPX2: Conflicting Content-Length and Transfer-Encoding headers can be auto-generated
5.6
/ 10
Medium
Network
High
None
None
Unchanged
Low
Low
Low
SummaryHTTPX2 can automatically add a DetailsWhen a request body has a known size, HTTPX2's content encoder returns a default For example:
The request contains both:
On an HTTP/1.1 connection, the body is serialized using chunked transfer coding while both headers are sent on the wire. This violates HTTP message-framing requirements. Fixed-size byte, JSON, form, and known-length multipart bodies can reach the affected path. Streaming bodies with an explicit ImpactAn attacker may be able to use the conflicting framing headers as a request-smuggling or desynchronization primitive. Exploitation requires an application to pass attacker-controlled request framing headers and associated body data to HTTPX2, use HTTP/1.1, and communicate through a proxy or origin that accepts conflicting headers and interprets them differently from another hop. Depending on the downstream infrastructure, successful exploitation could interfere with requests sharing a persistent connection, bypass front-end routing or authorization decisions, or poison responses or caches. Applications that do not forward attacker-controlled MitigationUpgrade to HTTPX2 If upgrading is not immediately possible, remove Affected versions
0.0.0
2.0.0
2.0.0b1
2.1.0
2.10.0
2.2.0
2.3.0
2.4.0
2.5.0
2.6.0
2.7.0
2.8.0
+ 2 more Show less
2.9.0
2.9.1
Fixed in
2.11.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-84379
PYSEC-2026-3848
GHSA-h4x7-gw46-3wm6
Sep 10, 2026
HTTPX2: Multipart part header injection via unvalidated file Content-Type and custom headers
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
Low
None
SummaryHTTPX2 serializes the per-file DetailsThe three-element file tuple accepts For example:
The generated body contains an attacker-injected part header:
The same issue affects names and values in the custom header mapping from the four-element tuple. Field names and filenames are serialized through a separate escaping path and do not permit CRLF header injection. ImpactApplications are affected when they pass attacker-controlled upload metadata into the per-file This does not split the outer HTTP request: the injected headers are contained within the multipart body. The concrete security impact therefore depends on the downstream multipart parser and application behavior. MitigationUpgrade to HTTPX2 If upgrading is not immediately possible, applications should validate custom multipart header names as HTTP field-name tokens. They should reject NUL, CR, LF, other C0 controls except horizontal tab, and DEL in per-file content types and custom header values before passing them to HTTPX2. Affected versions
0.0.0
2.0.0
2.0.0b1
2.1.0
2.10.0
2.2.0
2.3.0
2.4.0
2.5.0
2.6.0
2.7.0
2.8.0
+ 2 more Show less
2.9.0
2.9.1
Fixed in
2.11.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-84378
PYSEC-2026-3847
GHSA-f2fp-rgf2-35cp
Sep 10, 2026
HTTPX2: Quadratic SSE line buffering can cause CPU denial of service
5.9
/ 10
Medium
Network
High
None
None
Unchanged
None
None
High
SummaryHTTPX2's Server-Sent Events (SSE) parser repeatedly copied and rescanned buffered text when a server split one unterminated line across many response chunks. The total work grows quadratically with the length of the line. An attacker-controlled or compromised SSE endpoint can exploit this behavior to consume excessive client CPU. DetailsBefore version 2.10.0, HTTPX2 combined the complete pending SSE line with each newly received chunk and then scanned the combined text for line separators. If an SSE server sends a long line as many small chunks without a line separator, every chunk causes all previously received text to be copied and scanned again. For The behavior affects both ImpactApplications that consume SSE from an attacker-controlled or compromised endpoint can experience excessive CPU usage. A crafted stream can block a synchronous worker or the asynchronous event loop that is consuming it, degrading availability for other work in that process. Confidentiality and integrity are not affected. MitigationUpgrade to HTTPX2 2.10.0 or later. SSE parsing now accumulates incomplete line fragments and combines them only when necessary, making processing linear in the amount of received data. HTTPX2 2.10.0 also limits buffered SSE events to 1 MiB by default through If upgrading is not immediately possible, only consume SSE from trusted endpoints and enforce an external size or time budget on the stream. Affected versions
2.5.0
2.6.0
2.7.0
2.8.0
2.9.0
2.9.1
Fixed in
2.10.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-84381
PYSEC-2026-3845
GHSA-7mj9-2mp8-4m2p
PYSEC-2026-3844
Sep 10, 2026
HTTPX2: Secure WebSocket traffic sent without TLS through SOCKS proxies
8.1
/ 10
High
Adjacent
Low
None
None
Unchanged
High
High
None
Summaryhttpcore2 does not start TLS for The transport flaw affects httpcore2 releases before DetailsThe synchronous and asynchronous SOCKS5 connection implementations upgrade the established proxy tunnel to TLS only when the remote origin scheme is For example, an application using HTTPX2
On affected versions, the stream passing through the SOCKS proxy begins with a plaintext request such as:
Before HTTPX2 A normal secure WebSocket server will usually reject these plaintext bytes because it expects a TLS ClientHello. However, a malicious or compromised SOCKS proxy can accept the SOCKS connection, observe the plaintext handshake, return a forged RFC 6455 requires a client using a secure WebSocket connection to perform the TLS handshake before sending the WebSocket opening handshake. A ImpactAn attacker able to control or observe the SOCKS proxy path can obtain URL query parameters, authorization headers, cookies, and application messages that the caller expected TLS to protect. Because no TLS handshake occurs, certificate verification also does not occur, allowing an attacker controlling the proxy to impersonate the WebSocket server and inject or alter messages. Only MitigationUpgrade HTTPX2 and httpcore2 to If upgrading is not immediately possible, do not route Affected versions
2.6.0
2.7.0
2.8.0
2.9.0
2.9.1
Fixed in
2.10.0
References
Updated Sep 10, 2026 · Source: OSV.dev | ||
2.5.0
minor
4 CVEs
CVE-2026-84382
PYSEC-2026-3846
GHSA-8xx6-hgc6-gc2m
Sep 10, 2026
HTTPX2: Streaming response decompression does not bound peak memory (decompression amplification)
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
SummaryWhen decoding a compressed response body ( DetailsHTTPX2's default transport reads the socket in pieces of up to 64 KiB. Before At DEFLATE's maximum compression ratio of roughly 1032:1, a 64 KiB compressed chunk can expand to about 64 MiB in one allocation. Brotli and Zstandard responses can cause similarly large amplification. Streaming the response did not prevent these transient allocations. ImpactApplications that fetch resources from untrusted or attacker-influenced servers - such as webhook receivers, link unfurlers, crawlers, SSRF-reachable fetchers, and redirect followers - can experience memory pressure or out-of-memory termination when processing a malicious compressed response. No authentication or user interaction is required beyond issuing a request to the server. MitigationUpgrade to HTTPX2 Affected versions
0.0.0
2.0.0
2.0.0b1
2.1.0
2.10.0
2.11.0
2.2.0
2.3.0
2.4.0
2.5.0
2.6.0
2.7.0
+ 3 more Show less
2.8.0
2.9.0
2.9.1
Fixed in
2.12.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-84380
PYSEC-2026-3849
GHSA-pf96-p4fj-6566
Sep 10, 2026
HTTPX2: Conflicting Content-Length and Transfer-Encoding headers can be auto-generated
5.6
/ 10
Medium
Network
High
None
None
Unchanged
Low
Low
Low
SummaryHTTPX2 can automatically add a DetailsWhen a request body has a known size, HTTPX2's content encoder returns a default For example:
The request contains both:
On an HTTP/1.1 connection, the body is serialized using chunked transfer coding while both headers are sent on the wire. This violates HTTP message-framing requirements. Fixed-size byte, JSON, form, and known-length multipart bodies can reach the affected path. Streaming bodies with an explicit ImpactAn attacker may be able to use the conflicting framing headers as a request-smuggling or desynchronization primitive. Exploitation requires an application to pass attacker-controlled request framing headers and associated body data to HTTPX2, use HTTP/1.1, and communicate through a proxy or origin that accepts conflicting headers and interprets them differently from another hop. Depending on the downstream infrastructure, successful exploitation could interfere with requests sharing a persistent connection, bypass front-end routing or authorization decisions, or poison responses or caches. Applications that do not forward attacker-controlled MitigationUpgrade to HTTPX2 If upgrading is not immediately possible, remove Affected versions
0.0.0
2.0.0
2.0.0b1
2.1.0
2.10.0
2.2.0
2.3.0
2.4.0
2.5.0
2.6.0
2.7.0
2.8.0
+ 2 more Show less
2.9.0
2.9.1
Fixed in
2.11.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-84379
PYSEC-2026-3848
GHSA-h4x7-gw46-3wm6
Sep 10, 2026
HTTPX2: Multipart part header injection via unvalidated file Content-Type and custom headers
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
Low
None
SummaryHTTPX2 serializes the per-file DetailsThe three-element file tuple accepts For example:
The generated body contains an attacker-injected part header:
The same issue affects names and values in the custom header mapping from the four-element tuple. Field names and filenames are serialized through a separate escaping path and do not permit CRLF header injection. ImpactApplications are affected when they pass attacker-controlled upload metadata into the per-file This does not split the outer HTTP request: the injected headers are contained within the multipart body. The concrete security impact therefore depends on the downstream multipart parser and application behavior. MitigationUpgrade to HTTPX2 If upgrading is not immediately possible, applications should validate custom multipart header names as HTTP field-name tokens. They should reject NUL, CR, LF, other C0 controls except horizontal tab, and DEL in per-file content types and custom header values before passing them to HTTPX2. Affected versions
0.0.0
2.0.0
2.0.0b1
2.1.0
2.10.0
2.2.0
2.3.0
2.4.0
2.5.0
2.6.0
2.7.0
2.8.0
+ 2 more Show less
2.9.0
2.9.1
Fixed in
2.11.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-84378
PYSEC-2026-3847
GHSA-f2fp-rgf2-35cp
Sep 10, 2026
HTTPX2: Quadratic SSE line buffering can cause CPU denial of service
5.9
/ 10
Medium
Network
High
None
None
Unchanged
None
None
High
SummaryHTTPX2's Server-Sent Events (SSE) parser repeatedly copied and rescanned buffered text when a server split one unterminated line across many response chunks. The total work grows quadratically with the length of the line. An attacker-controlled or compromised SSE endpoint can exploit this behavior to consume excessive client CPU. DetailsBefore version 2.10.0, HTTPX2 combined the complete pending SSE line with each newly received chunk and then scanned the combined text for line separators. If an SSE server sends a long line as many small chunks without a line separator, every chunk causes all previously received text to be copied and scanned again. For The behavior affects both ImpactApplications that consume SSE from an attacker-controlled or compromised endpoint can experience excessive CPU usage. A crafted stream can block a synchronous worker or the asynchronous event loop that is consuming it, degrading availability for other work in that process. Confidentiality and integrity are not affected. MitigationUpgrade to HTTPX2 2.10.0 or later. SSE parsing now accumulates incomplete line fragments and combines them only when necessary, making processing linear in the amount of received data. HTTPX2 2.10.0 also limits buffered SSE events to 1 MiB by default through If upgrading is not immediately possible, only consume SSE from trusted endpoints and enforce an external size or time budget on the stream. Affected versions
2.5.0
2.6.0
2.7.0
2.8.0
2.9.0
2.9.1
Fixed in
2.10.0
References
Updated Sep 10, 2026 · Source: OSV.dev | ||
2.4.0
minor
3 CVEs
CVE-2026-84382
PYSEC-2026-3846
GHSA-8xx6-hgc6-gc2m
Sep 10, 2026
HTTPX2: Streaming response decompression does not bound peak memory (decompression amplification)
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
SummaryWhen decoding a compressed response body ( DetailsHTTPX2's default transport reads the socket in pieces of up to 64 KiB. Before At DEFLATE's maximum compression ratio of roughly 1032:1, a 64 KiB compressed chunk can expand to about 64 MiB in one allocation. Brotli and Zstandard responses can cause similarly large amplification. Streaming the response did not prevent these transient allocations. ImpactApplications that fetch resources from untrusted or attacker-influenced servers - such as webhook receivers, link unfurlers, crawlers, SSRF-reachable fetchers, and redirect followers - can experience memory pressure or out-of-memory termination when processing a malicious compressed response. No authentication or user interaction is required beyond issuing a request to the server. MitigationUpgrade to HTTPX2 Affected versions
0.0.0
2.0.0
2.0.0b1
2.1.0
2.10.0
2.11.0
2.2.0
2.3.0
2.4.0
2.5.0
2.6.0
2.7.0
+ 3 more Show less
2.8.0
2.9.0
2.9.1
Fixed in
2.12.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-84380
PYSEC-2026-3849
GHSA-pf96-p4fj-6566
Sep 10, 2026
HTTPX2: Conflicting Content-Length and Transfer-Encoding headers can be auto-generated
5.6
/ 10
Medium
Network
High
None
None
Unchanged
Low
Low
Low
SummaryHTTPX2 can automatically add a DetailsWhen a request body has a known size, HTTPX2's content encoder returns a default For example:
The request contains both:
On an HTTP/1.1 connection, the body is serialized using chunked transfer coding while both headers are sent on the wire. This violates HTTP message-framing requirements. Fixed-size byte, JSON, form, and known-length multipart bodies can reach the affected path. Streaming bodies with an explicit ImpactAn attacker may be able to use the conflicting framing headers as a request-smuggling or desynchronization primitive. Exploitation requires an application to pass attacker-controlled request framing headers and associated body data to HTTPX2, use HTTP/1.1, and communicate through a proxy or origin that accepts conflicting headers and interprets them differently from another hop. Depending on the downstream infrastructure, successful exploitation could interfere with requests sharing a persistent connection, bypass front-end routing or authorization decisions, or poison responses or caches. Applications that do not forward attacker-controlled MitigationUpgrade to HTTPX2 If upgrading is not immediately possible, remove Affected versions
0.0.0
2.0.0
2.0.0b1
2.1.0
2.10.0
2.2.0
2.3.0
2.4.0
2.5.0
2.6.0
2.7.0
2.8.0
+ 2 more Show less
2.9.0
2.9.1
Fixed in
2.11.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-84379
PYSEC-2026-3848
GHSA-h4x7-gw46-3wm6
Sep 10, 2026
HTTPX2: Multipart part header injection via unvalidated file Content-Type and custom headers
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
Low
None
SummaryHTTPX2 serializes the per-file DetailsThe three-element file tuple accepts For example:
The generated body contains an attacker-injected part header:
The same issue affects names and values in the custom header mapping from the four-element tuple. Field names and filenames are serialized through a separate escaping path and do not permit CRLF header injection. ImpactApplications are affected when they pass attacker-controlled upload metadata into the per-file This does not split the outer HTTP request: the injected headers are contained within the multipart body. The concrete security impact therefore depends on the downstream multipart parser and application behavior. MitigationUpgrade to HTTPX2 If upgrading is not immediately possible, applications should validate custom multipart header names as HTTP field-name tokens. They should reject NUL, CR, LF, other C0 controls except horizontal tab, and DEL in per-file content types and custom header values before passing them to HTTPX2. Affected versions
0.0.0
2.0.0
2.0.0b1
2.1.0
2.10.0
2.2.0
2.3.0
2.4.0
2.5.0
2.6.0
2.7.0
2.8.0
+ 2 more Show less
2.9.0
2.9.1
Fixed in
2.11.0
References
Updated Sep 10, 2026 · Source: OSV.dev | ||
2.3.0
minor
3 CVEs
CVE-2026-84382
PYSEC-2026-3846
GHSA-8xx6-hgc6-gc2m
Sep 10, 2026
HTTPX2: Streaming response decompression does not bound peak memory (decompression amplification)
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
SummaryWhen decoding a compressed response body ( DetailsHTTPX2's default transport reads the socket in pieces of up to 64 KiB. Before At DEFLATE's maximum compression ratio of roughly 1032:1, a 64 KiB compressed chunk can expand to about 64 MiB in one allocation. Brotli and Zstandard responses can cause similarly large amplification. Streaming the response did not prevent these transient allocations. ImpactApplications that fetch resources from untrusted or attacker-influenced servers - such as webhook receivers, link unfurlers, crawlers, SSRF-reachable fetchers, and redirect followers - can experience memory pressure or out-of-memory termination when processing a malicious compressed response. No authentication or user interaction is required beyond issuing a request to the server. MitigationUpgrade to HTTPX2 Affected versions
0.0.0
2.0.0
2.0.0b1
2.1.0
2.10.0
2.11.0
2.2.0
2.3.0
2.4.0
2.5.0
2.6.0
2.7.0
+ 3 more Show less
2.8.0
2.9.0
2.9.1
Fixed in
2.12.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-84380
PYSEC-2026-3849
GHSA-pf96-p4fj-6566
Sep 10, 2026
HTTPX2: Conflicting Content-Length and Transfer-Encoding headers can be auto-generated
5.6
/ 10
Medium
Network
High
None
None
Unchanged
Low
Low
Low
SummaryHTTPX2 can automatically add a DetailsWhen a request body has a known size, HTTPX2's content encoder returns a default For example:
The request contains both:
On an HTTP/1.1 connection, the body is serialized using chunked transfer coding while both headers are sent on the wire. This violates HTTP message-framing requirements. Fixed-size byte, JSON, form, and known-length multipart bodies can reach the affected path. Streaming bodies with an explicit ImpactAn attacker may be able to use the conflicting framing headers as a request-smuggling or desynchronization primitive. Exploitation requires an application to pass attacker-controlled request framing headers and associated body data to HTTPX2, use HTTP/1.1, and communicate through a proxy or origin that accepts conflicting headers and interprets them differently from another hop. Depending on the downstream infrastructure, successful exploitation could interfere with requests sharing a persistent connection, bypass front-end routing or authorization decisions, or poison responses or caches. Applications that do not forward attacker-controlled MitigationUpgrade to HTTPX2 If upgrading is not immediately possible, remove Affected versions
0.0.0
2.0.0
2.0.0b1
2.1.0
2.10.0
2.2.0
2.3.0
2.4.0
2.5.0
2.6.0
2.7.0
2.8.0
+ 2 more Show less
2.9.0
2.9.1
Fixed in
2.11.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-84379
PYSEC-2026-3848
GHSA-h4x7-gw46-3wm6
Sep 10, 2026
HTTPX2: Multipart part header injection via unvalidated file Content-Type and custom headers
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
Low
None
SummaryHTTPX2 serializes the per-file DetailsThe three-element file tuple accepts For example:
The generated body contains an attacker-injected part header:
The same issue affects names and values in the custom header mapping from the four-element tuple. Field names and filenames are serialized through a separate escaping path and do not permit CRLF header injection. ImpactApplications are affected when they pass attacker-controlled upload metadata into the per-file This does not split the outer HTTP request: the injected headers are contained within the multipart body. The concrete security impact therefore depends on the downstream multipart parser and application behavior. MitigationUpgrade to HTTPX2 If upgrading is not immediately possible, applications should validate custom multipart header names as HTTP field-name tokens. They should reject NUL, CR, LF, other C0 controls except horizontal tab, and DEL in per-file content types and custom header values before passing them to HTTPX2. Affected versions
0.0.0
2.0.0
2.0.0b1
2.1.0
2.10.0
2.2.0
2.3.0
2.4.0
2.5.0
2.6.0
2.7.0
2.8.0
+ 2 more Show less
2.9.0
2.9.1
Fixed in
2.11.0
References
Updated Sep 10, 2026 · Source: OSV.dev | ||
2.2.0
minor
3 CVEs
CVE-2026-84382
PYSEC-2026-3846
GHSA-8xx6-hgc6-gc2m
Sep 10, 2026
HTTPX2: Streaming response decompression does not bound peak memory (decompression amplification)
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
SummaryWhen decoding a compressed response body ( DetailsHTTPX2's default transport reads the socket in pieces of up to 64 KiB. Before At DEFLATE's maximum compression ratio of roughly 1032:1, a 64 KiB compressed chunk can expand to about 64 MiB in one allocation. Brotli and Zstandard responses can cause similarly large amplification. Streaming the response did not prevent these transient allocations. ImpactApplications that fetch resources from untrusted or attacker-influenced servers - such as webhook receivers, link unfurlers, crawlers, SSRF-reachable fetchers, and redirect followers - can experience memory pressure or out-of-memory termination when processing a malicious compressed response. No authentication or user interaction is required beyond issuing a request to the server. MitigationUpgrade to HTTPX2 Affected versions
0.0.0
2.0.0
2.0.0b1
2.1.0
2.10.0
2.11.0
2.2.0
2.3.0
2.4.0
2.5.0
2.6.0
2.7.0
+ 3 more Show less
2.8.0
2.9.0
2.9.1
Fixed in
2.12.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-84380
PYSEC-2026-3849
GHSA-pf96-p4fj-6566
Sep 10, 2026
HTTPX2: Conflicting Content-Length and Transfer-Encoding headers can be auto-generated
5.6
/ 10
Medium
Network
High
None
None
Unchanged
Low
Low
Low
SummaryHTTPX2 can automatically add a DetailsWhen a request body has a known size, HTTPX2's content encoder returns a default For example:
The request contains both:
On an HTTP/1.1 connection, the body is serialized using chunked transfer coding while both headers are sent on the wire. This violates HTTP message-framing requirements. Fixed-size byte, JSON, form, and known-length multipart bodies can reach the affected path. Streaming bodies with an explicit ImpactAn attacker may be able to use the conflicting framing headers as a request-smuggling or desynchronization primitive. Exploitation requires an application to pass attacker-controlled request framing headers and associated body data to HTTPX2, use HTTP/1.1, and communicate through a proxy or origin that accepts conflicting headers and interprets them differently from another hop. Depending on the downstream infrastructure, successful exploitation could interfere with requests sharing a persistent connection, bypass front-end routing or authorization decisions, or poison responses or caches. Applications that do not forward attacker-controlled MitigationUpgrade to HTTPX2 If upgrading is not immediately possible, remove Affected versions
0.0.0
2.0.0
2.0.0b1
2.1.0
2.10.0
2.2.0
2.3.0
2.4.0
2.5.0
2.6.0
2.7.0
2.8.0
+ 2 more Show less
2.9.0
2.9.1
Fixed in
2.11.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-84379
PYSEC-2026-3848
GHSA-h4x7-gw46-3wm6
Sep 10, 2026
HTTPX2: Multipart part header injection via unvalidated file Content-Type and custom headers
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
Low
None
SummaryHTTPX2 serializes the per-file DetailsThe three-element file tuple accepts For example:
The generated body contains an attacker-injected part header:
The same issue affects names and values in the custom header mapping from the four-element tuple. Field names and filenames are serialized through a separate escaping path and do not permit CRLF header injection. ImpactApplications are affected when they pass attacker-controlled upload metadata into the per-file This does not split the outer HTTP request: the injected headers are contained within the multipart body. The concrete security impact therefore depends on the downstream multipart parser and application behavior. MitigationUpgrade to HTTPX2 If upgrading is not immediately possible, applications should validate custom multipart header names as HTTP field-name tokens. They should reject NUL, CR, LF, other C0 controls except horizontal tab, and DEL in per-file content types and custom header values before passing them to HTTPX2. Affected versions
0.0.0
2.0.0
2.0.0b1
2.1.0
2.10.0
2.2.0
2.3.0
2.4.0
2.5.0
2.6.0
2.7.0
2.8.0
+ 2 more Show less
2.9.0
2.9.1
Fixed in
2.11.0
References
Updated Sep 10, 2026 · Source: OSV.dev | ||
2.1.0
minor
3 CVEs
CVE-2026-84382
PYSEC-2026-3846
GHSA-8xx6-hgc6-gc2m
Sep 10, 2026
HTTPX2: Streaming response decompression does not bound peak memory (decompression amplification)
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
SummaryWhen decoding a compressed response body ( DetailsHTTPX2's default transport reads the socket in pieces of up to 64 KiB. Before At DEFLATE's maximum compression ratio of roughly 1032:1, a 64 KiB compressed chunk can expand to about 64 MiB in one allocation. Brotli and Zstandard responses can cause similarly large amplification. Streaming the response did not prevent these transient allocations. ImpactApplications that fetch resources from untrusted or attacker-influenced servers - such as webhook receivers, link unfurlers, crawlers, SSRF-reachable fetchers, and redirect followers - can experience memory pressure or out-of-memory termination when processing a malicious compressed response. No authentication or user interaction is required beyond issuing a request to the server. MitigationUpgrade to HTTPX2 Affected versions
0.0.0
2.0.0
2.0.0b1
2.1.0
2.10.0
2.11.0
2.2.0
2.3.0
2.4.0
2.5.0
2.6.0
2.7.0
+ 3 more Show less
2.8.0
2.9.0
2.9.1
Fixed in
2.12.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-84380
PYSEC-2026-3849
GHSA-pf96-p4fj-6566
Sep 10, 2026
HTTPX2: Conflicting Content-Length and Transfer-Encoding headers can be auto-generated
5.6
/ 10
Medium
Network
High
None
None
Unchanged
Low
Low
Low
SummaryHTTPX2 can automatically add a DetailsWhen a request body has a known size, HTTPX2's content encoder returns a default For example:
The request contains both:
On an HTTP/1.1 connection, the body is serialized using chunked transfer coding while both headers are sent on the wire. This violates HTTP message-framing requirements. Fixed-size byte, JSON, form, and known-length multipart bodies can reach the affected path. Streaming bodies with an explicit ImpactAn attacker may be able to use the conflicting framing headers as a request-smuggling or desynchronization primitive. Exploitation requires an application to pass attacker-controlled request framing headers and associated body data to HTTPX2, use HTTP/1.1, and communicate through a proxy or origin that accepts conflicting headers and interprets them differently from another hop. Depending on the downstream infrastructure, successful exploitation could interfere with requests sharing a persistent connection, bypass front-end routing or authorization decisions, or poison responses or caches. Applications that do not forward attacker-controlled MitigationUpgrade to HTTPX2 If upgrading is not immediately possible, remove Affected versions
0.0.0
2.0.0
2.0.0b1
2.1.0
2.10.0
2.2.0
2.3.0
2.4.0
2.5.0
2.6.0
2.7.0
2.8.0
+ 2 more Show less
2.9.0
2.9.1
Fixed in
2.11.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-84379
PYSEC-2026-3848
GHSA-h4x7-gw46-3wm6
Sep 10, 2026
HTTPX2: Multipart part header injection via unvalidated file Content-Type and custom headers
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
Low
None
SummaryHTTPX2 serializes the per-file DetailsThe three-element file tuple accepts For example:
The generated body contains an attacker-injected part header:
The same issue affects names and values in the custom header mapping from the four-element tuple. Field names and filenames are serialized through a separate escaping path and do not permit CRLF header injection. ImpactApplications are affected when they pass attacker-controlled upload metadata into the per-file This does not split the outer HTTP request: the injected headers are contained within the multipart body. The concrete security impact therefore depends on the downstream multipart parser and application behavior. MitigationUpgrade to HTTPX2 If upgrading is not immediately possible, applications should validate custom multipart header names as HTTP field-name tokens. They should reject NUL, CR, LF, other C0 controls except horizontal tab, and DEL in per-file content types and custom header values before passing them to HTTPX2. Affected versions
0.0.0
2.0.0
2.0.0b1
2.1.0
2.10.0
2.2.0
2.3.0
2.4.0
2.5.0
2.6.0
2.7.0
2.8.0
+ 2 more Show less
2.9.0
2.9.1
Fixed in
2.11.0
References
Updated Sep 10, 2026 · Source: OSV.dev | ||
2.0.0
major
3 CVEs
CVE-2026-84382
PYSEC-2026-3846
GHSA-8xx6-hgc6-gc2m
Sep 10, 2026
HTTPX2: Streaming response decompression does not bound peak memory (decompression amplification)
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
SummaryWhen decoding a compressed response body ( DetailsHTTPX2's default transport reads the socket in pieces of up to 64 KiB. Before At DEFLATE's maximum compression ratio of roughly 1032:1, a 64 KiB compressed chunk can expand to about 64 MiB in one allocation. Brotli and Zstandard responses can cause similarly large amplification. Streaming the response did not prevent these transient allocations. ImpactApplications that fetch resources from untrusted or attacker-influenced servers - such as webhook receivers, link unfurlers, crawlers, SSRF-reachable fetchers, and redirect followers - can experience memory pressure or out-of-memory termination when processing a malicious compressed response. No authentication or user interaction is required beyond issuing a request to the server. MitigationUpgrade to HTTPX2 Affected versions
0.0.0
2.0.0
2.0.0b1
2.1.0
2.10.0
2.11.0
2.2.0
2.3.0
2.4.0
2.5.0
2.6.0
2.7.0
+ 3 more Show less
2.8.0
2.9.0
2.9.1
Fixed in
2.12.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-84380
PYSEC-2026-3849
GHSA-pf96-p4fj-6566
Sep 10, 2026
HTTPX2: Conflicting Content-Length and Transfer-Encoding headers can be auto-generated
5.6
/ 10
Medium
Network
High
None
None
Unchanged
Low
Low
Low
SummaryHTTPX2 can automatically add a DetailsWhen a request body has a known size, HTTPX2's content encoder returns a default For example:
The request contains both:
On an HTTP/1.1 connection, the body is serialized using chunked transfer coding while both headers are sent on the wire. This violates HTTP message-framing requirements. Fixed-size byte, JSON, form, and known-length multipart bodies can reach the affected path. Streaming bodies with an explicit ImpactAn attacker may be able to use the conflicting framing headers as a request-smuggling or desynchronization primitive. Exploitation requires an application to pass attacker-controlled request framing headers and associated body data to HTTPX2, use HTTP/1.1, and communicate through a proxy or origin that accepts conflicting headers and interprets them differently from another hop. Depending on the downstream infrastructure, successful exploitation could interfere with requests sharing a persistent connection, bypass front-end routing or authorization decisions, or poison responses or caches. Applications that do not forward attacker-controlled MitigationUpgrade to HTTPX2 If upgrading is not immediately possible, remove Affected versions
0.0.0
2.0.0
2.0.0b1
2.1.0
2.10.0
2.2.0
2.3.0
2.4.0
2.5.0
2.6.0
2.7.0
2.8.0
+ 2 more Show less
2.9.0
2.9.1
Fixed in
2.11.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-84379
PYSEC-2026-3848
GHSA-h4x7-gw46-3wm6
Sep 10, 2026
HTTPX2: Multipart part header injection via unvalidated file Content-Type and custom headers
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
Low
None
SummaryHTTPX2 serializes the per-file DetailsThe three-element file tuple accepts For example:
The generated body contains an attacker-injected part header:
The same issue affects names and values in the custom header mapping from the four-element tuple. Field names and filenames are serialized through a separate escaping path and do not permit CRLF header injection. ImpactApplications are affected when they pass attacker-controlled upload metadata into the per-file This does not split the outer HTTP request: the injected headers are contained within the multipart body. The concrete security impact therefore depends on the downstream multipart parser and application behavior. MitigationUpgrade to HTTPX2 If upgrading is not immediately possible, applications should validate custom multipart header names as HTTP field-name tokens. They should reject NUL, CR, LF, other C0 controls except horizontal tab, and DEL in per-file content types and custom header values before passing them to HTTPX2. Affected versions
0.0.0
2.0.0
2.0.0b1
2.1.0
2.10.0
2.2.0
2.3.0
2.4.0
2.5.0
2.6.0
2.7.0
2.8.0
+ 2 more Show less
2.9.0
2.9.1
Fixed in
2.11.0
References
Updated Sep 10, 2026 · Source: OSV.dev | ||
2.0.0b1
pre
3 CVEs
CVE-2026-84382
PYSEC-2026-3846
GHSA-8xx6-hgc6-gc2m
Sep 10, 2026
HTTPX2: Streaming response decompression does not bound peak memory (decompression amplification)
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
SummaryWhen decoding a compressed response body ( DetailsHTTPX2's default transport reads the socket in pieces of up to 64 KiB. Before At DEFLATE's maximum compression ratio of roughly 1032:1, a 64 KiB compressed chunk can expand to about 64 MiB in one allocation. Brotli and Zstandard responses can cause similarly large amplification. Streaming the response did not prevent these transient allocations. ImpactApplications that fetch resources from untrusted or attacker-influenced servers - such as webhook receivers, link unfurlers, crawlers, SSRF-reachable fetchers, and redirect followers - can experience memory pressure or out-of-memory termination when processing a malicious compressed response. No authentication or user interaction is required beyond issuing a request to the server. MitigationUpgrade to HTTPX2 Affected versions
0.0.0
2.0.0
2.0.0b1
2.1.0
2.10.0
2.11.0
2.2.0
2.3.0
2.4.0
2.5.0
2.6.0
2.7.0
+ 3 more Show less
2.8.0
2.9.0
2.9.1
Fixed in
2.12.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-84380
PYSEC-2026-3849
GHSA-pf96-p4fj-6566
Sep 10, 2026
HTTPX2: Conflicting Content-Length and Transfer-Encoding headers can be auto-generated
5.6
/ 10
Medium
Network
High
None
None
Unchanged
Low
Low
Low
SummaryHTTPX2 can automatically add a DetailsWhen a request body has a known size, HTTPX2's content encoder returns a default For example:
The request contains both:
On an HTTP/1.1 connection, the body is serialized using chunked transfer coding while both headers are sent on the wire. This violates HTTP message-framing requirements. Fixed-size byte, JSON, form, and known-length multipart bodies can reach the affected path. Streaming bodies with an explicit ImpactAn attacker may be able to use the conflicting framing headers as a request-smuggling or desynchronization primitive. Exploitation requires an application to pass attacker-controlled request framing headers and associated body data to HTTPX2, use HTTP/1.1, and communicate through a proxy or origin that accepts conflicting headers and interprets them differently from another hop. Depending on the downstream infrastructure, successful exploitation could interfere with requests sharing a persistent connection, bypass front-end routing or authorization decisions, or poison responses or caches. Applications that do not forward attacker-controlled MitigationUpgrade to HTTPX2 If upgrading is not immediately possible, remove Affected versions
0.0.0
2.0.0
2.0.0b1
2.1.0
2.10.0
2.2.0
2.3.0
2.4.0
2.5.0
2.6.0
2.7.0
2.8.0
+ 2 more Show less
2.9.0
2.9.1
Fixed in
2.11.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-84379
PYSEC-2026-3848
GHSA-h4x7-gw46-3wm6
Sep 10, 2026
HTTPX2: Multipart part header injection via unvalidated file Content-Type and custom headers
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
Low
None
SummaryHTTPX2 serializes the per-file DetailsThe three-element file tuple accepts For example:
The generated body contains an attacker-injected part header:
The same issue affects names and values in the custom header mapping from the four-element tuple. Field names and filenames are serialized through a separate escaping path and do not permit CRLF header injection. ImpactApplications are affected when they pass attacker-controlled upload metadata into the per-file This does not split the outer HTTP request: the injected headers are contained within the multipart body. The concrete security impact therefore depends on the downstream multipart parser and application behavior. MitigationUpgrade to HTTPX2 If upgrading is not immediately possible, applications should validate custom multipart header names as HTTP field-name tokens. They should reject NUL, CR, LF, other C0 controls except horizontal tab, and DEL in per-file content types and custom header values before passing them to HTTPX2. Affected versions
0.0.0
2.0.0
2.0.0b1
2.1.0
2.10.0
2.2.0
2.3.0
2.4.0
2.5.0
2.6.0
2.7.0
2.8.0
+ 2 more Show less
2.9.0
2.9.1
Fixed in
2.11.0
References
Updated Sep 10, 2026 · Source: OSV.dev | ||
0.0.0
initial
3 CVEs
CVE-2026-84382
PYSEC-2026-3846
GHSA-8xx6-hgc6-gc2m
Sep 10, 2026
HTTPX2: Streaming response decompression does not bound peak memory (decompression amplification)
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
SummaryWhen decoding a compressed response body ( DetailsHTTPX2's default transport reads the socket in pieces of up to 64 KiB. Before At DEFLATE's maximum compression ratio of roughly 1032:1, a 64 KiB compressed chunk can expand to about 64 MiB in one allocation. Brotli and Zstandard responses can cause similarly large amplification. Streaming the response did not prevent these transient allocations. ImpactApplications that fetch resources from untrusted or attacker-influenced servers - such as webhook receivers, link unfurlers, crawlers, SSRF-reachable fetchers, and redirect followers - can experience memory pressure or out-of-memory termination when processing a malicious compressed response. No authentication or user interaction is required beyond issuing a request to the server. MitigationUpgrade to HTTPX2 Affected versions
0.0.0
2.0.0
2.0.0b1
2.1.0
2.10.0
2.11.0
2.2.0
2.3.0
2.4.0
2.5.0
2.6.0
2.7.0
+ 3 more Show less
2.8.0
2.9.0
2.9.1
Fixed in
2.12.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-84380
PYSEC-2026-3849
GHSA-pf96-p4fj-6566
Sep 10, 2026
HTTPX2: Conflicting Content-Length and Transfer-Encoding headers can be auto-generated
5.6
/ 10
Medium
Network
High
None
None
Unchanged
Low
Low
Low
SummaryHTTPX2 can automatically add a DetailsWhen a request body has a known size, HTTPX2's content encoder returns a default For example:
The request contains both:
On an HTTP/1.1 connection, the body is serialized using chunked transfer coding while both headers are sent on the wire. This violates HTTP message-framing requirements. Fixed-size byte, JSON, form, and known-length multipart bodies can reach the affected path. Streaming bodies with an explicit ImpactAn attacker may be able to use the conflicting framing headers as a request-smuggling or desynchronization primitive. Exploitation requires an application to pass attacker-controlled request framing headers and associated body data to HTTPX2, use HTTP/1.1, and communicate through a proxy or origin that accepts conflicting headers and interprets them differently from another hop. Depending on the downstream infrastructure, successful exploitation could interfere with requests sharing a persistent connection, bypass front-end routing or authorization decisions, or poison responses or caches. Applications that do not forward attacker-controlled MitigationUpgrade to HTTPX2 If upgrading is not immediately possible, remove Affected versions
0.0.0
2.0.0
2.0.0b1
2.1.0
2.10.0
2.2.0
2.3.0
2.4.0
2.5.0
2.6.0
2.7.0
2.8.0
+ 2 more Show less
2.9.0
2.9.1
Fixed in
2.11.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-84379
PYSEC-2026-3848
GHSA-h4x7-gw46-3wm6
Sep 10, 2026
HTTPX2: Multipart part header injection via unvalidated file Content-Type and custom headers
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
Low
None
SummaryHTTPX2 serializes the per-file DetailsThe three-element file tuple accepts For example:
The generated body contains an attacker-injected part header:
The same issue affects names and values in the custom header mapping from the four-element tuple. Field names and filenames are serialized through a separate escaping path and do not permit CRLF header injection. ImpactApplications are affected when they pass attacker-controlled upload metadata into the per-file This does not split the outer HTTP request: the injected headers are contained within the multipart body. The concrete security impact therefore depends on the downstream multipart parser and application behavior. MitigationUpgrade to HTTPX2 If upgrading is not immediately possible, applications should validate custom multipart header names as HTTP field-name tokens. They should reject NUL, CR, LF, other C0 controls except horizontal tab, and DEL in per-file content types and custom header values before passing them to HTTPX2. Affected versions
0.0.0
2.0.0
2.0.0b1
2.1.0
2.10.0
2.2.0
2.3.0
2.4.0
2.5.0
2.6.0
2.7.0
2.8.0
+ 2 more Show less
2.9.0
2.9.1
Fixed in
2.11.0
References
Updated Sep 10, 2026 · Source: OSV.dev |