fix(deps): patch critical/high CVEs in next, sharp, and transitive deps - #102
Merged
Merged
Conversation
acamarata
force-pushed
the
fix/dependency-audit-critical-cves
branch
from
September 11, 2026 08:25
4410c0f to
94dd5b5
Compare
pnpm audit found 2 critical (GHSA-p293-qw3h-jr36, GHSA-2xp9-vwfh-vxw4, both in next <16.3.3) and 6 high/9 moderate advisories, failing the Dependency Audit workflow on main and blocking Dependabot's grouped security-update PRs (security_update_not_possible for 8 deps whose fix required a workspace-root override, not a direct bump). Rebased onto main after #101 (Dependabot's own auto-merged next/sharp patch) landed mid-fix; this PR covers the remaining 8+ transitive advisories - add/tighten pnpm.overrides for transitive deps, each scoped to the existing major to avoid surprise jumps: @babel/core, @humanfs/node, @opentelemetry/core, decode-uri-component, linkify-it, js-yaml (v3 and v4 branches scoped separately), uuid - raise existing fast-xml-parser and protobufjs override floors to their patched versions - add a path-scoped override for webpack-bundle-analyzer>ws: the existing blanket "ws@>=8.0.0" override was not being honored for this transitive edge, leaving ws@8.20.0 resolved and vulnerable despite the override already being present in package.json Not fixed: stream-json (GHSA-528h-pc64-c93x, moderate, path minio>stream-json). minio@8.0.7 (latest) hard-depends on stream-json@^1.8.0 and requires 'stream-json/jsonl/Parser.js', a file path removed in the patched 3.5.0+ release. Overriding to 3.x broke the production build (verified locally and on this PR's CI). No fix is possible without minio releasing a stream-json 3.x- compatible version or replacing minio; left as-is pending an owner decision. Verified via `pnpm audit --json` against the regenerated lockfile: critical/high/moderate/low now 0/0/1/0 (was 2/6/9/1); the 1 remaining moderate is the stream-json finding above.
acamarata
force-pushed
the
fix/dependency-audit-critical-cves
branch
from
September 11, 2026 08:32
94dd5b5 to
629e6fd
Compare
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
Dependency Auditworkflow on main: GHSA-p293-qw3h-jr36 and GHSA-2xp9-vwfh-vxw4 (Next.js RCE,next <16.3.3). Note: these two plus the sharp/libheif high (GHSA-rgj7-g3m4-5g8c) were independently fixed by Dependabot's own auto-merged PR chore(deps): bump the npm_and_yarn group across 1 directory with 2 updates #101 while this PR was in flight; this branch has been rebased on top of that, so the diff here is now only the remaining transitive advisories Dependabot could not auto-resolve.pnpm.overridesat the workspace root for 8 transitive deps the native Dependabot Updates job reported assecurity_update_not_possible:@babel/core,@humanfs/node,@opentelemetry/core,decode-uri-component,fast-xml-parser,linkify-it,protobufjs,uuid, plusjs-yaml(flagged bypnpm audit, not gating but a safe win). Every override is scoped to stay within the dependency's existing major version to avoid unintended breaking bumps.webpack-bundle-analyzer>ws— the pre-existing blanketws@>=8.0.0override in this file was silently not being honored for that specific transitive edge, leavingws@8.20.0resolved (vulnerable) even though the override text was already present. Confirmed via the regenerated lockfile that onlyws@8.21.3remains anywhere in the tree now.Not fixed — needs an owner decision
stream-json(GHSA-528h-pc64-c93x, moderate, pathminio>stream-json, O(depth²) DoS on crafted nested JSON). I initially added an override to>=3.5.0(the patched floor) but this broke the production build:minio@8.0.7(the latest published minio) hard-depends onstream-json@^1.8.0and its code doesrequire('stream-json/jsonl/Parser.js'), a file path that was removed in the 3.x rewrite. CI caught this (Build,Build (production),Docker multi-platform checkall failed withModule not found: Can't resolve 'stream-json/jsonl/Parser.js'). There is no minio release compatible with stream-json 3.x, so this can't be patched without either minio updating or replacing minio. Left as-is; this is the one remaining moderate finding (not gating — theDependency Auditgate only fails on critical).Verification
pnpm audit --jsonon the regenerated lockfile: critical/high/moderate/low now 0/0/1/0 (was 2/6/9/1 before this branch existed).@babel/core@7.29.0,@opentelemetry/core@2.6.1/2.7.0,ws@8.20.0,js-yaml@3.15.1/4.3.1) is gone; only patched versions remain, each within its original major.web's Dependabot PR Gate (ghCLI missing onvars.CI_RUNNER, web#232). It does not —dependabot-review.ymlalready runs onubuntu-latest; the Dependabot Updates failures here were purely dependency-resolution (security_update_not_possible), not infra.next's optionalstyled-jsxpeer slot resolves@babel/core@8.0.5(pnpm's peer auto-install doesn't appear to honor the override for that specific optional-peer edge). Not a vulnerability (8.0.5 is past the patched floor) and inert — this repo has no babel config, so Next's default SWC compiler is used and styled-jsx's babel path is never invoked.Security Audit,Lint,TypeScript,Unit Tests,Jest Coverage,License Gate,gitleaksall green.Build/Build (production)/Docker multi-platform checkwere red on the stream-json override and are expected to go green now that it's reverted — re-verifying.