Skip to content

chore(deps): resolve dependabot alerts - #1372

Merged
thymikee merged 1 commit into
mainfrom
chore/resolve-dependabot-alerts
Jul 23, 2026
Merged

chore(deps): resolve dependabot alerts#1372
thymikee merged 1 commit into
mainfrom
chore/resolve-dependabot-alerts

Conversation

@thymikee

@thymikee thymikee commented Jul 23, 2026

Copy link
Copy Markdown
Member

Summary

Resolves all 13 open Dependabot alerts (7 high, 3 moderate, 3 low) via targeted pnpm.overrides in the two affected workspace roots (repo root, examples/test-app). No direct dependency bumps were needed to satisfy them — every alert was on a transitive package, and each fix version exists within the currently-used major, so nothing was force-upgraded across a major boundary.

Alerts fixed

# Package Manifest Severity Was Fixed to GHSA
1 undici root pnpm-lock.yaml low 7.24.7 7.28.0 GHSA-g8m3-5g58-fq7m (Set-Cookie SameSite downgrade)
2 undici root medium 7.24.7 7.28.0 GHSA-p88m-4jfj-68fv (header injection via percent-decoding)
3 undici root high 7.24.7 7.28.0 GHSA-vxpw-j846-p89q (WebSocket fragment-count DoS)
4 undici root high 7.24.7 7.28.0 GHSA-hm92-r4w5-c3mj (cross-origin routing via SOCKS5 pool reuse)
5 undici root low 7.24.7 7.28.0 GHSA-35p6-xmwp-9g52 (HTTP response queue poisoning)
6 undici root high 7.24.7 7.28.0 GHSA-vmh5-mc38-953g (TLS cert bypass via dropped requestTls in SOCKS5 ProxyAgent)
7 undici root medium 7.24.7 7.28.0 GHSA-pr7r-676h-xcf6 (cross-user cache disclosure)
8 shell-quote examples/test-app/pnpm-lock.yaml high 1.8.4 1.10.0 GHSA-395f-4hp3-45gv (quadratic-complexity DoS in parse())
9 js-yaml test-app high 4.1.1 4.3.0 GHSA-52cp-r559-cp3m (merge-key chain quadratic CPU)
10 js-yaml test-app medium 4.1.1 4.3.0 GHSA-h67p-54hq-rp68 (merge key DoS via repeated aliases)
11 brace-expansion test-app high 5.0.6 5.0.7 GHSA-3jxr-9vmj-r5cp (exponential-time expansion DoS)
12 @babel/core test-app low 7.29.0 7.29.7 GHSA-4x5r-pxfx-6jf8 (arbitrary file read via sourceMappingURL)
13 ws test-app high 7.5.10 7.5.13 GHSA-96hv-2xvq-fx4p (memory exhaustion from tiny fragments)

Tally: 7 high, 3 moderate, 3 low — matches the 13 alerts reported by gh api .../dependabot/alerts.

