LTS-4979/LTS-5093: bump fast-uri + js-yaml override floors (security) - #21
Merged
Merged
Conversation
fast-uri: 3.1.5 -> ^3.1.6 (was itself already inside the vulnerable range for GHSA-5jgf-p345-68v8 - host confusion via skipped IDN canonicalization on scheme-relative references; also clears GHSA-f65p-4m7j-42xc and GHSA-fph4-wmhf-6fwf, both patched at 3.1.6). Switched from an exact pin to a caret range so this override doesn't age into the next vulnerable version the way 3.1.5 (an exact pin from PR #19/#20) did. js-yaml: two installed majors, both one patch behind the real floor for GHSA-2883-xcg3-v3hh (maxTotalMergeKeys doesn't count empty merge-source mappings, so CPU use is unbounded despite the limit): js-yaml@3: 3.15.1 -> ^3.15.2 js-yaml@4: 4.3.1 -> ^4.3.2 Kept the version-scoped override keys (js-yaml-cloudformation-schema pulls a separate 3.x copy via @kubernetes/client-node's dependents) so the 3.x consumer isn't forced onto 4.x. Verified against the real installed tree, not just the lockfile: `npm ci` clean install + `npm ls js-yaml --all` / `npm ls fast-uri --all` confirm js-yaml@3.15.2 + js-yaml@4.3.2 (was 3.15.1/4.3.1) and fast-uri@3.1.8 (was 3.1.5, resolved by the caret range). `npm audit --json` no longer lists js-yaml or fast-uri. Both target versions clear this repo's .npmrc min-release-age=7 cooldown (published 2026-08-23/26, comfortably >7 days before today). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Central YAML (base), Organization UI (inherited), Workspace UI (inherited) Review profile: ASSERTIVE Plan: Enterprise Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
Open
MohitSinghBS
approved these changes
Sep 22, 2026
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.
Summary
Fixes two open security tickets on this sample repo's
overridesblock, whose entries had aged one patch behind the real advisory floors:fast-urihost confusion via skipped IDN canonicalization on scheme-relative references (an incomplete-fix variant of an earlier CVE). Also clearsGHSA-f65p-4m7j-42xc(SSRF via malformed IPv6 normalization) andGHSA-fph4-wmhf-6fwf(SSRF via repeated hostname percent-decoding) — all three share the same3.1.6floor.fast-uri:3.1.5→^3.1.6js-yamlmaxTotalMergeKeysdoesn't count empty merge-source mappings, so a small YAML document can forceO(N*K)CPU work despite the configured merge-key limit.js-yaml@3:3.15.1→^3.15.2js-yaml@4:4.3.1→^4.3.2Both installed majors of
js-yamlwere vulnerable (kept the existing version-scoped override keys —js-yaml-cloudformation-schemapulls a separate 3.x copy via@kubernetes/client-node's dependents, so a bare override would force it onto 4.x and breaksafeLoad). Switched all three entries from exact pins to caret ranges — the previous exact pins (fast-uri 3.1.5,js-yaml 3.15.1/4.3.1, landed in #19/#20) are exactly how they aged into newly-disclosed vulnerable ranges; a caret range self-heals within the major as patches ship.Why fix devDependencies
Every dependency in this repo is a
devDependency— there are no runtime deps. That's not a reason to dismiss these as tolerable risk: this is a public, customer-facing repo that customersnpm installdirectly as a Playwright load-testing quickstart. Consistent with prior fixes in this repo family (e.g.ip-addressSSRF,brace-expansionDoS), the standing call here is to raise a real fix PR viaoverrides, not dismiss on a dev-only technicality.Supersedes #6
Open dependabot PR #6 (
Bump js-yaml, branchdependabot/npm_and_yarn/multi-75e6bc5210, opened 2025-11-18) targetsjs-yaml4.1.1/3.14.2— both below the4.3.2/3.15.2floor this PR ships, so it would not have closed LTS-5093 even if merged (it also carries an unrelated@playwright/test/browserstack-node-sdkdowngrade to stale pins from before the currentoverridesblock existed). This PR supersedes it; left #6 open rather than force-closing someone else's PR — dependabot should auto-close it once this merges, or it can be closed manually.Verification
npm ciclean install (node_modulesremoved first) from the updated lockfile — succeeds.npm ls js-yaml --all→js-yaml@4.3.2(was4.3.1) andjs-yaml@3.15.2(was3.15.1), confirming the real installed tree, not just the lockfile.npm ls fast-uri --all→fast-uri@3.1.8(was3.1.5), resolved by the new caret range.npm audit --json→js-yamlandfast-urino longer appear invulnerabilities..npmrccarriesmin-release-age=7:fast-uri@3.1.6published 2026-08-23,js-yaml@3.15.2/4.3.2published 2026-08-26 — all comfortably clear of the 7-day cooldown as of today (2026-09-21).Scope
Left the other open dependabot PRs (lodash, tar-fs, qs, tmp, jws, playwright) untouched — not in scope for LTS-4979/LTS-5093.
Refs: LTS-4979, LTS-5093
🤖 Generated with Claude Code