v6.27.0
⚠️ Security Release
This release line addresses 4 security advisories.
Action required: Upgrade to undici 6.27.0 or later.
npm install undici@^6.27.0
Note on patched version: the v6 fixes shipped in v6.27.0, not
6.26.0
—v6.26.0contains only the chunked-EOF fix (#5308) and the version bump, none
of the security fixes below.
The v6 line is not affected by the SOCKS5 advisories (GHSA-vmh5-mc38-953g,
GHSA-hm92-r4w5-c3mj), the shared-cache disclosure (GHSA-pr7r-676h-xcf6), or the
8.x-only WebSocket regression (GHSA-38rv-x7px-6hhq).
Summary
| Advisory | CVE | Severity (CVSS) | Fixed in | Fix commit |
|---|---|---|---|---|
| GHSA-vxpw-j846-p89q | CVE-2026-12151 | High (7.5) | 6.27.0 | b7f252e7 |
| GHSA-p88m-4jfj-68fv | CVE-2026-9679 | Moderate (5.9) | 6.27.0 | 25efa447 |
| GHSA-g8m3-5g58-fq7m | CVE-2026-11525 | Low (3.7) | 6.27.0 | 25efa447 |
| GHSA-35p6-xmwp-9g52 | CVE-2026-6733 | Low (3.7) | 6.27.0 | f4c31d60 |
High severity
WebSocket DoS via fragment count bypass — CVE-2026-12151
GHSA-vxpw-j846-p89q · CWE-400, CWE-770
Fix: b7f252e7 Backport WebSocket maxPayloadSize fixes (#5423, backported to v6 in #5428)
A malicious WebSocket server can stream a large number of small or empty
continuation frames. Undici enforced a limit on cumulative payload size but did
not limit the number of fragments per message, leading to unbounded memory
growth and denial of service. All releases from 6.17.0 onward are affected.
- Affected: applications using
new WebSocket(...)orWebSocketStream
against untrusted endpoints. - Workaround: none — upgrade is required.
Moderate severity
HTTP header injection via Set-Cookie percent-decoding — CVE-2026-9679
GHSA-p88m-4jfj-68fv · CWE-93
Fix: 25efa447 fix(cookies): preserve values and parse SameSite strictly
parseSetCookie applied percent-decoding to cookie values, turning encoded
sequences like %0D%0A and %00 into literal bytes, contrary to RFC 6265 §5.4
and browser behavior. Applications forwarding parsed Set-Cookie values into
response headers were exposed to header injection, enabling session fixation,
open redirects, and cache poisoning.
- Workaround: sanitize values before forwarding — strip or reject CR, LF,
NUL,;, and=.
Low severity
Set-Cookie SameSite attribute downgrade — CVE-2026-11525
GHSA-g8m3-5g58-fq7m · CWE-183
Fix: 25efa447 fix(cookies): preserve values and parse SameSite strictly
The cookie parser accepted SameSite values containing Strict, Lax, or
None as substrings rather than requiring exact matches per RFC 6265. Values
like SameSite=NoneOfYourBusiness parsed as None, and SameSite=StrictLax
parsed as Lax, silently weakening cookie security policies for apps that
forward parsed attributes.
HTTP response queue poisoning via keep-alive socket reuse — CVE-2026-6733
GHSA-35p6-xmwp-9g52 · CWE-367 (TOCTOU race condition)
Fix: f4c31d60 fix: guard idle socket validation to skip fresh sockets (#5400)
An attacker controlling an upstream HTTP/1.1 server could inject unsolicited
responses onto idle keep-alive sockets. On socket reuse, the injected response
was associated with a new request, delivering responses to the wrong requests.
- Requirements: attacker-controlled/compromised upstream and active
keep-alive reuse. - Workaround: disable keep-alive reuse with
keepAliveTimeout: 0on the
Client or Pool.
Release contents & deliberate backports
v6.27.0 is a security-only release — every change in it is one of the fixes
above, backported to the v6.x maintenance line on purpose:
#5428— backport of the WebSocketmaxPayloadSizefragment-count / cumulative-size limits to v6.x (CVE-2026-12151; this is the v6 counterpart of the v7 backport #5423).#5400— idle-socket-validation fix for the queue-poisoning issue (CVE-2026-6733).
The cookie fix (25efa447,
covering both CVE-2026-9679 and CVE-2026-11525) was applied directly to the v6.x
branch. Full changelog:
v6.26.0...v6.27.0.
Credits
Per-advisory credits (as recorded in each GHSA):
- CVE-2026-12151 — reported by @lpinca & @Nadav0077; reviewed by @UlisesGascon.
- CVE-2026-9679 — reported by @tndud042713; fixed by @mcollina; reviewed by @KhafraDev & @UlisesGascon.
- CVE-2026-11525 — fixed by @mcollina; reviewed by @UlisesGascon.
- CVE-2026-6733 — fixed by @mcollina; verified by @UlisesGascon.