Repository navigation
fix(deps): clear three critical npm advisories blocking every saas PR - #1229
antoinetoussaint-byte wants to merge 1 commit into
Conversation
`Codefly supply chain` has been red on main since 2026-10-22, which blocks
every pull request in this repo: the gate is a required check and its
`Enforce first-party vulnerability gate` step runs
`npm audit --omit=dev --audit-level=high` over the frontend and marketing
services. Three critical advisories were reported, all with patched releases:
- next 16.3.8: unauthenticated RCE in the Image Optimization API via SVG
(GHSA-2464-fhr4-w9xw), DoS in App Router Server Actions
(GHSA-p3m5-59mp-jv5r), and RCE in `use cache` functions returning typed
arrays (GHSA-673q-mjm6-r5xr). Patched in 16.4.1 for the 16.x line.
- @sentry/nextjs 10.73.0: middleware bypass when using a tunnel route
(GHSA-mchm-gjx6-7h55). Patched in 10.75.2 for the 10.x line.
- dompurify 3.4.16: SAFE_FOR_TEMPLATES bypass (GHSA-cg2g-xh64-v4q7),
IN_PLACE leaving a detached subtree's handlers armed
(GHSA-mrv2-3pqr-j5jr), and the SMIL attributeName=href guard skipped
under application/xhtml+xml (GHSA-c6gr-qvv4-5v3f). Patched in 3.4.17.
Resolved to next 16.4.3, @sentry/nextjs 10.76.2 and dompurify 3.4.17 — the
marketing service carries next directly and needed the same bump.
Lockfiles only. Every existing range already admits its patched version
(`next: ^16.2.12`, `@sentry/nextjs: ^10.50.0`, and dompurify transitively
through `swagger-ui-react: ^3.4.13`), so no manifest edit is needed and a
regenerated lock can only resolve forward. The gate's Go half
(`codefly audit service accounts|auth-gateway --fail-on-vuln`) was already
reporting CLEAN with no findings.
Classification: fix, at the place that owns the dependency.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
Closing as superseded, not merged. While this was open, #1027 ("remove telemetry service and use the operations intake") landed on main carrying the same remediation in its own dependency changes. main now pins I rebuilt this branch on top of main — took main's lockfiles for the conflicted paths and re-derived
For the record, since the diagnosis outlived this PR: the gate was failing on three criticals in |
Summary
Codefly supply chainhas been red on main since 2026-10-22, and it is a requiredcheck in the repo's active ruleset ("main protection"). So this blocks every PR
here, not just one — #1209 and #1210 are both sitting behind it.
The gate's
Enforce first-party vulnerability gatestep runsnpm audit --omit=dev --audit-level=highover the frontend and marketing services,and reported three critical advisories, all with patched releases on the
installed major line:
nextuse cachereturning typed arrays (GHSA-673q-mjm6-r5xr)@sentry/nextjsdompurifyattributeName=hrefguard skipped underapplication/xhtml+xml(GHSA-c6gr-qvv4-5v3f)Each patched version was read from the advisory's own
vulnerabilities[]entry forthe installed major line, not from the first range the API returns — the first
entry for
nextis the 15.x line (patched 15.5.28), which would have been the wrongtarget.
Resolved to next 16.4.3, @sentry/nextjs 10.76.2, dompurify 3.4.17.
marketingcarriesnextdirectly and needed the same bump.Why lockfiles only
Every existing range already admits its patched version —
next: ^16.2.12,@sentry/nextjs: ^10.50.0, anddompurifytransitively throughswagger-ui-react: ^3.4.13— so no manifest edit is needed, and a regenerated lockcan only resolve forward. Done with
npm update <pkgs> --package-lock-only, so thediff is two lockfiles and nothing else.
Verification
Both services, with the gate's exact command:
marketing was proven red first (
1 critical severity vulnerability, GHSA-673q-mjm6-r5xr)and green after, so the bump is doing the work rather than the audit being skipped.
The gate's Go half —
codefly audit service accounts|auth-gateway --fail-on-vuln—was already
state: CLEAN ✓ no findingsand is untouched.Not verified locally: no
npm ci, typecheck, or build was run —next 16.3.8 → 16.4.3is a real minor bump within the existing range, andCodefly build/Codefly qualityare required checks that exercise it here. If either goes red, thatis this PR's problem to fix, not a flake.
Nothing was suppressed, allowlisted or marked reviewed; the gate fails closed and
stays that way.
Classification: fix, at the place that owns the dependency.
🤖 Generated with Claude Code