Repository navigation
fix: clear Dependabot alerts and the minimatch override leak (ENG-1116) - #44
Open
sidhommoez wants to merge 1 commit into
Open
sidhommoez wants to merge 1 commit into
sidhommoez wants to merge 1 commit into
Conversation
…ing (ENG-1116) Clears the 14 open Dependabot alerts plus the newer advisories npm audit already reports for the same packages and for handlebars. - fast-uri override ^3.1.8: runtime dependency through ajv. Clears the six open alerts plus GHSA-qw65-cvwx-89v3 and GHSA-hrr3-gc8f-f4qj. - js-yaml override ^4.3.2 and tar ^7.5.22. - Lock refresh, in range: brace-expansion 1.1.21 and 5.0.12, browserslist 4.29.3, baseline-browser-mapping 2.11.28, handlebars 4.7.10. - Replace the eslint-plugin-sonarjs > minimatch override with a minimatch@^10 key. npm 11 carries the scoped override into eslint through sonarjs's eslint peer dependency, drops eslint's own minimatch 3.x from the lock, and npm 10's `npm ci` then rejects the lock. That is why Dependabot's fast-uri PR failed every CI job. The range key only matches minimatch 10.x requests, so npm 10, 11 and 12 all leave this lock unchanged. Not fixed: braces GHSA-vfj7-8cjw-p6xm has no patched release. It is reached through jest 29 and ts-prune, both dev-only.
sidhommoez
marked this pull request as ready for review
October 11, 2026 11:46
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
The repo has 14 open Dependabot alerts. Six are
fast-uri, a runtime dependency throughajv, and the blocking production audit in CI now fails on it, somainitself no longer passes the Security Audit job. Dependabot's own fast-uri bump, xarf/xarf-javascript#43, fails every job because its lockfile does not satisfynpm cion CI's npm 10.8.2.The cause of that failure is the scoped
eslint-plugin-sonarjs > minimatchoverride. npm 11 carries it intoeslintthrough sonarjs'seslintpeer dependency. It then drops eslint's ownminimatch3.x entries from the lock, and npm 10'snpm cireports them as missing. This PR replaces that override with aminimatch@^10key, which only matches requests for minimatch 10.x. It also raises the vulnerable packages to their patched versions with a targeted lock update.The same versions also clear advisories that have no open alert here. Nine are the dev-only alerts Dependabot auto-dismissed, for tar, brace-expansion and browserslist. The others were published after 2026-09-13, the date of the newest alert in this repo. They are two more for fast-uri, three more for brace-expansion, and three for handlebars, two of them critical, published 2026-10-08.
Not done: braces GHSA-vfj7-8cjw-p6xm has no patched release. It comes in through jest 29 and
ts-prune, both dev-only, and has no Dependabot alert. All 33 entries left in the fullnpm audittrace to it, and that CI step is informational. Removing it would need jest 30 and droppingts-prune, which is unmaintained. That is a separate decision.Changes
package.jsonoverrides:fast-uri^3.1.2→^3.1.8js-yaml^4.2.0→^4.3.2eslint-plugin-sonarjs > minimatch ^10.2.3→"minimatch@^10": "^10.2.6". sonarjs 3.x still pins the vulnerableminimatch@10.1.2, so the override is still needed.package.jsondevDependencies:tar^7.5.2→^7.5.22.package-lock.json: a targeted update, so only these packages move.scripts/fetch-schemas.js)browserslist's data packages also moved with it: caniuse-lite, electron-to-chromium, node-releases and update-browserslist-db.
Test Plan
npm ci,lint,format:check,typecheck,build,npm audit --omit=dev --audit-level=highandnpm test -- --coverageall pass.npm ciandnpm test -- --coveragepass.main.main: everything passes except the blocking production audit, which fails on fast-uri.npm install --package-lock-onlyleaves the new lock unchanged under npm 10.8.2, 10.9.8, 11.11.1 and 12.2.0. So does a Dependabot-stylenpm update fast-uriunder npm 11.main. npm 11 regenerates the lock after the fast-uri bump alone, thennpm cion npm 10.8.2 fails withMissing: minimatch@3.1.5 from lock file.semveragainst every copy of its package in the new lock. None is still in a vulnerable range. Onmain's lock, all 14 are.ajvmakes during the full test suite, 32,272 calls of which 151 are unique. I replayed each one against 3.1.2 and 3.1.8. The results are identical.npm run fetch-schemas && npm run generate-schemaswith tar 7.5.22 regeneratessrc/schemas.generated.tsbyte for byte.npm ciwith npm 11.11.1 now succeeds. Onmainit fails.Risk & Rollback
Only this repo's dev toolchain and lockfile change.
overridesand devDependencies are not applied when consumers install@xarf/xarf, and its publisheddependenciesare unchanged. Consumers resolve fast-uri through ajv's^3.0.1, so a fresh install already gets 3.1.8. No release is needed for the alerts to close. Rollback isgit revert.Linked Issues
Fixes ENG-1116
Supersedes xarf/xarf-javascript#43