XS⚠️ ◾ Release v1.7.17 with package updates and brace-expansion security remediation - #827
Conversation
…ersions - eslint from 10.8.0 to 10.7.0 - globals from 17.8.0 to 17.7.0 - npm-check-updates from 23.0.0 to 22.2.9 chore: add overrides for minimatch to package.json
PR Metrics✔ Thanks for keeping your pull request small.
Metrics computed by PR Metrics. Add it to your Azure DevOps and GitHub PRs! |
There was a problem hiding this comment.
Pull request overview
Releases PR Metrics v1.7.17 with dependency updates and remediation for the brace-expansion denial-of-service vulnerability.
Changes:
- Updates release versions and documentation.
- Routes npm through the Microsoft package feed proxy.
- Overrides
minimatch, refreshes dependencies, licenses, lockfile, and distribution artifacts.
Reviewed changes
Copilot reviewed 11 out of 14 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
.github/release-publish-trigger.txt |
Triggers publishing v1.7.17. |
.github/release-version.json |
Advances the next release to 1.7.18. |
.npmrc |
Switches to the Microsoft package proxy. |
README.md |
Updates usage examples to v1.7.17. |
dist/index.mjs |
Refreshes the bundled action dependencies. |
dist/resources.resjson |
Updates bundled release branding. |
package-lock.json |
Locks updated and remediated dependencies. |
package.json |
Updates dependencies and adds the minimatch override. |
src/LICENSE.txt |
Refreshes third-party license notices. |
src/task/Strings/resources.resjson/en-US/resources.resjson |
Updates localized release branding. |
src/task/src/utilities/constants.ts |
Updates the source User-Agent version. |
src/task/task.json |
Updates Azure task metadata. |
src/task/task.loc.json |
Updates localized task metadata. |
src/vss-extension.json |
Updates extension version metadata. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 11 out of 14 changed files in this pull request and generated no new comments.
Suppressed comments (4)
src/LICENSE.txt:1514
- The third-party notice names
brace-expansion@5.0.8, while the committed lockfile resolves the package to 5.0.9. The release's legal inventory should identify the version actually shipped.
- brace-expansion@5.0.9
package.json:93
- The security section says the override is
^10.2.5and thatbrace-expansionresolves to 5.0.8, but this override and the lockfile resolveminimatch10.2.6 andbrace-expansion5.0.9. Update the security/package-feed notes so reviewers and release records describe the remediation actually being shipped.
"minimatch": "^10.2.6"
src/LICENSE.txt:661
- The third-party notice names
minimatch@10.2.5, but the committed lockfile resolvesnode_modules/minimatchto 10.2.6. Regenerate or correct the notice so the shipped dependency inventory is accurate.
This issue also appears on line 1514 of the same file.
- minimatch@10.2.6
package.json:80
- This upgrade contradicts the PR description, which says ESLint 10.7.0 (along with globals 17.7.0 and npm-check-updates 22.2.9) is deliberately held because the proxy lacks the newer releases. The lockfile now resolves the newer versions from the Microsoft proxy, so update the package-feed notes to describe the actual release contents.
This issue also appears on line 93 of the same file.
"eslint": "10.8.0",
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 11 out of 14 changed files in this pull request and generated 1 comment.
Suppressed comments (1)
package.json:83
- The Package feed section says the proxy is holding
eslintat 10.7.0 andglobalsat 17.7.0, but these lines (and the lockfile’s proxy URLs) show that 10.8.0 and 17.8.0 are available. Update the PR description, including its similar stale claims fornpm-check-updatesandbrace-expansion, so the release record matches the artifacts being reviewed.
"eslint": "10.8.0",
"fast-check": "4.9.0",
"generate-license-file": "4.2.1",
"globals": "17.8.0",
GHSA-mh99-v99m-4gvg patches each major line separately (1.1.17, 2.1.3, 3.0.3 and 5.0.8), so the versions the package updates already resolve (1.1.18, 2.1.4 and 5.0.9) are all patched without any override. Forcing 5.0.9 globally added no security benefit and broke the CommonJS contract for minimatch below 10, whose braceExpand calls the module export directly. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Release of PR Metrics v1.7.17. Beyond the routine autogenerated version and
package updates, this release includes security remediation for CVE-2026-14257
and a package feed change.
Security
Remediates CVE-2026-14257 / GHSA-mh99-v99m-4gvg (
brace-expansiondenial ofservice via unbounded expansion length, causing an uncatchable out-of-memory
process crash).
The advisory patches each major line independently rather than in a single
range:
< 1.1.17is fixed in 1.1.17,2.0.0to2.1.2in 2.1.3,3.0.0to3.0.2in 3.0.3, and4.0.0to5.0.7in 5.0.8.The package updates in this release are sufficient on their own. Every
brace-expansioncopy in the tree now sits above the fixed version for itsline, so no
overridesentry is required:minimatchbrace-expansionazure-pipelines-task-libreaddir-globmocha,archiver-utilseslintnpm auditreports nobrace-expansionfinding.Earlier revisions of this branch carried an override, first pinning
minimatchto^10.2.6and later forcingbrace-expansionto^5.0.9. Bothhave been dropped. Neither was necessary once the per-line fixed versions were
taken into account, and the global
brace-expansionpin was actively harmful:the CommonJS build of
brace-expansion5.x exports a namedexpandbindingrather than a callable module, so
minimatchbelow 10 throwsexpand is not a functionfrombraceExpand. Leaving eachminimatchmajoron its own patched
brace-expansionline keeps the CommonJS contract intact.Package feed
.npmrcto the Microsoft package feed proxy, in line with policy.dependencies previously held back are on their current releases:
eslint10.8.0,
globals17.8.0 andnpm-check-updates23.0.0.brace-expansionresolves to 5.0.9 beneatheslintrather than the 5.0.8 the proxy previously carried.
Verification
npm run test:fastpasses, with 100% statement, branch, function and linecoverage.
npm run lintpasses.dist/regenerated vianpm run build:package, andsrc/LICENSE.txtviagenerate-license-file. Both reproduce byte-identical output on repeat runs.minimatchin the tree was exercised against its resolvedbrace-expansionto confirmbraceExpand()still evaluates brace patterns,covering the 3.1.5, 5.1.9, 9.0.9 and 10.2.6 lines.
undiciresolves to 6.28.0, the highest release within the range itsconsumers request.
package-lock.jsonentry retains bothresolvedandintegrity.Notes
CLA can be signed, since the CLA is keyed to the pull request author.