Dependency security upgrades and modernization - #227
Conversation
Consolidate upgrades for multiple vulnerable dependencies: - bump micromatch to 4.0.8 (resolves ReDoS) - bump @octokit packages for vulnerability fixes - bump brace-expansion to 1.1.18, 2.1.4, and 5.0.9 - bump diff to 4.0.4 (resolves ReDoS) - bump ip-address to 10.5.0 and socks to 2.8.9 - bump js-yaml to 3.15.1 and 4.3.1 (resolves quadratic DoS) - bump tar resolution in package.json to 7.5.22 - bump glob to 10.5.0 (resolves command injection)
Upgraded several vulnerable transitive dependencies in the @test/pnpm-compat test environment package to safe versions: - brace-expansion: 5.0.6 -> 5.0.9 - ip-address: 10.2.0 -> 10.5.0 - nanoid: 3.3.11 -> 3.3.18 - postcss: 8.5.14 -> 8.5.26 - tar: 7.5.12 -> 7.5.22
Upgraded vitest to version 3.2.6 in the test/pnpm-compat integration test directory. This major upgrade resolves all remaining critical, high, and moderate vulnerabilities (including vitest, vite, and esbuild) while keeping the integration test suite green.
…ilities Upgrade semantic-release and its associated plugins to modern versions: - semantic-release to ^25.0.9 - @semantic-release/changelog to ^7.0.0 - @semantic-release/git to ^11.0.1 This resolves numerous transitive high and moderate vulnerabilities including sigstore and @npmcli/disparity-colors.
There was a problem hiding this comment.
Pull request overview
This PR updates dependency versions to address security audit findings and modernize the release/test toolchain across the root workspace and the test/pnpm-compat subproject.
Changes:
- Upgraded
semantic-releaseto^25.0.9and updated related plugins (@semantic-release/changelog,@semantic-release/git) in the root workspace. - Updated the root
taroverride to7.5.22viaresolutions. - Upgraded
test/pnpm-compattovitest@^3.2.6and refreshed itsyarn.lockto the new dependency tree.
Reviewed changes
Copilot reviewed 2 out of 4 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
package.json |
Bumps semantic-release + plugins and updates tar resolution override. |
test/pnpm-compat/package.json |
Updates vitest major version used by the pnpm compatibility test project. |
test/pnpm-compat/yarn.lock |
Lockfile refresh reflecting vitest/vite and related transitive upgrades. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
commit: |
…EXDEV link errors Redirect Yarn's cache and global state folders to live inside the GHA workspace volume (drive D:) using YARN_CACHE_FOLDER, YARN_GLOBAL_FOLDER, and YARN_ENABLE_GLOBAL_CACHE. On GHA Windows runners, the default global directories live on drive C:, which raises cross-device link errors (EXDEV: cross-device link not permitted) when the pnpm-compat test directory attempts to hard-link dependencies from Yarn's cache and index databases to a workspace located on drive D:. This change keeps the cache warm and shared, while ensuring all links occur on the same volume. Assisted-by: Gemini CLI:gemini-3.5-flash
39995e4 to
2ed4613
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 4 out of 6 changed files in this pull request and generated no new comments.
Suppressed comments (2)
.github/workflows/ci.yml:21
- This
pkg-pr-new publish --commentWithDevstep will still run onpushruns (includingmain), where it likely lacks PR metadata to post a comment/associate the preview build. Guard it so it only runs for PR-triggered runs.
name: appmap-node-${{ env.SHORT_SHA }}
path: appmap-node-${{ env.SHORT_SHA }}.tgz
- run: yarn pkg-pr-new publish --commentWithDev --yarn
- run: yarn lint
.github/workflows/ci.yml:3
pkg-pr-new publish --commentWithDevis PR-oriented, but this workflow is currently configured to run only onpush. That means the preview publish/comment step will run on non-PR pushes (includingmain) where no PR context exists, and can fail (also preventing downstreamtestsince it nowneeds: build-and-lint). Consider enablingpull_requestevents so this can run in PR context.
This issue also appears on line 18 of the same file.
on: push
jobs:
build-and-lint:
|
🎉 This PR is included in version 2.26.2 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
This PR focuses on executing a comprehensive security audit of all package trees across the repository, resolving all active security vulnerabilities (ReDoS, SSRF, Command Injection, pax-size/path confusion, CPU exhaustion, etc.) in both the root workspace and the separate
test/pnpm-compatsubproject.All upgraded packages have been thoroughly verified:
yarn tsc -p tsconfig.build.jsonpasses with0errors).38test suites /182tests passed successfully).🚀 Summary of Upgrades
1. Root Workspace - Transitive & Targeted Upgrades (Consolidated)
The following packages were recursively upgraded in the root
yarn.lockto target and resolve specific CVEs:micromatch: Bumped recursively from4.0.5to4.0.8(resolves ReDoS).@octokit/*packages: Bumped recursively to secure releases (@octokit/plugin-paginate-rest@9.2.2,@octokit/request@8.4.1,@octokit/request-error@5.1.1) to resolve catastrophic backtracking ReDoS vulnerabilities.brace-expansion: Upgraded all tree instances (1.1.18,2.1.4, and5.0.9) to address process hang, memory exhaustion, and consecutive group DoS.diff: Upgraded recursively from4.0.2to4.0.4to fix low-severity ReDoS.ip-address&socks: Bumped recursively toip-address@10.5.0(resolves SSRF leading-zero octet decodes) andsocks@2.8.9(fixes package-lock deprecation/issues).js-yaml: Bumped all tree instances (3.15.1and4.3.1) to resolve quadratic-complexity CPU consumption/DoS.tar: Swapped resolution override inpackage.jsonfrom7.5.11to7.5.22to resolve multiple high/critical CVEs (pax size override file smuggling, numeric path type confusion process crash, negative size infinite loop).glob: Bumped recursively from10.3.10to10.5.0to resolve high-severity CLI Command Injection vulnerability.2. Root Workspace -
semantic-releaseMajor Bump (Separate Commit)Upgraded the
semantic-releasesuite and its associated plugins to modern major versions:semantic-release:^22.0.5➡️^25.0.9@semantic-release/changelog:^6.0.3➡️^7.0.0@semantic-release/git:^10.0.1➡️^11.0.1Why this was necessary:
Older versions of
semantic-releasedepended on older releases of@semantic-release/npmandlibnpmpublish, which pulled insigstore <= 4.1.0(vulnerable to certificate OID verification silently dropping and bypassing constraints). Upgradingsemantic-releasetov25recursively upgraded the sub-dependency tree to a secure release ofsigstore(>= 4.1.1) and completely resolved multiple deprecated packages like@npmcli/disparity-colors.3.
test/pnpm-compatSubproject (Fixed separately)The separate package tree in
test/pnpm-compathas been upgraded to be 100% clean of vulnerabilities:postcssfrom8.5.14to8.5.26nanoidfrom3.3.11to3.3.18tarfrom7.5.12to7.5.22ip-addressfrom10.2.0to10.5.0brace-expansionfrom5.0.6to5.0.9vitestto major version3🔒 Security Audit Results
Running
yarn npm audit -Rnow reports 0 active security vulnerabilities remaining across all packages:npmlog,rimraf@3,are-we-there-yet) remain.test/pnpm-compat: ReportsNo audit suggestions(100% clean).🛠️ Verification and Build Status
yarn tsc -p tsconfig.build.jsoncompiles with zero warnings or errors.