What changed and why

  • pnpm-workspace.yaml (root): added overrides: { undici@7: ^7.28.0 }. undici is a transitive dep of @limrun/api (pinned to an exact 7.24.7 even in @limrun/api's latest release, 0.44.0 — checked all published versions), so bumping the direct dependency can't fix this; the override forces the transitive resolution instead. Scoped to major 7 (via the undici@7 selector) so any future undici 8 elsewhere in the tree isn't forced backward. Root pnpm-lock.yaml regenerated with pnpm install.
  • examples/test-app/pnpm-workspace.yaml: bumped/added overrides for shell-quote, js-yaml, brace-expansion, ws@7, and @babel/core@7, following the existing pattern from fix: resolve test-app dependabot alerts #649 (this app is nested under the repo-root workspace without being a member, so pnpm only honors overrides declared in its own pnpm-workspace.yaml, not package.json). Each override is a caret range scoped to the vulnerable major (js-yaml@4, @babel/core@7, ws@7) so unrelated majors in the tree (e.g. ws@8, brace-expansion@1) stay untouched. examples/test-app/pnpm-lock.yaml regenerated with pnpm install.
  • No package.json files were touched — every fix is a transitive-only override, per the task's preferred fix order.

Verification

  • pnpm audit (root) → "No known vulnerabilities found"
  • pnpm audit (examples/test-app) → "No known vulnerabilities found"
  • pnpm typecheck → clean
  • pnpm lint → clean
  • pnpm build → succeeds (pre-existing INEFFECTIVE_DYNAMIC_IMPORT warnings, unrelated to this change)
  • pnpm test (full unit suite) → 4326 passed, 4 failed on first run, all 4 were timeouts in app-lifecycle-install.test.ts (Android) and runner-client.test.ts (Apple) — the repo's known CPU-contention flake in process-spawn tests. Reran both files in isolation: app-lifecycle-install.test.ts 13/13 pass, runner-client.test.ts 63/63 pass. No assertion failures anywhere.
  • website (pnpm build / rspress) → builds successfully with the bumped undici.

Not fixed here

Nothing was left unaddressed — all 13 alerts had a patched version available within the currently-used major, so no disruptive major bump or unresolved alert remains.

Pin transitive dependencies past their vulnerable ranges via pnpm
overrides, scoped to the affected major so unrelated majors elsewhere
in the tree stay untouched:

- undici 7.24.7 -> 7.28.0 (root/website): @limrun/api pins undici to
  an exact version even in its latest release (0.44.0), so bumping the
  direct dependency can't fix this; override the transitive resolution
  instead.
- shell-quote 1.8.4 -> 1.10.0 (examples/test-app)
- js-yaml 4.1.1 -> 4.3.0 (examples/test-app)
- brace-expansion 5.0.6 -> 5.0.7 (examples/test-app)
- @babel/core 7.29.0 -> 7.29.7 (examples/test-app)
- ws 7.5.10 -> 7.5.13 (examples/test-app)

Resolves all 13 open Dependabot alerts (7 high, 3 moderate, 3 low).
@github-actions

github-actions Bot commented Jul 23, 2026

Copy link
Copy Markdown
PR Preview Action v1.8.1
Preview removed because the pull request was closed.
2026-07-23 07:56 UTC

@github-actions

Copy link
Copy Markdown

Size Report

Metric Base Current Diff
JS raw 1.8 MB 1.8 MB 0 B
JS gzip 577.7 kB 577.7 kB 0 B
npm tarball 692.3 kB 692.3 kB 0 B
npm unpacked 2.4 MB 2.4 MB 0 B

Startup median (7 runs, lower is better):

Scenario Base Current Diff
CLI --version 24.6 ms 24.2 ms -0.4 ms
CLI --help 52.0 ms 52.4 ms +0.4 ms

Top changed chunks: no changes in the largest emitted chunks.

@thymikee thymikee added the ready-for-human Valid work that needs human implementation, judgment, or maintainer merge label Jul 23, 2026
@thymikee

Copy link
Copy Markdown
Member Author

Reviewed exact head e775cdf511c47dc31b18012436b4b5c6e41a225a. The root override is correctly scoped to undici@7 and resolves to 7.28.0. The nested test-app workspace resolves the advisory targets to patched versions: ws 7.5.13/8.21.0, brace-expansion 5.0.7, shell-quote 1.10.0, js-yaml 4.3.0, and @babel/core 7.29.7. No direct dependencies or package majors changed, and all exact-head checks are green. No actionable findings; code review is ready for human review.

Minor maintenance note: shell-quote: ^1.9.0 is currently safe because the graph only has v1, but shell-quote@1: ^1.9.0 would make the intended major boundary explicit for future edges.

@thymikee
thymikee merged commit 19cea66 into main Jul 23, 2026
27 checks passed
@thymikee
thymikee deleted the chore/resolve-dependabot-alerts branch July 23, 2026 07:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-for-human Valid work that needs human implementation, judgment, or maintainer merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant