Skip to main content

nghttpx CVE-2026-58055

| EUVDEUVD-2026-39975 MEDIUM
HTTP Request/Response Smuggling (CWE-444)
2026-06-28 VulnCheck GHSA-xrr7-82jr-v58x
6.3
CVSS 4.0 · Vendor: VulnCheck
Share

Severity by source

Vendor (VulnCheck) PRIMARY
6.3 MEDIUM
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:L/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
vuln.today AI
5.4 MEDIUM

Network-accessible, no auth required, but AC:H because backend must misparse the ambiguous message; scope changes as cross-client response poisoning affects other users.

3.1 AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:L/A:N
4.0 AV:N/AC:H/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N
SUSE
5.4 MEDIUM
AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:L/A:N
Red Hat
5.4 MEDIUM
qualitative

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
X

Lifecycle Timeline

3
Source Code Evidence Fetched
Jun 28, 2026 - 02:33 vuln.today
Analysis Generated
Jun 28, 2026 - 02:33 vuln.today
CVSS changed
Jun 28, 2026 - 02:22 NVD
5.4 (MEDIUM) 6.3 (MEDIUM)

DescriptionCVE.org

nghttp2's nghttpx proxy through 1.69.0 forwards an HTTP/1.1 Upgrade request that also carries a Content-Length header and body onto reusable keep-alive backend connections, re-adding the Upgrade and Connection headers while passing Content-Length verbatim. A backend that resolves the resulting ambiguous message in the attacker's favor enables HTTP request/response smuggling and cross-client response-queue poisoning.

AnalysisAI

HTTP request/response smuggling in nghttpx (the reverse proxy component of nghttp2 through 1.69.0) allows unauthenticated remote attackers to poison shared backend keep-alive connections by crafting an HTTP/1.1 Upgrade request that simultaneously carries a Content-Length header and body. When nghttpx forwards this ambiguous message to a backend and re-adds Connection and Upgrade headers while passing Content-Length verbatim, a backend that resolves the parsing ambiguity in the attacker's favor treats the body as a separate, attacker-controlled HTTP request - enabling cross-client response-queue poisoning. A publicly available proof-of-concept exploit exists; no CISA KEV listing at time of analysis.

Technical ContextAI

nghttpx is the reverse proxy binary shipped with the nghttp2 library (cpe:2.3:a:nghttp2:nghttp2:*:*:*:*:*:*:*:*), which provides HTTP/1.1 and HTTP/2 proxying. The vulnerability is rooted in CWE-444 (Inconsistent Interpretation of HTTP Requests), a class of flaws where an intermediary and a backend parse the same byte stream differently. The specific trigger is the HTTP/1.1 protocol upgrade mechanism: a client sends an Upgrade request to switch protocols, but also includes a Content-Length header with a body. RFC 7230 treats the combination as ambiguous - the body could belong to the upgrade handshake or be interpreted as the start of a new pipelined request. nghttpx failed to block or strip this body before forwarding onto a reusable keep-alive backend connection, and simultaneously re-added the Connection and Upgrade hop-by-hop headers. The commit diff (ab28105c) reveals the fix required: adding a blocked_request_buf guard in can_detach_downstream_connection() to prevent connection reuse while an Upgrade body remains unprocessed, introducing should_block_request_body() logic that holds the body until the backend confirms the upgrade, rejecting CONNECT requests carrying Content-Length with HTTP 400, and deferring blocked buffer processing until after the backend response is received via process_blocked_request_buf_on_response().

RemediationAI

The primary fix is to update nghttp2 to a version that includes upstream commit ab28105c4a0197da24f8bfc414bc116055249e1e (https://github.com/nghttp2/nghttp2/commit/ab28105c4a0197da24f8bfc414bc116055249e1e); a specific tagged release version is not confirmed in the available data - verify with the nghttp2 project release page. The VulnCheck advisory at https://www.vulncheck.com/advisories/nghttp2-nghttpx-http-request-response-smuggling-via-upgrade-request-with-content-length should be monitored for a formal version number. As a compensating control where patching is not immediately possible, configure nghttpx or an upstream WAF to block or reject HTTP/1.1 Upgrade requests that also carry a Content-Length header - this disrupts the specific ambiguous message construct and prevents the smuggling vector, with the trade-off that legitimate protocol upgrade flows using body data will also be rejected. Additionally, disabling connection reuse (keep-alive) for backend connections eliminates the queue poisoning surface entirely, at the cost of increased connection overhead and latency.

Vendor StatusVendor

Debian

Bug #1140917
nghttp2
Release Status Fixed Version Urgency
bullseye vulnerable 1.43.0-1+deb11u1 -
bullseye (security) vulnerable 1.43.0-1+deb11u3 -
bookworm vulnerable 1.52.0-1+deb12u2 -
bookworm (security) vulnerable 1.52.0-1+deb12u3 -
trixie vulnerable 1.64.0-1.1 -
trixie (security) vulnerable 1.64.0-1.1+deb13u1 -
forky, sid vulnerable 1.69.0-1 -
(unstable) fixed (unfixed) -

SUSE

Severity: Moderate
Product Status
Container suse/sl-micro/6.0/baremetal-os-container:2.1.3-6.205 Container suse/sl-micro/6.0/base-os-container:2.1.3-7.172 Container suse/sl-micro/6.0/kvm-os-container:2.1.3-6.182 Container suse/sl-micro/6.0/rt-os-container:2.1.3-7.200 Container suse/sl-micro/6.0/toolbox:13.2-9.133 Container suse/sl-micro/6.1/baremetal-os-container:2.2.1-7.138 Container suse/sl-micro/6.1/base-os-container:2.2.1-5.155 Container suse/sl-micro/6.1/kvm-os-container:2.2.1-5.158 Container suse/sl-micro/6.1/rt-os-container:2.2.1-5.152 Image SL-Micro Image SL-Micro-Base Image SL-Micro-Base-RT Image SL-Micro-Base-RT-SelfInstall Image SL-Micro-Base-RT-encrypted Image SL-Micro-Base-SelfInstall Image SL-Micro-Base-encrypted Image SL-Micro-Base-qcow Image SL-Micro-Default Image SL-Micro-Default-SelfInstall Image SL-Micro-Default-encrypted Image SL-Micro-Default-qcow Affected
Container suse/sle-micro-rancher/5.3:latest Container suse/sle-micro-rancher/5.4:5.4.4.5.146 Container suse/sle-micro/5.3/toolbox:16.3-6.11.249 Container suse/sle-micro/5.4/toolbox:16.3-5.19.250 Container suse/sle-micro/5.5/toolbox:16.3-3.12.159 Container suse/sle-micro/5.5:2.0.4-5.8.52 Container suse/sle-micro/base-5.5:2.0.4-5.8.293 Container suse/sle-micro/kvm-5.5:2.0.4-3.5.565 Container suse/sle-micro/rt-5.5:2.0.4-4.5.645 Affected
Container suse/sles/16.0/toolbox:latest Affected
SUSE Linux Enterprise Desktop 15 SP7 SUSE Linux Enterprise High Performance Computing 15 SP7 SUSE Linux Enterprise Module for Basesystem 15 SP7 SUSE Linux Enterprise Server 15 SP7 SUSE Linux Enterprise Server for SAP Applications 15 SP7 Fixed
SUSE Linux Enterprise Micro 5.3 Fixed

Share

CVE-2026-58055 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy