chore(security): bump @humanfs/node to ^0.16.8 (GHSA-p498-v437-472g, alert #74) - #19
Open
benfrank241 wants to merge 1 commit into
Open
Conversation
…alert #74) Closes Dependabot alert #74 / GHSA-p498-v437-472g (medium): @humanfs/node copyAll() dereferences symlinks, allowing data outside the source tree to be copied. Dev-scope only; the sole parent is eslint (requests ^0.16.6, which accepts the patched 0.16.8), so a global override is safe. Resolved 0.16.6 -> 0.16.8 via `npm install --package-lock-only`. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.
Daily security sweep — npm / root
package-lock.json.Dependabot's own PRs don't get CI secrets on this repo, so this recreates the fix on a human-authored branch that does.
Closes
GHSA-p498-v437-472g@humanfs/node0.16.6→0.16.8@humanfs/node'scopyAll()doesn't treat symlinks as a distinct case — it hands every non-directory entry tofs.promises.copyFile(), which dereferences symlinks. A symlink inside an attacker-controlled source tree therefore copies the contents of any file readable by the process, from outside the tree being copied.Change
Not a direct dependency. The sole declaring parent is
eslint@9.39.4, which requests@humanfs/node@^0.16.6— a range that already accepts the patched0.16.8. Since no parent disagrees, a plain global override is correct; no scoping needed.Caret, not
>=, so npm can't jump the major. Relocked withnpm install --package-lock-only; resolved version re-read from the lockfile to confirm it actually moved to0.16.8.Lockfile churn is confined to the
@humanfsfamily and is all dev-scope:@humanfs/node0.16.6 → 0.16.8@humanfs/core0.19.1 → 0.19.2 (required by the above)@humanfs/types0.15.0 added (new dependency of both)@humanfs/node/node_modules/@humanwhocodes/retry0.3.1 removed — 0.16.8 widened its request to^0.4.0, which dedupes to the existing top-level0.4.3No other package keys changed.
Verification
This repo's
next buildgate is already red onmainfrom pre-existing ESLint errors (see #17), so a passing build isn't available as a signal. Both halves of the standard evidence were gathered instead:npm ci && npm run build && npm run lintrun on this branch and on a pristineorigin/mainworktree. Both fail identically:CI=0, BUILD=1, LINT=1on each side, and the normalized signature set (6 files + 6 diagnostics — 2no-explicit-anyerrors, 4no-unused-varswarnings) is identical. No new failure introduced.eslint.ignoreDuringBuildsedit. Both exit 0. The edit was reverted; onlypackage.jsonandpackage-lock.jsonare in this diff.@humanfs/nodeis ESLint's filesystem abstraction, used to read config and traverse files. ESLint ran to completion under0.16.8and emitted a byte-identical diagnostic set to0.16.6. That the file-traversal layer produces identical results across the bump is direct evidence it's behaviour-neutral here.npm auditafter the change reports only the one low-severity finding below, which is already covered.Not included
GHSA-w9m9-85wc-3x92(postcss-selector-parser, low, dev) is already fixed by chore(security): bump postcss-selector-parser >=6.1.3 (GHSA-w9m9-85wc-3x92, alert #73) #18, still open. Deliberately not duplicated here.Important
#18 and this PR touch the same
package.jsonoverrides block and the same lockfile. They are intentionally not stacked — both branch frommainso each gets CI (a PR based on a non-default branch wouldn't match this repo's workflow triggers). Whichever merges second needs a rebase and a re-run ofnpm install --package-lock-only.Not merging — maintainer's call.