Skip to content

build: patch critical next and dompurify advisories plus high-severity deps - #2190

Merged
paustint merged 1 commit into
mainfrom
chore/security-audit-2026-10-23
Oct 24, 2026
Merged

paustint merged 1 commit into
mainfrom
chore/security-audit-2026-10-23

Conversation

@paustint

@paustint paustint commented Oct 24, 2026 •

Copy link
Copy Markdown
Contributor

Clears all 3 critical pnpm audit findings and every high with a patch old enough to install. Audit goes from 39 vulnerabilities (3 critical, 15 high) to 12 (0 critical, 4 high).

Critical

  • next → 16.4.2 (root + @react-email/ui>next override), fixes the two unauthenticated RCEs GHSA-2464-fhr4-w9xw and GHSA-673q-mjm6-r5xr. 16.4.3 is held back by minimumReleaseAge.
  • dompurify override → ^3.4.17 (GHSA-cg2g-xh64-v4q7). monaco-editor pins dompurify exactly, so the override is the only lever.

High

  • Direct dependencies: zod 4.6.7, undici 8.12.3, electron 43.8.2, vite 8.3.4.
  • Lockfile refresh within existing ranges: undici 7.x/6.x (nx, electron, node-gyp), follow-redirects 1.16.1 and launch-editor 2.14.2 (docs dev server, apps-sfdx).

Still open

  • body-parser (1.x + 2.x) and multer: patches were released 10-22 and are still inside minimumReleaseAge. Bump to ^2.4.0 / ^2.5.0 after 10-25; body-parser 2.x and multer are on the API request path.
  • node-forge (via web-ext, dev tooling only): no patched release yet.

Verification

  • Typecheck passed for all 74 projects (no cache).
  • api:test passed (603/603).
  • landing, api, jetstream and docs build. Most landing/api/jetstream build tasks were Nx cache hits; the docs build was fresh.
  • Not done: the electron 43.8.2 patch bump hasn't been run in the desktop app.

Landing CSP
Next 16.4 defaults experimental.turbopackSharedRuntime on, which inlines a per-route bootstrap <script> into every exported landing page. The API serves landing under a nonce-only script-src, so the script was blocked and the page never hydrated (every E2E login setup failed). apps/landing/next.config.js turns it off, keeping the bootstrap in an external chunk instead of loosening the CSP. Verified: 0 inline executable scripts across all 39 exported pages, and pnpm e2e:local authentication/login-forms passes 19/19.

@socket-security

socket-security Bot commented Oct 24, 2026 •

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updatednext@​16.3.8 ⏵ 16.4.261 +1100 +7590 +19970
Updatedvite@​8.3.0 ⏵ 8.3.499 +1100 +2282 +198100
Updatedundici@​8.11.2 ⏵ 8.12.392100 +19100 +198100
Updatedzod@​4.6.5 ⏵ 4.6.7100100 +1610095100
Updatedelectron@​43.7.7 ⏵ 43.8.2100100 +16100 +198100

View full report

…y deps

next 16.4.1 fixes two unauthenticated RCEs (GHSA-2464-fhr4-w9xw,
GHSA-673q-mjm6-r5xr); monaco-editor pins dompurify exactly, so the override
is the only way onto 3.4.17. Also picks up patched zod, undici, electron,
vite, follow-redirects and launch-editor. body-parser and multer patches are
still inside minimumReleaseAge and node-forge has no fix yet.

Next 16.4 defaults turbopackSharedRuntime on, which inlines a bootstrap
script into every exported landing page; the API's nonce-only script-src
blocks it, so landing turns it off rather than loosening the CSP.
@paustint
paustint force-pushed the chore/security-audit-2026-10-23 branch from bc3b140 to a889b28 Compare October 24, 2026 02:49
@paustint
paustint merged commit 0dd8b58 into main Oct 24, 2026
15 checks passed
@paustint
paustint deleted the chore/security-audit-2026-10-23 branch October 24, 2026 15:28
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.

1 participant