Skip to content

fix(deps): resolve GHSA-73wf-gq98-2v4g in browserslist - #3909

Merged
tlowrimore-heroku merged 2 commits into
mainfrom
3pp/ghsa-73wf-gq98-2v4g
Sep 4, 2026
Merged

fix(deps): resolve GHSA-73wf-gq98-2v4g in browserslist#3909
tlowrimore-heroku merged 2 commits into
mainfrom
3pp/ghsa-73wf-gq98-2v4g

Conversation

@tlowrimore-heroku

@tlowrimore-heroku tlowrimore-heroku commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Summary

Bumps the transitive browserslist dependency from the vulnerable 4.28.2 to the patched 4.28.8, resolving GHSA-73wf-gq98-2v4g (high, A:H DoS via prototype-collision keys in an untrusted browserslist-stats.json).

Scope: development only. browserslist is reached solely through the ESLint tooling chain (eslint-config-oclifeslint-plugin-unicorncore-js-compatbrowserslist); npm ls browserslist --omit=dev is empty, so it is never invoked by the published CLI at runtime. Residual risk was limited to this repo's own dev/CI environment.

This is a lockfile-only change (git diff package.json is empty). Note the diff is broader than a single line, for two reasons — both expected:

  1. Required family bumps. browserslist@4.28.8 raised its own dependency floors (caniuse-lite ^1.0.30001809, node-releases ^2.0.53, electron-to-chromium ^1.5.402, update-browserslist-db ^1.3.0, baseline-browser-mapping ^2.11.12), all above the installed versions, so those five were pulled forward to satisfy 4.28.8's ranges. They are all part of the browserslist family and dev-only.
  2. Incidental npm dedup. Recomputing the tree let npm hoist a few redundant nested @oclif/plugin-commands/node_modules/* copies to already-present top-level versions (version-preserving; npm only dedupes within satisfying ranges). This is npm's canonical output for the update — no package.json or resolved-version change for @oclif/plugin-commands itself.

Type of Change

Patch Updates (patch semver update)

  • deps: Dependency upgrade

Testing

Notes:
Dev-only transitive dependency bump; not part of the shipped runtime.

Steps:

  1. npm ls browserslist --all shows browserslist@4.28.8 on every path (≥ 4.28.7, patched).
  2. git diff package.json is empty.
  3. npm run lint — 0 errors.
  4. npm test — 2340 passing, 0 failing.
  5. Passing CI suffices.

Related Issues

Dependabot alerts

- Bumped browserslist 4.28.2 -> 4.28.8 (patched) via lockfile refresh; browserslist is a dev-only transitive dep (eslint-config-oclif -> eslint-plugin-unicorn -> core-js-compat), not shipped in the CLI runtime.
- 4.28.8 raised its own dependency floors, so its required family deps were pulled forward: caniuse-lite, electron-to-chromium, node-releases, baseline-browser-mapping, update-browserslist-db. npm also incidentally deduped redundant nested @oclif/plugin-commands lockfile entries (version-preserving hoist).
- No package.json change.
- Closes Dependabot alerts: #396
@tlowrimore-heroku
tlowrimore-heroku marked this pull request as ready for review September 4, 2026 15:26
@tlowrimore-heroku
tlowrimore-heroku requested a review from a team as a code owner September 4, 2026 15:26

@sbosio sbosio left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@tlowrimore-heroku
tlowrimore-heroku merged commit fe3cd8b into main Sep 4, 2026
19 checks passed
@tlowrimore-heroku
tlowrimore-heroku deleted the 3pp/ghsa-73wf-gq98-2v4g branch September 4, 2026 17:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants