Skip to content

fix: rebuild action bundles with patched Undici 6.29.1 - #1296

Closed
KirilsTurkins wants to merge 4 commits into
actions:mainfrom
KirilsTurkins:upstream/security-20261026
Closed

KirilsTurkins wants to merge 4 commits into
actions:mainfrom
KirilsTurkins:upstream/security-20261026

Conversation

@KirilsTurkins

Copy link
Copy Markdown

Description:
Pin the bundled Undici runtime to 6.29.1 and rebuild the setup and cleanup entry points. This fixes GHSA-4qv8-2p9j-2685 and GHSA-xjj6-f33q-929c. The lockfile also uses the public npm URL for the existing TypeScript tarball, retaining its integrity hash.

Found while hardening CI for Latent Service Fabric (LSF). The patched production dependency graph has zero OSV findings across 44 packages.

Related issue:
The two security advisories linked above.

Check list:

  • Ran npm run check locally (format, lint, build, test) and all checks pass: Linux, Node 24.19.0; 45 suites, 1,594 tests passed, two existing skips.
  • Documentation changes are required.
  • Tests were added or updated to cover the changes.

Existing tests are unchanged; this updates the dependency lock and generated bundles.

@KirilsTurkins
KirilsTurkins requested a review from a team as a code owner October 26, 2026 20:20
brunoborges and others added 3 commits October 30, 2026 11:47
Undici 6.29.1 already satisfies @actions/http-client's ^6.23.0
range, so it can resolve through that dependency without a pin.
The lockfile and rebuilt dist/ bundles are unchanged.

Co-authored-by: Copilot App <[email protected]>
The cached Licensed record still listed undici 6.29.0, so
`licensed status` failed with "dependency record out of date"
after the lockfile moved to 6.29.1. The LICENSE text, summary,
and homepage are unchanged; only the version differs.

Co-authored-by: Copilot App <[email protected]>
@KirilsTurkins

Copy link
Copy Markdown
Author

Follow-up from the Latent Service Fabric (LSF) security baseline: GitHub reviewed GHSA-gcqx-w48m-w2h4 for deepmerge 4.3.1 and currently lists no patched upstream release. This PR now consumes a committed, reproducible source repair for the three affected deepmerge entry points. The build verifies the repaired postimage hashes before bundling; a locked Node 24.19.0 install and rebuild reproduced the committed dist/ byte-for-byte. No advisory suppression or test skip was added.

@brunoborges

brunoborges commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

The core issue has been resolved in #1308: the action bundles now use Undici 6.29.1 and the license record is updated. For the new security alert, we will wait for dependencies to be updated and for Dependabot to trigger the alert.

Not meaningfully affected. No action is needed.

  • Advisory: GHSA-gcqx-w48m-w2h4 (CVE-2026-93753, low severity) is a prototype-poisoning issue in deepmerge versions >= 4.2.0, <= 4.3.1. No patched version exists yet.
  • In this repo: package-lock.json does include [email protected], which is in the affected range. It's marked dev: true and only comes in through jest-config, the test runner's configuration package.
  • Runtime: The action runs from the committed dist/setup and dist/cleanup bundles. Neither bundle contains any deepmerge code, so users of the action aren't exposed.

At most, the advisory affects local test runs, and Jest only merges its own trusted config. Dependabot may still flag the lockfile entry; you can safely dismiss it as dev-only.

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