fix(deps): unstick the fast-uri override from a version that is itself vulnerable - #347
Open
multicam wants to merge 1 commit into
Open
fix(deps): unstick the fast-uri override from a version that is itself vulnerable#347multicam wants to merge 1 commit into
multicam wants to merge 1 commit into
Conversation
…f vulnerable The `fast-uri` override was added in tt-a1i#209 to escape a vulnerable release, but it pins an exact version, so it froze at 3.1.5 — which four later advisories cover (GHSA-5jgf-p345-68v8, GHSA-f65p-4m7j-42xc, GHSA-fph4-wmhf-6fwf, GHSA-jqff-g426-hqxp, all affecting 3.0.0 - 3.1.5). `npm audit` on current main reports 2 high-severity findings through `ajv > fast-uri`. An exact pin is the reason this recurred: it stops the resolver from taking the next patch, so each new advisory in the pinned line needs another manual bump. `^3.1.7` keeps the floor the override exists to provide while letting patches through. It stays inside ajv's own `^3.0.1` range, so nothing is forced out-of-range and the resolution is no longer an override in practice. `npm audit`: 0 vulnerabilities.
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.
Problem and value
npm auditon currentmainreports 2 high-severity vulnerabilities throughajv > fast-uri:The override added in #209 did the right thing at the time, but it pins an exact version. That froze the tree at
3.1.5, and four advisories published since cover3.0.0 - 3.1.5— so the mechanism that was meant to keepfast-uripatched is now the reason it is not. Every future advisory in that line needs another manual bump.This supersedes the stale #141, which is conflicting, has an unfilled description, and also touches
archify.zip,bin/archify.mjs, andtest/cli.test.mjs.Scope
archify/package.jsonoverride"fast-uri": "3.1.5"→"fast-uri": "^3.1.7", and the resultingarchify/package-lock.json. Two files, 18 insertions, 18 deletions.ajvitself stays at8.20.0.git diff --statis exactly the two dependency files.Deliberately
^3.1.7rather than an exact3.1.7: a caret keeps the security floor the override exists to provide while letting the resolver take future patches on its own. It also sits insideajv's own declared^3.0.1, so nothing is forced out of range —npm ls fast-urino longer reports the dependency asoverridden.4.xwas not used; it would force a major outside that range for no security benefit.Stability impact
fast-uriis reached only throughajv, adevDependencyused byscripts/generate-validators.mjs; it is not in any published runtime path.3.1.5 → 3.1.7is a patch bump within the same major.npm run check:validators(part ofnpm test) passes, so the checked-in output is unchanged.npm cirestores3.1.5. Nothing is written outsidenode_modulesand the lockfile.Tests run
Node.js v26.8.1, macOS. Run from
archify/.The same suite was run on unmodified
main(920543b) in a separate clean clone as a baseline: 1051 / 1020 pass / 0 fail / 31 skipped, identical. No test changed state.All 31 skips are environmental and identical on both sides — 25 gated on
ARCHIFY_CHROME, 5 oncanonical ZIP builds require Node 22, 1 onARCHIFY_MCO_REPO_ROOT. Per CONTRIBUTING, those are reported as skipped, not passed; none of them exercises dependency resolution.Visual evidence
Not applicable — no rendering, layout, or viewer behavior is touched.
Generated artifacts
None regenerated.
check:brand-marks,check:validators, andcheck:release-identityall pass against the checked-in artifacts, which is the evidence that their inputs did not change.archify.zipis deliberately untouched: no host-visible plugin or Skill bytes change here, and CONTRIBUTING asks that release identity stay out of an ordinary PR.Checklist
npm testinarchify/.npm auditis the check that fails before this change and passes after.