Skip to content

refactor: Bump undici from 6.29.0 to 6.29.1 and 7.30.0 to 7.30.1 - #307

Merged
mtrezza merged 1 commit into
parse-community:mainfrom
mtrezza:refactor/undici-6.29.1-7.30.1
Oct 26, 2026
Merged

mtrezza merged 1 commit into
parse-community:mainfrom
mtrezza:refactor/undici-6.29.1-7.30.1

Conversation

@mtrezza

@mtrezza mtrezza commented Oct 26, 2026 •

Copy link
Copy Markdown
Member

Closes #306

Security update for a transitive development dependency (lock file only). undici is not in package.json. The upgrade resolves the high-severity advisory GHSA-xjj6-f33q-929c (CVE-2026-109869), a denial of service through an unhandled error when a server sends more than five content codings and closes the connection before the body. It affects undici >= 6.23.0, < 6.29.1 and >= 7.18.0, < 7.30.1.

Lock file entry Required by Before After
node_modules/undici @semantic-release/github 12.0.9 (^7.0.0) 7.30.0 7.30.1
node_modules/@actions/http-client/node_modules/undici @actions/http-client 4.0.0 (^6.23.0), via @actions/core 3.0.0 and @semantic-release/npm 13.2.0 6.29.0 6.29.1

The lock file was regenerated with npm update undici --ignore-scripts --package-lock-only. Both target versions are the latest releases of their lines. npm ls undici --omit=dev is empty, so the package is development-only. The declared Node.js engines are unchanged (>=20.18.1 for 7.30.x, >=18.17 for 6.29.x); the CI test matrix starts at Node 20.19.5 and the release job runs Node 24.

Dependabot alerts addressed by this upgrade:

The upgrade also includes the fixes for GHSA-qrxm-fqhp-jwvm, GHSA-2m5v-pch6-74hx, GHSA-4w7w-5xrc-9h26, GHSA-55wc-3pg8-jfw6 and GHSA-9fm3-97px-rjf6, which have no alerts in this repository.

Bundled copy in npm

The copy of undici 6.29.0 that is bundled inside the npm package (node_modules/npm/node_modules/undici, marked inBundle, required by node-gyp 12.4.0 inside npm 11.21.1, which @semantic-release/npm depends on) ships with npm's published tarball and cannot be changed by this PR. npm 11.21.1 is the latest 11.x release, so no npm version bundles undici 6.29.1 yet.

GitHub's dependency graph counts bundled entries. Before #300, this bundled copy (6.28.0) was the only 6.x copy below 6.28.1, because the @actions/http-client copy was already at 6.29.0. The alerts for GHSA-rfgv-xxqx-mfg5 and GHSA-r53p-7pc4-xj5r (fixed in 6.28.1) were marked fixed at 2026-10-17T23:06:52Z, six seconds after #300 merged and moved the bundled copy to 6.29.0. Alerts 243 and 241 will therefore likely stay open until a newer npm 11.x release bundles undici 6.29.1.

Inside npm, undici is only used by node-gyp (lib/download.js) to download Node.js headers for native addon builds. @semantic-release/npm only runs npm whoami, version, pack, publish and dist-tag with it, none of which builds native addons.

Changes

Breaking Changes

None

Code Changes Required

None — the upgrade is a drop-in replacement.

  • @semantic-release/github 12.0.9 (lib/octokit.js) is the only caller of the 7.x copy. In the release job it sends each GitHub API request through fetch(url, { ...opts, dispatcher }) with new Agent(), or with new ProxyAgent({ uri }) if a proxy is configured. It passes no tls option and uses no interceptors, cookie helpers, EventSource, WebSocket or integrity. Of the changes above, it can only reach the fetch() content-encoding check (responses with more than 5 codings), the removed TLS assertion (certificate hostname errors after connect) and the TLS session cache fix (a full cache of 100 sessions, which a new Agent per request does not reach).
  • @actions/http-client 4.0.0 imports ProxyAgent from the 6.x copy at the top level of lib/index.js, so the 6.x copy is loaded whenever the module is imported. ProxyAgent is only constructed in _getProxyAgentDispatcher(), which is reached through getAgentDispatcher(), and neither @actions/core 3.0.0 nor @semantic-release/npm 13.2.0 calls it. HttpClient requests, such as the GitHub Actions OIDC token request for npm trusted publishing, go through Node's http and https modules.
  • A local check against a server on 127.0.0.1 with the same call (fetch with new Agent()) returned the same results on 7.30.0 and 7.30.1 for plain, gzip, brotli, 5-fold gzip, invalid gzip, truncated gzip, 6 codings with a body, a same-origin redirect and a 404 response. The only difference was the case of 6 codings with the connection closed before the body: both versions rejected fetch(), and 7.30.0 also raised an uncaught SocketError: other side closed, which would crash the process. 7.30.1 did not.

Summary by CodeRabbit

  • Chores
    • Updated underlying network package versions to their latest patch releases.

@parse-github-assistant

Copy link
Copy Markdown

🚀 Thanks for opening this pull request! We appreciate your effort in improving the project. Please let us know once your pull request is ready for review.

Tip

  • Keep pull requests small. Large PRs will be rejected. Break complex features into smaller, incremental PRs.
  • Use Test Driven Development. Write failing tests before implementing functionality. Ensure tests pass.
  • Group code into logical blocks. Add a short comment before each block to explain its purpose.
  • We offer conceptual guidance. Coding is up to you. PRs must be merge-ready for human review.
  • Our review focuses on concept, not quality. PRs with code issues will be rejected. Use an AI agent.
  • Human review time is precious. Avoid review ping-pong. Inspect and test your AI-generated code.

Note

Please respond to review comments from AI agents just like you would to comments from a human reviewer. Let the reviewer resolve their own comments, unless they have reviewed and accepted your commit, or agreed with your explanation for why the feedback was incorrect.

Caution

Pull requests must be written using an AI agent with human supervision. Pull requests written entirely by a human will likely be rejected, because of lower code quality, higher review effort and the higher risk of introducing bugs. Please note that AI review comments on this pull request alone do not satisfy this requirement. Our CI and AI review are safeguards, not development tools. If many issues are flagged, rethink your development approach. Invest more effort in planning and design rather than using review cycles to fix low-quality code.

@coderabbitai

coderabbitai Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review.

Recent review info
Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Essentials
  • Run ID: 6299d125-611a-428e-8036-6960e1515728
Commits

Reviewing files that changed from the base of the PR and between d326d5f and bdbc222.

Files selected for processing: 1
  • package-lock.json

Included review availability: This review used your included allowance. 0 included reviews remain after this review. Your included PR review attempts over the past 7 days set your current allowance at 2 reviews per hour.

Walkthrough

The lockfile updates nested undici from 6.29.0 to 6.29.1 and top-level undici from 7.30.0 to 7.30.1, including their registry URLs and integrity hashes.

Changes: Undici dependency update

Layer / File(s) Summary
Update undici lock entries
package-lock.json
The nested undici entry changes to 6.29.1. The top-level entry changes to 7.30.1. Both entries have updated registry URLs and integrity hashes.

Priority: Normal

Estimated code review effort: 1 (Trivial) | ~5 minutes

Severity of issue fixed: High

Merge Risk: Minimal · up to bdbc2

No merge-blocking risk is evident from this dependency-only update.

Pre-merge checks: Passed 6
Check name Status Explanation
Title check Passed The title begins with the allowed prefix "refactor:" and clearly describes the undici dependency updates. The first letter after the prefix is capitalized.
Linked Issues check Passed The directly linked issue [#306] requires both related undici updates. package-lock.json updates node_modules/@actions/http-client/node_modules/undici from 6.29.0 to 6.29.1 and `node_modules/und…
Out of Scope Changes check Passed The pull request changes only the two required undici lock-file entries. The changes directly implement [#306]. No unrelated source, configuration, dependency, or test changes are present in the rev…
Security Check Passed PASS — The reviewed range changes only package-lock.json. It updates the two registry undici entries from 6.29.0 to 6.29.1 and 7.30.0 to 7.30.1 with matching integrity changes. Both entries remain…
Engage In Review Feedback Passed PASS: The current review produced zero actionable findings, and no CodeRabbit review threads were returned. Therefore, no review feedback required engagement, implementation, or discussion before reso…
Description check Passed The description provides the linked issue, a detailed approach, affected dependencies, security rationale, validation results, and scope information. It does not use the template headings or explicitl…
Full details: Linked Issues check

Explanation

The directly linked issue [#306] requires both related undici updates. package-lock.json updates node_modules/@actions/http-client/node_modules/undici from 6.29.0 to 6.29.1 and node_modules/undici from 7.30.0 to 7.30.1, including matching registry URLs and integrity hashes. These releases include the security fixes identified by the issue, including process-crash or memory-exhaustion fixes, TLS validation handling, cache isolation, and SRI validation. No additional coding or automated-test requirement appears in [#306].

Full details: Out of Scope Changes check

Explanation

The pull request changes only the two required undici lock-file entries. The changes directly implement [#306]. No unrelated source, configuration, dependency, or test changes are present in the reviewed diff.

Full details: Security Check

Explanation

PASS — The reviewed range changes only package-lock.json. It updates the two registry undici entries from 6.29.0 to 6.29.1 and 7.30.0 to 7.30.1 with matching integrity changes. Both entries remain development-only, and no application code or new security-sensitive pattern was introduced. The bundled npm copy at 6.29.0 is unchanged and is not caused by this pull request.

Full details: Engage In Review Feedback

Explanation

PASS: The current review produced zero actionable findings, and no CodeRabbit review threads were returned. Therefore, no review feedback required engagement, implementation, or discussion before resolution.

Full details: Description check

Explanation

The description provides the linked issue, a detailed approach, affected dependencies, security rationale, validation results, and scope information. It does not use the template headings or explicitly address the test and documentation task checkboxes, but the required information is present and the description is substantially complete.

Finishing Touches
🧪 Generate unit tests (beta)
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

@codecov

codecov Bot commented Oct 26, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (d326d5f) to head (bdbc222).

Additional details and impacted files
@@            Coverage Diff            @@
##              main      #307   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files            4         4           
  Lines          159       159           
=========================================
  Hits           159       159           

☔ 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.

@mtrezza
mtrezza merged commit aa682ef into parse-community:main Oct 26, 2026
10 checks passed
@mtrezza
mtrezza deleted the refactor/undici-6.29.1-7.30.1 branch October 26, 2026 23:11
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.

1 participant