Skip to content

build(deps): bump undici from 6.29.1 to 7.30.1 - #331

Merged
georgexu99 merged 1 commit into
mainfrom
dependabot/npm_and_yarn/undici-6.29.1
Oct 28, 2026
Merged

georgexu99 merged 1 commit into
mainfrom
dependabot/npm_and_yarn/undici-6.29.1

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

Bumps undici from 6.29.1 to 7.30.1.

Release notes

Sourced from undici's releases.

v7.30.1

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 Agent options

CVE-2026-109383 · GHSA-2m5v-pch6-74hx

Agent used a JSON-based clone for constructor options, which silently removed function-valued TLS options such as checkServerIdentity. 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 Agent combined redirect and shared-cache interceptors as compose(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-Encoding values

CVE-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 decompress interceptor

CVE-2026-87029 · GHSA-55wc-3pg8-jfw6

An exception thrown by a downstream response handler from an asynchronous decompression callback could escape as an uncaught exception. A server could trigger this when decompress was composed with a handler such as dump with a size limit. This release converts downstream handler exceptions into per-request errors.

Subresource Integrity bypass with non-lowercase algorithm tokens

CVE-2026-109841 · GHSA-f72v-6w45-q472

fetch() treated valid mixed-case or uppercase SRI algorithm tokens, such as SHA256, as unknown and could accept a response whose body did not match the configured digest. This release normalizes algorithm tokens before validation and digest selection.

Denial of service through unbounded EventSource parser state

CVE-2026-109924 · GHSA-4qv8-2p9j-2685

A malicious Server-Sent Events endpoint could exhaust process memory by sending many tiny data: fields without completing an event, or by splitting an unfinished line across many chunks. This release bounds retained EventSource parser state, including field counts, buffered chunks, unfinished-line length, and retained field data.

Denial of service through unbounded automatic WebSocket PONG buffering

... (truncated)

Commits
  • 7507102 Bumped v7.30.1 (#6022)
  • 7d60c7b [v7.x] fix(cookies): backport #5663, #5808 and #5832 (#6019)
  • 0227d5d fix: avoid unbounded recursion in Set-Cookie attribute parser (#5757) (#5997)
  • 5394462 fix(websocket): bound automatic PONG writes under backpressure
  • 2991627 fix(eventsource): bound retained SSE parser state
  • 18bc8a1 fix(sri): accept non-lowercase algorithm tokens
  • 63cba77 fix(decompress): converge downstream handler throws to per-request errors
  • 07ded49 fix(fetch): abort excessive content encoding responses
  • b20b82a fix(cache): prevent cross-origin redirect cache confusion
  • 04cb74b fix: preserve Agent connection options
  • Additional commits viewable in compare view

@dependabot dependabot Bot added the dependencies Pull requests that update a dependency file label Oct 28, 2026
@dependabot
dependabot Bot requested a review from a team as a code owner October 28, 2026 00:09
@dependabot dependabot Bot added the javascript Pull requests that update javascript code label Oct 28, 2026
@dependabot
dependabot Bot requested a review from a team as a code owner October 28, 2026 00:09

@claude claude Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Besides the inline finding, I checked the remaining undici 6.29.1 lockfile entry for tampering. Its resolution and checksum match the 6.29.1 entry already in the base lockfile, so the integrity data is not affected.

Extended reasoning...

The only change is to yarn.lock, which collapses the undici entries into one. The 6.29.1 resolution and checksum are byte-for-byte the same as in the base, which rules out a swapped package hash.

Comment thread yarn.lock Resolved
Bumps [undici](https://github.com/nodejs/undici) from 6.29.1 to 7.30.1.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](nodejs/undici@v6.29.1...v7.30.1)

---
updated-dependencies:
- dependency-name: undici
  dependency-version: 6.29.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot changed the title build(deps): bump undici from 6.28.0 to 6.29.1 build(deps): bump undici from 6.29.1 to 7.30.1 Oct 28, 2026
@dependabot
dependabot Bot force-pushed the dependabot/npm_and_yarn/undici-6.29.1 branch from f601a4d to e5cc904 Compare October 28, 2026 00:15
@socket-security

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updatedundici@​6.29.1 ⏵ 7.30.193100100 +197100

View full report

@claude claude Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I reviewed the latest push and didn't find any bugs. Because this is a major-version bump of a runtime dependency and the repo's CODEOWNERS covers every path, a codeowner should still take a look.

What was reviewed:

  • yarn.lock now matches package.json. The root workspace lists undici: "npm:^7.30.1", and @ actions/http-client's ^6.23.0 range still resolves on its own to 6.28.0.
  • Undici is only used in app/entry.server.tsx, through EnvHttpProxyAgent and setGlobalDispatcher. Both are still exported in v7 with the same zero-argument usage.
  • Engines: the project requires Node >=22.12.0 and .nvmrc pins 22.23.4. Both are above undici 7's Node 20.18.1 floor.
Extended reasoning...

This change bumps undici from ^6.29.1 to ^7.30.1 in package.json and yarn.lock, with no source changes. Undici supplies the server-side global HTTP dispatcher (proxy agent), so it affects outbound fetch behavior but no auth, injection or data-exposure logic. The lockfile is now consistent with package.json. Approval was withheld because CODEOWNERS assigns * to the ecosystem and releases working groups, and because this is a major-version runtime upgrade.

@georgexu99
georgexu99 merged commit 7d67c96 into main Oct 28, 2026
10 checks passed
@georgexu99
georgexu99 deleted the dependabot/npm_and_yarn/undici-6.29.1 branch October 28, 2026 00:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant