CVE-2026-16728
ADVISORY - githubSummary
Impact
Undici's interceptors.retry() can deliver a response whose body length does not match the Content-Length header exposed to the application after a retry or resume of a partial response. Applications that use interceptors.retry() and forward upstream response headers and bodies downstream, for example proxy or gateway applications, may emit an invalid HTTP response with a stale Content-Length header. This can lead to downstream response desynchronization, connection hangs, or response corruption in clients or intermediaries that rely on the forwarded framing metadata.
A malicious or faulty upstream can respond to a range request with a 206 Partial Content response such as:
Content-Range: bytes 0-99/300
Content-Length: 300
and then send only 99 bytes before closing the socket. interceptors.retry() can then retry with Range: bytes=99-99, receive the final byte, and deliver a 100-byte body to the application while the response headers still contain Content-Length: 300 from the first response.
The bug requires interceptors.retry() to be enabled, an upstream that returns a partial response with a mismatched framing header, and a downstream forwarder that does not remove or recalculate Content-Length.
Patches
Patched in undici v6.28.0, v7.29.0, and v8.9.0. Users should upgrade to one of these versions or later.
Workarounds
- Disable
interceptors.retry()for untrusted upstreams. - Remove or recalculate
Content-Lengthbefore forwarding a response body assembled or transformed by Undici.
Common Weakness Enumeration (CWE)
Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling')
Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling')
NIST
2.2
CVSS SCORE
4.8mediumGitHub
2.2
CVSS SCORE
4.8mediumDebian
-
Ubuntu
3.9
CVSS SCORE
6.5mediumAmazon
-
CVSS SCORE
N/AhighAmazon
-
CVSS SCORE
N/AhighChainguard
CGA-fgmh-44p5-9m5q
-
minimos
MINI-2mgg-7vmp-g69r
-
minimos
MINI-36m7-j7p5-jjqq
-
minimos
MINI-4h4c-xq2f-rhmf
-
minimos
MINI-6cjc-jcj6-gqf5
-
minimos
MINI-72qj-gw53-x7qf
-
minimos
MINI-748f-2hpg-2768
-
minimos
MINI-777w-x28q-rcc7
-
minimos
MINI-f92f-f9cc-6hpp
-
minimos
MINI-g4cq-cm2f-rrmh
-
minimos
MINI-h4rh-9xwj-2r7r
-
minimos
MINI-hgw6-g3hp-gx5v
-
minimos
MINI-mw8h-q93j-f532
-
minimos
MINI-pghc-h39j-xvp6
-
minimos
MINI-ph8r-f3w2-m8qq
-
minimos
MINI-wwhq-hq7c-f9m8
-