Skip to content

fix(security): next 16.4.1 for GHSA-2464-fhr4-w9xw and GHSA-673q-mjm6-r5xr - #746

Open
aldoruizluna wants to merge 2 commits into
mainfrom
security/next-ghsa-2464-673q
Open

aldoruizluna wants to merge 2 commits into
mainfrom
security/next-ghsa-2464-673q

Conversation

@aldoruizluna

@aldoruizluna aldoruizluna commented Oct 22, 2026 •

Copy link
Copy Markdown
Collaborator

Why

Two critical Next.js advisories published 2026-10-22:

What

Workspace next sharp
apps/admin, apps/dashboard, apps/docs, apps/website 16.3.8 → 16.4.1 0.35.5 (unchanged)
packages/nextjs-sdk (devDependency) 16.3.8 → 16.4.1 –
packages/monitoring (peer floor) >=16.3.8 → >=16.4.1 –
examples/nextjs-app (not in the workspace, no lockfile) 16.3.8 → 16.4.1 –
root pnpm.overrides.next 16.3.8 → 16.4.1 sharp: 0.35.5 override unchanged
  • @next/mdx ^16.3.8 → ^16.4.1 and @next/eslint-plugin-next ^16.3.8 → ^16.4.1 (both resolve to 16.4.2, the newest patch of the caret range).
  • examples/nextjs-app keeps eslint-config-next@14.1.0 (it is not on 16.x; left alone).
  • Lockfile regenerated with the pinned pnpm@10.25.0 install --lockfile-only --ignore-scripts. That relock also dropped 39 unrelated libc: lines on @rollup/rollup-linux-* entries; they were restored from main so the diff is only next / @next/*. Lockfile diff: 148 lines (74+/74-). Every resolved sharp is 0.35.5.

Second commit (same-day advisories, CI gate): the first run's PR Quality "Security Scan" (pnpm audit --audit-level=critical) was red on three advisories published 2026-10-21/22, not on the next bump. These are now fixed in range:

  • storybook / @storybook/core 8.6.17 → 8.6.19 (GHSA-f2ph-cmg5-wxc8): root pnpm.overrides.storybook 8.6.17 → 8.6.19.
  • @sentry/nextjs 10.51.0 → 10.76.2 (GHSA-mchm-gjx6-7h55): packages/monitoring ^10.51.0 → ^10.75.2.
  • dompurify 3.4.16 → 3.4.17 (GHSA-cg2g-xh64-v4q7): root pnpm.overrides.dompurify >=3.4.16 → >=3.4.17.
  • Lockfile-only relock (pnpm 10.25.0; dropped libc: lines restored): +337/-1067, mostly @sentry/* / @opentelemetry/* and their removed old trees. pnpm audit --audit-level=critical → 0 critical.

Exposure (before this PR)

  • Image optimizer: live on janua.dev, docs.janua.dev, app.janua.dev, admin.janua.dev (/_next/image → 400 at 2026-10-22). images.unoptimized not set; remotePatterns set on admin/docs/website; dangerouslyAllowSVG not set.
  • use cache / cacheComponents: not used.
  • Runtime base image: node:22-alpine (musl) for all four frontends, which is outside the glibc condition of GHSA-2464, but the version is still in the advisory range.

Merging deploys to production

staging-only: docker-publish.yml (push to main, paths apps/**, packages/**, pnpm-lock.yaml) rebuilds the changed services and commits their digests to k8s/overlays/staging/kustomization.yaml; Argo syncs janua-staging.

Owner attention: since #739 (10-19), promote-to-prod.yml only accepts component: api and refuses every other component ("Only api is deployed by the isolated staging profile"). The production digests of janua-admin, janua-dashboard, janua-docs and janua-website were last changed on 10-14 (f07ec28, still next 16.3.8). So this PR has no workflow path that carries the fix to the four production frontends. To ship it, the owner needs to move those four digests in k8s/overlays/production/kustomization.yaml to the new staging-built digests (or re-enable frontend promotion), then sync (sync-prod-gitops.yml / Argo).

Verification

  • pnpm install --frozen-lockfile --ignore-scripts (pnpm 10.25.0) ✅
  • pnpm audit --prod: next advisories before 3 (GHSA-2464-fhr4-w9xw, GHSA-673q-mjm6-r5xr, GHSA-p3m5-59mp-jv5r) → after 0; sharp 0 → 0.
  • Typecheck and next build were not run locally: the build host ran out of disk during this sweep, so this PR relies on CI for build and tests.
  • CI, first run: "Security Scan" red on the advisories above (fixed by the second commit). "API Tests (Python)" hit its 25-min job timeout; it passed on main's last runs and is unrelated to this frontend bump. Second run (9dad651): 48 pass. "Security Scan" is now green. Two checks are red, neither caused by this diff:
    • API Tests (Python) was cancelled at its 25-min job limit with 6,025 tests passed and 0 failed, at 95% (runner madfam-runners-blue, which is saturated tonight). On main it takes 10–15 min (runs 39549517257, 39547872088). This PR changes no Python. A rerun once the runner pool is free should clear it.
    • Trivy (code scanning) lists alerts for fflate 0.6.10, braces 3.0.3, ip-address 10.7.2, body-parser 1.20.4 and @simplewebauthn/server 9.0.3. The versions are identical on main and this branch, and CVE-2026-45820, CVE-2026-93687, CVE-2026-12590 and GHSA-6hxq-p678-4hr2 are already open code-scanning alerts on main. They surface here only because the lockfile diff is large ("Alerts not introduced by this pull request might have been detected because the code changes were too large").

Prepare-only: not merged. The owner merges.

🤖 Generated with Claude Code

…-r5xr

- next 16.3.8 -> 16.4.1 in apps/admin, apps/dashboard, apps/docs,
  apps/website, packages/nextjs-sdk (devDependency), examples/nextjs-app
  and the root pnpm.overrides pin
- @next/mdx ^16.3.8 -> ^16.4.1 (resolves 16.4.2)
- @next/eslint-plugin-next ^16.3.8 -> ^16.4.1 (resolves 16.4.2)
- packages/monitoring peer floor next >=16.3.8 -> >=16.4.1
- sharp already 0.35.5 everywhere (GHSA-wq5f-xc86-pv6w)

Lockfile regenerated with pnpm 10.25.0 --lockfile-only; 39 unrelated
rollup libc: lines dropped by the relock were restored from main.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

📚 Documentation checks found issues. Please review the maintenance script output.

@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Code quality checks found issues. Please review the maintenance script output.

@github-actions

Copy link
Copy Markdown
Contributor

Security Scan Summary

Date: Thu Oct 22 22:04:08 UTC 2026
Commit: 6714ac5

Scan Results

  • CodeQL: success
  • Python Security: success
  • JavaScript Security: success
  • Secrets Scan: success
  • Container Scan: success
  • DAST ZAP: skipped

@github-actions

Copy link
Copy Markdown
Contributor

🎭 Playwright E2E Test Results

  • Total: 11
  • Passed: 11 ✅
  • Failed: 0 ❌
  • Flaky: 0 ⚠️
  • Skipped: 0 ⏭️

Full Report

The PR Quality "Security Scan" (pnpm audit --audit-level=critical) went
red on three advisories published 2026-10-21/22, not on the next bump:
- storybook / @storybook/core 8.6.17 -> 8.6.19 (GHSA-f2ph-cmg5-wxc8):
  root pnpm.overrides storybook 8.6.17 -> 8.6.19
- @sentry/nextjs 10.51.0 -> 10.76.2 (GHSA-mchm-gjx6-7h55):
  packages/monitoring ^10.51.0 -> ^10.75.2
- dompurify 3.4.16 -> 3.4.17 (GHSA-cg2g-xh64-v4q7):
  root pnpm.overrides dompurify >=3.4.16 -> >=3.4.17

Lockfile-only relock with pnpm 10.25.0; dropped rollup libc: lines on
surviving entries restored. `pnpm audit --audit-level=critical` now
reports 0 critical.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

📚 Documentation checks found issues. Please review the maintenance script output.

@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Code quality checks found issues. Please review the maintenance script output.

@github-actions

Copy link
Copy Markdown
Contributor

Security Scan Summary

Date: Thu Oct 22 23:31:05 UTC 2026
Commit: 336279c

Scan Results

  • CodeQL: success
  • Python Security: success
  • JavaScript Security: success
  • Secrets Scan: success
  • Container Scan: success
  • DAST ZAP: skipped

@github-actions

Copy link
Copy Markdown
Contributor

🎭 Playwright E2E Test Results

  • Total: 11
  • Passed: 11 ✅
  • Failed: 0 ❌
  • Flaky: 0 ⚠️
  • Skipped: 0 ⏭️

Full Report

This branch has not been deployed

No deployments
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