chore(security): bump @humanfs/node in datasheetsChat (closes #79) - #12
Open
benfrank241 wants to merge 1 commit into
Open
benfrank241 wants to merge 1 commit into
benfrank241 wants to merge 1 commit into
Conversation
…es #79) Resolves GHSA-p498-v437-472g (moderate): @humanfs/node copyAll()/copy() dereference symlinks, allowing a recursive copy to pull in files from outside the source tree. Transitive dev dependency of eslint, which declares "@humanfs/node": "^0.16.6". 0.16.8 is inside that range, so this is an in-range lockfile-only bump via `npm update @humanfs/node --package-lock-only` -- no manifest change and no overrides entry required. 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 —
datasheetsChat(npm), 2026-09-04.Alerts closed
GHSA-p498-v437-472g@humanfs/node0.16.6→0.16.8No CVE is assigned to this advisory. Vulnerable range
< 0.16.8.Summary:
@humanfs/nodedoes not treat symlinks as a separate case during copyoperations.
copyAll()passes every non-directory entry tofs.promises.copyFile(),which dereferences symlinks — so a symlink inside a copied tree yields the contents of
its target rather than the link, letting a recursive copy read files from outside the
source tree.
copy()is affected the same way when the source path is itself a symlink.Fix method — in-range lockfile-only bump, no override
@humanfs/nodeis a transitive dev dependency, reached only througheslint, whichdeclares:
0.16.8is already inside that range, so nooverridesentry and no manifest change isneeded — the previous resolution was simply stale. Regenerated with:
No
--force, no--legacy-peer-deps.package.jsonis untouched; the diff ispackage-lock.jsononly, and every changed entry is"dev": true:That last line is a dedupe, not a downgrade: 0.16.8 widens its requirement from
@humanwhocodes/retry@^0.3.0to^0.4.0, which the already-hoisted0.4.2satisfies,so the nested duplicate copy is no longer needed.
Verification
There is no
testscript indatasheetsChat/package.json(dev,build,start,lint), so no test step exists to run.maindoes not currently build or lint — both are pre-existing failures tracked in #10 —so this was verified differentially against a clean
origin/mainworktree at the samecommit (612fed4):
main(control)npm ciERESOLVEERESOLVEnext build— compileCompiled successfullyCompiled successfullynext build— type-checktsc --noEmitnpm run lintdiffof both the full build logs and the twotsc --noEmitoutputs is empty — thischange introduces no new errors. All 8 are the pre-existing errors catalogued in #10
item 2 (
ai@^5paired with v1-line@ai-sdk/*providers against v4-era call sites insrc/app/api/chat/route.ts).npm run lintremains unusable on both sides: no ESLint config is committed, sonext lintdrops into an interactive configuration prompt and never completesnon-interactively (#10 item 3).
ESLint toolchain smoke test
Because the bumped package is the filesystem layer ESLint itself uses to read configs and
source files, the toolchain was exercised directly. Each worktree's own
node_modules/.bin/eslintwas run against an identical throwaway flat config and samplefile outside the repo:
Identical output — ESLint 9.39.4 loads and runs correctly on the bumped dependency.
npm audit
@humanfs/nodeno longer appears innpm auditoutput.Not included
postcss-selector-parser,GHSA-w9m9-85wc-3x92) is already covered bychore(security): bump postcss-selector-parser in datasheetsChat (closes #78) #11, which is still open — not duplicated here.
@ai-sdk/provider-utils,GHSA-866g-f22w-33x8) is deliberately notaddressed and not dismissed. Re-verified again this run:
first_patched_versionisstill
nulland every published version is inside the vulnerable range (<= 3.0.97),so there is no upstream fix. It remains tracked in Daily security sweep — backlog #10 and needs the AI SDK major
migration.
Please review and merge at your discretion — this sweep does not merge its own PRs.