dependabot-bot's Description of Work
Bumps undici from 7.29.0 to 8.10.2.
Release notes
Sourced from undici's releases.
v8.10.2
⚠️ Security fixes
High severity
GHSA-vp8m-p9jh-q5pm: cache and deduplication interceptors could use caller-controlled request metadata instead of the authoritative dispatcher origin, enabling cross-origin cache poisoning and data disclosure. Undici now derives interceptor identities from the dispatcher origin and bypasses origin-dependent interceptors when no authoritative origin exists. Fixed by caf6194d.
GHSA-w293-vg96-wgc3:BalancedPoolcould drop function-valued connection options while cloning its configuration, including custom TLS certificate validation callbacks. Undici now preservesconnectand legacytlsoptions when creating upstreams. Fixed by 8f5868fb.
GHSA-rfgv-xxqx-mfg5: a WebSocket server could select a subprotocol when none was requested, causing an uncaughtTypeErrorthat could terminate the process. Undici now rejects the handshake with protocol error 1002. Fixed by 66e12816.Medium severity
GHSA-3wwx-pv8p-q78v: a malformed permessage-deflate payload exceeding the configured decompression limit could emit an unhandled zlib error and terminate the process. Undici now destroys the inflater after reaching the limit. Fixed by 4411a238.
GHSA-rx4f-c7p8-82vq: an uncleanWebSocketStreamclose could create an unobserved rejected promise when its writable stream was locked, potentially terminating the process. Undici now propagates the failure through the retained writable stream controller. Fixed by 662d0ea6.
GHSA-2jfj-6hjv-fm6j: shared caches could store and replay responses containingSet-Cookie, disclosing one user's cookies to another caller. Undici now excludes these responses from shared caches, including existing entries and revalidation paths. Fixed by cb75bbb3.
GHSA-3xpg-4rpp-hhhm: the decompression interceptor did not bound decoded output, allowing compressed responses to consume excessive memory. Undici now limits every decompression stage to 64 MiB by default and supports a configurablemaxSize. Fixed by 7aac7f12.
GHSA-pmjh-fq2x-6v4x: a terminal retry failure after response headers were exposed could orphan the original response body, causing consumers to hang indefinitely. Undici now propagates the terminal error to the exposed body. Fixed by e905b5b8.Low severity
GHSA-8436-99hf-9mmv: cache interceptors could store and replay responses to unsafe HTTP methods such asPOSTorDELETE. Undici now restricts cache reads and writes to safe methods while preserving invalidation by successful unsafe requests. Fixed by 2be07bf9.
GHSA-2gqq-gqf2-x968: the dump interceptor could treat an oversized chunked response as successfully truncated when noContent-Lengthwas present. Undici now enforcesmaxSizeagainst received bytes and aborts oversized responses. Fixed by 6d583124.
GHSA-r53p-7pc4-xj5r: the retry interceptor could concatenate a resumed response with inconsistent framing into downstream output, enabling response splitting or corruption. Undici now validatesContent-Rangeagainst the original response framing before resuming. Fixed by 0160a719.What's Changed
- build(deps-dev): bump undici from 6.27.0 to 6.28.0 by
@dependabot[bot] in nodejs/undici#5653- build(deps-dev): bump jest from 30.4.2 to 30.5.0 by
@dependabot[bot] in nodejs/undici#5750- build(deps): bump github/codeql-action/analyze from 4.37.3 to 4.37.9 by
@dependabot[bot] in nodejs/undici#5752- build(deps): bump github/codeql-action/upload-sarif from 4.36.2 to 4.37.9 by
@dependabot[bot] in nodejs/undici#5754- test(h2): cover stream reset with NGHTTP2_INTERNAL_ERROR by
@zeexzeexin nodejs/undici#5725- fix(retry): reject invalid resumed responses by
@mcollinain nodejs/undici#5724- test: make stale-while-revalidate cache update test deterministic by
@mcollinain nodejs/undici#5722- fix: avoid unbounded recursion in Set-Cookie attribute parser by
@mcollinain nodejs/undici#5757- fix: honor SOCKS5 connection timeout by
@mcollinain nodejs/undici#5733- fix(eventsource): validate Last-Event-ID on reconnect by
@mcollinain nodejs/undici#5746- fix: avoid duplicate release attempts by
@mcollinain nodejs/undici#5745- fix(cache): refetch when 304 adds vary fields by
@mcollinain nodejs/undici#5732- types: expose PendingInterceptor and PendingInterceptorsFormatter on the MockAgent namespace by
@RaphaelFakhriin nodejs/undici#5721- ci(codeql): align CodeQL action versions to v4.37.9 by
@mcollinain nodejs/undici#5759- build(deps-dev): bump
@humanfs/nodefrom 0.16.7 to 0.16.8 by@dependabot[bot] in nodejs/undici#5760- fix(proxy-agent): guard Proxy-Authorization in iterable header containers by
@mcollinain nodejs/undici#5758- docs: name the parameters these two blocks describe by
@darkdiin nodejs/undici#5735- fix(websocket): fail the connection on a non-200 h2 extended CONNECT response by
@kjsik11in nodejs/undici#5751- test(node-fetch): re-enable the set-cookie header combining test by
@pacocartonesin nodejs/undici#5730- fix(retry): forward rawHeaders writes through RetryController by
@official-burakin nodejs/undici#5727- fix(fetch): only send Sec-Fetch-Mode to potentially trustworthy URLs by
@kjsik11in nodejs/undici#5738New Contributors
@darkdimade their first contribution in nodejs/undici#5735@kjsik11made their first contribution in nodejs/undici#5751
<!-- raw HTML omitted -->
... (truncated)
Commits
-
5e541e0Bumped v8.10.2 (#5771) -
eb04cc3fix(fetch): only send Sec-Fetch-Mode to potentially trustworthy URLs (#5738) -
e905b5bfix(retry): settle exposed body on terminal failure -
0160a71fix(retry): validate resumed response framing -
66e1281fix(websocket): reject unrequested subprotocols -
7aac7f1fix(decompress): limit decompressed response size -
cb75bbbfix(cache): do not cache Set-Cookie in shared caches -
6d58312fix(interceptor/dump): abort oversized chunked responses -
8f5868ffix: preserve BalancedPool connection options -
2be07bffix(cache): reject unsafe method response caching - 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 rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will 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 version` will 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 dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)