Bumps undici from 8.11.2 to 8.12.3.
Release notes
Sourced from undici's releases.
v8.12.3
What's Changed
- ci: use Python 3.14 for the WPT server on macOS by
@mrityunjay-pandeyin nodejs/undici#6029- build(deps-dev): bump neostandard from 0.13.0 to 0.14.0 by
@dependabot[bot] in nodejs/undici#6006- build(deps-dev): bump eslint from 9.39.4 to 10.12.0 by
@dependabot[bot] in nodejs/undici#5967- docs: document the options of interceptors.cache() by
@qodeliciousin nodejs/undici#6050- fix(h2): replace a connection that stops responding after a stream timeout by
@mcollinain nodejs/undici#6052- fix(pool): keep caller async context for queued requests by
@mcollinain nodejs/undici#5982New Contributors
@qodeliciousmade their first contribution in nodejs/undici#6050Full Changelog: https://github.com/nodejs/undici/compare/v8.12.2...v8.12.3
v8.12.2
Security fixes
High severity
Denial of service via TLS 1.2 certificate-changing renegotiation
CVE-2026-87018 · GHSA-qrxm-fqhp-jwvm
A malicious or compromised HTTPS server could crash the Node.js process by initiating TLS 1.2 renegotiation and presenting a different, CA-trusted certificate whose hostname did not match the requested host. The resulting socket error reached an assertion in undici's HTTP/1.1 and HTTP/2 connection handling. This release handles post-connect certificate errors without terminating the process.
TLS certificate validation bypass through dropped
AgentoptionsCVE-2026-109383 · GHSA-2m5v-pch6-74hx
Agentused a JSON-based clone for constructor options, which silently removed function-valued TLS options such ascheckServerIdentity. Applications relying on custom certificate or public-key verification could therefore accept a certificate that the callback was intended to reject. This release preserves TLS options when creating per-origin dispatchers.Cache poisoning and cross-user disclosure through cross-origin redirects
CVE-2026-109829 · GHSA-4w7w-5xrc-9h26
When an originless
Agentcombined redirect and shared-cache interceptors ascompose(redirect(), cache()), a response from a cross-origin redirect could be stored under the original URL. This could allow persistent cache poisoning or disclosure of user-specific responses to later callers. This release verifies the response origin before caching and preserves redirect-hop cache-control policy.Denial of service through excessive
Content-EncodingvaluesCVE-2026-109869 · GHSA-xjj6-f33q-929c
A malicious HTTP server could crash the Node.js process by returning more than five content codings and closing the connection before sending the body. Although
fetch()rejected the response, an error from an orphaned internal stream could remain unhandled. This release validates the content-encoding chain before creating the body stream and aborts oversized chains safely.Medium severity
Denial of service through the
decompressinterceptorCVE-2026-87029 · GHSA-55wc-3pg8-jfw6
... (truncated)
Commits
ff9cc5eBumped v8.12.3 (#6053)0bbf614fix(pool): keep caller async context for queued requests (#5982)aa1eef1fix(h2): replace a connection that stops responding after a stream timeout (#...e34b872docs: document the options of interceptors.cache() (#6050)e8f3423build(deps-dev): bump eslint from 9.39.4 to 10.12.0 (#5967)b777e40build(deps-dev): bump neostandard from 0.13.0 to 0.14.0 (#6006)43700ffci: use Python 3.14 for the WPT server on macOS (#6029)bb6cc0aBumped v8.12.2 (#6021)b217373fix(websocket): bound automatic PONG writes under backpressure789ef26fix(eventsource): bound retained SSE parser state- Additional commits viewable in compare view
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the Security Alerts page.