CVE-2026-18149: undici vulnerable to Denial of Service via orphaned RetryHandler response body
undici’s RetryHandler can leave a response body pending indefinitely. When a retried request receives a non-retryable response after a truncated one, the original response.body held by the application is never settled, so reads such as response.body.text() hang and bodyTimeout does not fire. A malicious server can repeat this to accumulate pending promises and streams, leading to denial of service.
References
- cna.openjsf.org/security-advisories.html
- github.com/advisories/GHSA-pmjh-fq2x-6v4x
- github.com/nodejs/undici/commit/3c6726599cea8646384dde846c97d630da472a74
- github.com/nodejs/undici/commit/e905b5b87e6953bcc542af90557b2fee5b7b5974
- github.com/nodejs/undici/releases/tag/v7.29.1
- github.com/nodejs/undici/releases/tag/v8.10.2
- github.com/nodejs/undici/security/advisories/GHSA-pmjh-fq2x-6v4x
- hackerone.com/reports/3892751
- nvd.nist.gov/vuln/detail/CVE-2026-18149
Code Behaviors & Features
Detect and mitigate CVE-2026-18149 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →