Résumé
undici vulnerable to Denial of Service via orphaned RetryHandler response body
Détails de l’avis
Impact
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.
Patches
Patched in undici v7.29.1 and v8.10.2.
Workarounds
Impose an independent request deadline and destroy the response body when it expires. bodyTimeout alone does not prevent this.
Références
- https://github.com/advisories/GHSA-pmjh-fq2x-6v4x
- https://github.com/nodejs/undici/security/advisories/GHSA-pmjh-fq2x-6v4x
- https://nvd.nist.gov/vuln/detail/CVE-2026-18149
- https://github.com/nodejs/undici/commit/3c6726599cea8646384dde846c97d630da472a74
- https://github.com/nodejs/undici/commit/e905b5b87e6953bcc542af90557b2fee5b7b5974
- https://hackerone.com/reports/3892751
- https://cna.openjsf.org/security-advisories.html
- https://github.com/nodejs/undici/releases/tag/v7.29.1
Vulnérabilités liées
Tout Supply chain →- MEDIUMCVE-2026-59951
MCP Python SDK: Unbounded Session Accumulation in StreamableHTTP Transport Enables Resource Exhaustion
- HIGHCVE-2026-107286
Pydantic AI: Concurrency-limited models can keep their slot when a streamed request ends early
- MEDIUMCVE-2026-107834
Coraza: Resource exhaustion via deferred file handle accumulation in multipart body processor
- HIGHCVE-2026-63128
RMCP: Unauthenticated permanent session-table leak in rmcp Streamable HTTP server transport leads to remote denial-of-service
- HIGHCVE-2026-96627
Arcane: Delegated users:update permission allows admin account takeover via password reset (no privilege-hierarchy check)
- MEDIUMCVE-2026-96628
Arcane: Environment access token bypasses the admin-required authorization gate on `/api/debug/pprof`