chore(deps): bump tar from 7.5.11 to 7.5.22 across 3 lockfiles - #104
Merged
Conversation
Closes 12 Dependabot alerts (#62, #66, #70, #88-#99, #105-#107) covering 6 advisories, including the critical GHSA-23hp-3jrh-7fpw (CVE-2026-59873). Required floor was 7.5.21; 7.5.22 is the current release. Lockfile-only — tar is transitive via node-gyp under the existing `^7.5.4` range, so no manifest change is needed and tar's own dependency ranges are unchanged. Verified: yarn build + 286 tests pass.
Ndevu12
added a commit
that referenced
this pull request
Jul 31, 2026
Closes 16 of the 18 open Dependabot alerts on the root yarn.lock. (The remaining tar alerts are handled separately in #104.) Direct devDependencies — manifest floor raised alongside the lockfile: vite ^8.0.0 -> ^8.0.16 (resolves 8.2.0) #54 high, #55 medium concurrently ^10.0.0 -> ^10.0.4 #86 high (via shell-quote) concurrently 10.0.4 pins shell-quote 1.9.0 exactly, so bumping the real parent fixes shell-quote properly rather than forcing it with a resolutions override. shell-quote 1.8.4 is gone from the tree entirely. Transitive — lockfile only, all within existing declared ranges: @babel/core 7.29.0 -> 7.29.7 #68 brace-expansion 1.1.12 -> 1.1.18 #103 brace-expansion 5.0.4 -> 5.0.9 #81 js-yaml 4.1.1 -> 4.3.1 #80, #101 postcss 8.5.15 -> 8.5.25 #119 undici 7.24.4 -> 7.29.0 #71, #72, #73, #74, #76, #77 ws 8.19.0 -> 8.21.1 #67 Raising vite to ^8.0.16 initially left a second vite 8.0.8 behind an unrelated `^6 || ^7 || ^8` range, which kept a vulnerable postcss 8.5.15 alive. `yarn up -R` plus `yarn dedupe` collapses both to a single copy, so no stale vulnerable duplicate remains. vite 8.2.0 warns that `__dirname` is unsupported under the native config loader that becomes the default in a future major. Migrated both root vite configs to `import.meta.dirname` so the bump leaves no new warning behind. Available since Node 20.11; CI runs Node 20.x. Verified: build, 286 unit tests, typecheck, lint, format:check, verify:demos. Not fixed here — both blocked upstream, neither reachable in this project: #50 esbuild (low) tsup 8.5.1 is the latest release and pins esbuild ^0.27.0, so 0.28.1 is unreachable without overriding a transitive pin. The advisory is a Windows-only path traversal in the esbuild dev server (servedir); tsup uses the bundler API and never starts that server. #46 uuid (medium) @storybook/addon-actions 8.6.18 pins uuid ^9.0.0. Storybook 9+ drops the uuid dependency entirely, so the real fix is the v8 -> v10 migration, not a pin. The advisory affects v3()/v5()/v6() with a caller supplied buffer; addon-actions only calls v4() with no buffer.
Ndevu12
added a commit
that referenced
this pull request
Aug 1, 2026
…es (#112) Takes open Dependabot alerts from **5 to 0**. I previously argued against `resolutions` for these. That was the right default but the wrong final answer — I had not actually tested whether the forced versions work. I have now, and they do, so here they are with the evidence. ## Why a bump could not fix these All five are pinned by an upstream package rather than declared in any manifest here, so there is no floor to raise: | Alert | Package | Pinned by | |---|---|---| | #50 | `esbuild` | `tsup@8.5.1` (latest) declares `esbuild@^0.27.0` — cannot reach patched 0.28.1 | | #24 #102 #104 | `postcss` | `next` depends on **exactly** `postcss@8.4.31` | | #87 | `sharp` | `next` declares `sharp@^0.34.5`; fix is 0.35.0, outside the range | I checked `next@16.2.12` (latest, a major upgrade): it **still** pins `postcss@8.4.31`. So even upgrading Next by a major would not have closed those three. ## The overrides, and what verified them **Root — `esbuild: ^0.28.1`.** Forcing this collapses the tree to a single esbuild copy (0.27.7 is gone entirely). The risk was that `tsup` and `tsx`, which declared `^0.27.0` / `~0.27.0`, would break against 0.28. They do not: - `yarn build` — tsup compiles the library (CJS + ESM + DTS) - `yarn clean` — a `tsx`-executed script runs - `yarn build-storybook` — succeeds - `yarn test:coverage` — **286 tests pass, 92.9% statements / 84.1% branches** - `yarn typecheck`, `yarn lint`, `yarn format:check` — clean **`examples/nextjs-demo` — `postcss: ^8.5.25`, `sharp: ^0.35.3`.** The risk was Nexts CSS pipeline depending on postcss 8.4.31 internals. It does not: - `yarn build` — compiles successfully, prerenders all 3 static pages ## These are liabilities, and the PR says so An override forces a version upstream never tested against. Left undocumented that is exactly the debt worth avoiding, so `SECURITY.md` now carries a **Dependency overrides** section recording, for each entry: what pins the package, which advisory it answers, **the precise condition for removing it**, and the commands to check whether upstream has caught up: ```sh npm view tsup dependencies.esbuild npm view next dependencies.postcss optionalDependencies.sharp ``` They should be deleted the moment `tsup` ships against `esbuild@^0.28` and `next` moves off `postcss@8.4.31`. ## Verification of the outcome Cross-checking every open alert against the resulting lockfiles: ``` Open alerts RESOLVED by this branch: 5 Still vulnerable: 0 ``` Plus the standing invariant, re-run: every **direct** dependency across all four manifests still declares a floor at or above its patched version.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes 12 Dependabot alerts across 6 advisories, including the only critical alert currently open on
main.What changed
tar7.5.11 → 7.5.22 inyarn.lock,playground/yarn.lock, andexamples/react-demo/yarn.lock. The required floor was 7.5.21; 7.5.22 is the current release.Lockfile-only.
taris transitive vianode-gypunder an existing^7.5.4range, so no manifest change is needed.tars own dependency ranges are unchanged, so there is no transitive fanout — the diff is 9 lines per lockfile and the resolved checksum is identical in all three.Verification
yarn build— successyarn test— 286 tests across 20 files, all passingNote on real-world exposure
node-gypis only reached when building native modules and is not materialized intonode_moduleson a normal install, so practical exposure here was low. The bump is still worth taking: it clears the critical alert and costs nothing behaviourally.