Skip to content

chore(deps): update dependency undici to v8.12.4 - #958

Merged
fengmk2 merged 4 commits into
masterfrom
renovate/undici-8.x-lockfile
Nov 9, 2026
Merged

fengmk2 merged 4 commits into
masterfrom
renovate/undici-8.x-lockfile

Conversation

@renovate

@renovate renovate Bot commented Oct 24, 2026 •

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
undici (source) 8.12.2 → 8.12.4 age confidence

Release Notes

nodejs/undici (undici)

v8.12.4

Compare Source

⚠️ Security Fixes

This release fixes six vulnerabilities.

CVE-2026-116592 / GHSA-mqg3-3v4r-cm32 (high)

Undici 8.12.2 and 8.12.3 could cache the final response from a redirect chain under the original request key without applying the origin, cache policy, freshness, or Vary requirements of every intermediate hop. This could poison a cache or expose one user's response to another user. The fix validates every redirect hop, combines their Vary fields, limits freshness and stale serving to the most restrictive hop, and invalidates persistent SQLite entries written by vulnerable releases.

CVE-2026-120474 / GHSA-7xg3-fphp-28hg (medium)

A shared cache used with compose(redirect(), cache()) could store a credential-dependent response from a same-origin redirect under the original URL. A later authenticated or unauthenticated request could then receive another user's response. Redirected requests carrying Authorization, Cookie, or Proxy-Authorization are no longer stored under the original alias key.

CVE-2026-116630 / GHSA-5rm8-gv32-r954 (medium)

A cross-origin redirect during cache revalidation could let a 304 Not Modified response from the redirect target validate a cached response from the original origin. Undici now checks that the revalidation target matches the cached URL and that any returned validator matches the stored representation before replaying the cached body.

CVE-2026-120415 / GHSA-9v6h-8rgp-m69f (medium)

The redirect interceptor did not strip credentials correctly when request headers were supplied as an array of [name, value] pairs. With a header-normalizing interceptor outside redirect(), credentials could be sent to a cross-origin redirect target. Undici now handles both tuple arrays and flat header arrays when removing sensitive headers.

CVE-2026-120222 / GHSA-3g9m-rv3r-w5w2 (medium)

A downstream handler exception during cache replay could escape as an uncaught exception or unhandled promise rejection and terminate the process. This included dump size-limit failures, excessive Content-Encoding values in decompress, asynchronous cache-store failures, and cached-body replay after a 304. These failures are now reported as request errors.

CVE-2026-120423 / GHSA-r4pc-4jcp-7pqc (medium)

fetch() could skip Subresource Integrity verification when valid integrity metadata was separated or surrounded by ASCII whitespace other than a space, including a horizontal tab. Integrity metadata is now split on all ASCII whitespace before SHA-256, SHA-384, or SHA-512 verification.

What's Changed

New Contributors

Full Changelog: nodejs/undici@v8.12.3...v8.12.4

v8.12.3

Compare Source

What's Changed

New Contributors

Full Changelog: nodejs/undici@v8.12.2...v8.12.3


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@coderabbitai

coderabbitai Bot commented Oct 24, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 300a716a-6574-42f8-bf9d-47d1650d3e20

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@socket-security

socket-security Bot commented Oct 24, 2026 •

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@​8.12.2 ⏵ 8.12.492100100 +198100

View full report

@codecov

codecov Bot commented Oct 24, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 94.77%. Comparing base (b7625ff) to head (1b5fe24).

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #958   +/-   ##
=======================================
  Coverage   94.77%   94.77%           
=======================================
  Files          10       10           
  Lines         746      746           
  Branches      235      235           
=======================================
  Hits          707      707           
  Misses         36       36           
  Partials        3        3           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@pkg-pr-new

pkg-pr-new Bot commented Oct 24, 2026 •

Copy link
Copy Markdown

Open in StackBlitz

npm i https://pkg.pr.new/node-modules/urllib@958

commit: 1b5fe24

@renovate
renovate Bot force-pushed the renovate/undici-8.x-lockfile branch 2 times, most recently from 4cb9ba4 to 6a43483 Compare November 5, 2026 19:50
@renovate
renovate Bot force-pushed the renovate/undici-8.x-lockfile branch from 6a43483 to 581d944 Compare November 8, 2026 07:30
@renovate
renovate Bot force-pushed the renovate/undici-8.x-lockfile branch from 581d944 to 1e3a826 Compare November 8, 2026 14:23
@renovate renovate Bot changed the title chore(deps): update dependency undici to v8.12.3 chore(deps): update dependency undici to v8.12.4 Nov 8, 2026
@fengmk2

fengmk2 commented Nov 8, 2026

Copy link
Copy Markdown
Member

@copilot fix ci fail

Co-authored-by: fengmk2 <156269+fengmk2@users.noreply.github.com>

Copilot AI commented Nov 8, 2026

Copy link
Copy Markdown
Contributor

@copilot fix ci fail

The macOS and Windows jobs failed on an unhandled read ECONNRESET. It came from the server-side TLS socket in should timeout on h2, and all the tests themselves passed. I added a no-op error handler on the server's secureConnection socket in test/options.timeout.test.ts. I couldn't run the tests in this sandbox because dependencies aren't installed, so the fix is untested until CI runs.

Copilot AI requested a review from fengmk2 November 8, 2026 15:08
@renovate

renovate Bot commented Nov 8, 2026

Copy link
Copy Markdown
Contributor Author

Edited/Blocked Notification

Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.

You can manually request rebase by checking the rebase/retry box above.

⚠️ Warning: custom changes will be lost.

@fengmk2

fengmk2 commented Nov 9, 2026

Copy link
Copy Markdown
Member

@copilot ci still fail

Co-authored-by: fengmk2 <156269+fengmk2@users.noreply.github.com>

Copilot AI commented Nov 9, 2026

Copy link
Copy Markdown
Contributor

@copilot ci still fail

My first fix was wrong, so CI still failed. The unhandled read ECONNRESET in should timeout on h2 is probably coming from the client socket, not the server one. undici 8.12.3+ now replaces an unresponsive h2 connection after a stream timeout. I now attach a no-op error listener to client sockets through the undici:client:connected diagnostics channel in test/options.timeout.test.ts. The test passes and vp check is clean on Linux. I can't reproduce the ECONNRESET on Linux, so this is untested on macOS and Windows until CI runs; if it still fails, the cause is elsewhere.

The check job also fails, but for an unrelated reason. The zizmor step reports hash-pin version comment mismatches on voidzero-dev/setup-vp ... # main in the workflow files. I left that alone because it isn't caused by this PR.

@fengmk2
fengmk2 merged commit a5c61b6 into master Nov 9, 2026
19 checks passed
@fengmk2
fengmk2 deleted the renovate/undici-8.x-lockfile branch November 9, 2026 14:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants