fix(security): pin browserslist to 4.28.8 - #42
Merged
Merged
Conversation
pnpm audit --audit-level high fails on two high-severity advisories against browserslist <=4.28.6, reached through apps/web > autoprefixer: - GHSA-c83g-rgw3-j3cx: unbounded memory growth (no cache eviction) via distinct query results, leading to eventual OOM - GHSA-73wf-gq98-2v4g: uncaught crash / prototype write via untrusted browserslist-stats.json custom stats (normalizeStats) Both are patched in >=4.28.7. Adds a pnpm override pinning 4.28.8, matching how esbuild, hono, ip-address, nanoid, postcss, sharp and shell-quote are already pinned, and regenerates the lockfile. The lockfile change is confined to the browserslist graph: browserslist 4.28.2 -> 4.28.8, update-browserslist-db 1.2.3 -> 1.3.1, and its data packages (caniuse-lite, electron-to-chromium, node-releases, baseline-browser-mapping). Nothing else moved. Verified: pnpm audit --audit-level high now exits 0 (2 high -> 0 high; the remaining low and moderate findings are below the CI threshold and unchanged), and pnpm install --frozen-lockfile resolves cleanly. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016i4eitqukrs4RQwtvkTPU2
vins13pattar
pushed a commit
that referenced
this pull request
Sep 3, 2026
Brings in the browserslist advisory pin (#42) so dependency-audit runs against the fixed lockfile. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016i4eitqukrs4RQwtvkTPU2
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
pnpm audit --audit-level highis failing onmainand on every open PR, on two newly-published high advisories againstbrowserslist:<=4.28.6>=4.28.7browserslist-stats.jsoncustom stats (normalizeStats)<=4.28.6>=4.28.7Both are reached through a single path:
apps/web > autoprefixer@10.5.0 > browserslist@4.28.2. It is a build-time dependency —autoprefixeruses it to decide which CSS prefixes to emit — so neither advisory is reachable at runtime in a deployed service. The check is still red, and it gates every PR.This adds a pnpm override pinning
4.28.8(latest published, satisfies>=4.28.7), matching howesbuild,hono,ip-address,nanoid,postcss,sharpandshell-quoteare already pinned in this repo:"overrides": { + "browserslist": "4.28.8", "esbuild": "0.28.1",The lockfile change stays inside the browserslist graph —
browserslist4.28.2 → 4.28.8,update-browserslist-db1.2.3 → 1.3.1, plus its data packages (caniuse-lite,electron-to-chromium,node-releases,baseline-browser-mapping). Nothing else moved.Found while opening #41 (a docs-only change), whose
dependency-auditfailed for this reason. That PR is blocked until this lands.Security and privacy
browserslistis a build-time input toautoprefixer's CSS prefixing and touches no request path, database identity, or validation logic. This change closes two advisories and opens none.Verification
Run locally against this branch:
pnpm audit --audit-level high— exits 0. Before:1 low | 1 moderate | 2 high(exit 1). After:1 low | 1 moderate(exit 0). The remaining low and moderate findings are below the CI threshold and are unchanged by this PR.pnpm install --frozen-lockfile— resolves cleanly, sopackage.jsonandpnpm-lock.yamlagree.pnpm typecheck— not run locally; no TypeScript changed. Covered by theverifyjob.pnpm test— not run locally; no application code changed. Covered by theverifyjob.pnpm build— not run locally. This is the one worth a reviewer's attention: a browserslist bump can in principle change autoprefixer's emitted CSS. It is a patch-level bump within the same minor, so I expect no visible change, but theverifyjob's production build is the real check here rather than anything I ran.🤖 Generated with Claude Code
https://claude.ai/code/session_016i4eitqukrs4RQwtvkTPU2
Generated by Claude Code