{"id":"CVE-2026-18540","title":"undici's retry interceptor can append the body of a ranged retry response to bytes already delivered from an earlier partial response while still presenting the original response's status and headers","summary":"undici's retry interceptor can append the body of a ranged retry response to bytes already delivered from an earlier partial response while still presenting the original response's status and headers. This happens when an upstream server…","severity":"low","cvss":3.7,"cvssVector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N","cwe":["CWE-444"],"vendor":"nodejs","product":"undici","affected":["undici < 6.28.1","undici >= 7.0.0, < 7.29.1","undici >= 8.0.0, < 8.10.2"],"patched":["undici 8.10.2"],"published":"2026-09-04","updated":"2026-09-16","sourceUpdated":"2026-09-16T20:41:17.627","source":"NVD","sourceUrl":"https://nvd.nist.gov/vuln/detail/CVE-2026-18540","references":[{"url":"https://cna.openjsf.org/security-advisories.html","label":"ce714d77-add3-4f53-aff5-83d477b104bb"},{"url":"https://github.com/nodejs/undici/security/advisories/GHSA-r53p-7pc4-xj5r","label":"ce714d77-add3-4f53-aff5-83d477b104bb"},{"url":"https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-18540.json"},{"url":"https://access.redhat.com/security/cve/CVE-2026-18540"},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2528783"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-18540"},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-18540"},{"url":"https://access.redhat.com/errata/RHSA-2026:66008"},{"url":"https://access.redhat.com/errata/RHSA-2026:66605"}],"tags":["nvd","csaf","vex","red-hat"],"epss":0.00239,"epssPercentile":0.15238,"ingestedAt":"2026-09-08T19:08:49.593Z","slug":"CVE-2026-18540","body":"## Overview\n\nundici's retry interceptor can append the body of a ranged retry response to bytes already delivered from an earlier partial response while still presenting the original response's status and headers. This happens when an upstream server delivers part of a body without a trustworthy resume checkpoint, for example a non-success response whose headers were already sent or a partial-content response with an unusable content range, then closes the connection and answers the resumed range request with more bytes. As a result the response body can be longer than the Content-Length that the application observes. An application that relays such a response to a downstream HTTP/1.1 peer without normalizing the framing can emit a body that exceeds the forwarded Content-Length, and the excess bytes can be interpreted as the start of a following response, which enables downstream response splitting or desynchronization. Exploitation requires an attacker-controlled upstream server and an application that forwards the response through a framing-sensitive path. This affects undici versions before 6.28.1, from 7.0.0 up to 7.29.1, and from 8.0.0 up to 8.10.2. Users should upgrade to undici 6.28.1, 7.29.1, or 8.10.2.\n\n## Affected\n\n- `undici < 6.28.1`\n- `undici >= 7.0.0, < 7.29.1`\n- `undici >= 8.0.0, < 8.10.2`\n\n## Remediation\n\nUpgrade past the affected range:\n\n- `undici 8.10.2`\n\n## Vendor advisories\n\n- **Red Hat VEX** · Low · affected: Exploit Intelligence, OpenShift Pipelines, Red Hat AMQ Broker 7, Red Hat Ansible Automation Platform 2, Red Hat Build of Podman Desktop, Red Hat Developer Hub, … · no fix planned: Exploit Intelligence, Red Hat Trusted Artifact Signer, Secrets Management Console for Red Hat OpenShift, OpenShift Pipelines, … · updated 2026-09-11 · [vex](https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-18540.json)\n- **RHSA-2026:66008** · Red Hat · fixed in: Red Hat Hardened Images · released 2026-09-09 · [advisory](https://access.redhat.com/errata/RHSA-2026:66008)\n- **RHSA-2026:66605** · Red Hat · fixed in: Red Hat Hardened Images · released 2026-09-11 · [advisory](https://access.redhat.com/errata/RHSA-2026:66605)","depth":"sunlit","depthScore":20,"depthScoreParts":{"impact":20.4,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}