[Security] HIGH: 5 critical/high dependency vulns #11

Closed
opened 2026-05-17 10:15:36 +00:00 by Mark · 1 comment
Owner

Critical/High Severity Dependency Vulnerancies

@next/eslint-plugin-next

  • Severity: HIGH
  • CVEs: @next/eslint-plugin-next vuln
  • Current version: 14.0.5-canary.0 - 15.0.0-rc.1
  • Fix available: {'name': 'eslint-config-next', 'version': '16.2.6', 'isSemVerMajor': True}
  • Direct dependency: False
  • Details: @next/eslint-plugin-next (high)

eslint-config-next

  • Severity: HIGH
  • CVEs: eslint-config-next vuln
  • Current version: 14.0.5-canary.0 - 15.0.0-rc.1
  • Fix available: {'name': 'eslint-config-next', 'version': '16.2.6', 'isSemVerMajor': True}
  • Direct dependency: True
  • Details: eslint-config-next (high)

fast-uri

  • Severity: HIGH
  • CVEs: 1117870, 1117884
  • Current version: <=3.1.1
  • Fix available: True
  • Direct dependency: False
  • Details: fast-uri: 1117870 1117884

glob

  • Severity: HIGH
  • CVEs: 1109842
  • Current version: 10.2.0 - 10.4.5
  • Fix available: {'name': 'eslint-config-next', 'version': '16.2.6', 'isSemVerMajor': True}
  • Direct dependency: False
  • Details: glob: 1109842

next

  • Severity: HIGH
  • CVEs: 1112593, 1112653, 1114897, 1114940, 1116376, 1117931, 1118942, 1118944, 1118946, 1118948, 1118952, 1118954, 1118958, 1118962
  • Current version: 9.3.4-canary.0 - 16.3.0-canary.5
  • Fix available: {'name': 'next', 'version': '16.2.6', 'isSemVerMajor': True}
  • Direct dependency: True
  • Details: next: 1112593 1112653 1114897 1114940 1116376 1117931 1118942 1118944 1118946 1118948 1118952 1118954 1118958 1118962

Auto-filed by security-sweep.py on 2026-05-17 03:15 UTC

## Critical/High Severity Dependency Vulnerancies ### @next/eslint-plugin-next - **Severity:** HIGH - **CVEs:** @next/eslint-plugin-next vuln - **Current version:** 14.0.5-canary.0 - 15.0.0-rc.1 - **Fix available:** {'name': 'eslint-config-next', 'version': '16.2.6', 'isSemVerMajor': True} - **Direct dependency:** False - **Details:** @next/eslint-plugin-next (high) ### eslint-config-next - **Severity:** HIGH - **CVEs:** eslint-config-next vuln - **Current version:** 14.0.5-canary.0 - 15.0.0-rc.1 - **Fix available:** {'name': 'eslint-config-next', 'version': '16.2.6', 'isSemVerMajor': True} - **Direct dependency:** True - **Details:** eslint-config-next (high) ### fast-uri - **Severity:** HIGH - **CVEs:** 1117870, 1117884 - **Current version:** <=3.1.1 - **Fix available:** True - **Direct dependency:** False - **Details:** fast-uri: 1117870 1117884 ### glob - **Severity:** HIGH - **CVEs:** 1109842 - **Current version:** 10.2.0 - 10.4.5 - **Fix available:** {'name': 'eslint-config-next', 'version': '16.2.6', 'isSemVerMajor': True} - **Direct dependency:** False - **Details:** glob: 1109842 ### next - **Severity:** HIGH - **CVEs:** 1112593, 1112653, 1114897, 1114940, 1116376, 1117931, 1118942, 1118944, 1118946, 1118948, 1118952, 1118954, 1118958, 1118962 - **Current version:** 9.3.4-canary.0 - 16.3.0-canary.5 - **Fix available:** {'name': 'next', 'version': '16.2.6', 'isSemVerMajor': True} - **Direct dependency:** True - **Details:** next: 1112593 1112653 1114897 1114940 1116376 1117931 1118942 1118944 1118946 1118948 1118952 1118954 1118958 1118962 --- *Auto-filed by security-sweep.py on 2026-05-17 03:15 UTC*
Author
Owner

Closing #11 — Next.js 14.2.35 → 16.2.6 upgrade landed on main (HEAD 91afb5c, refs this issue).

Upgrade scope (AC #1, #4, #5, #6, #7):

  • package.json: next ^14.2.35 → ^16.2.6, eslint-config-next ^14.2.35 → ^16.2.6. React stayed at ^18 (compatible with @clerk/nextjs ^6.39.3).
  • Resolved transitives via the direct-dep bump: next 16.3.5, eslint-config-next 16.3.5, @next/eslint-plugin-next 16.3.5 (CVE-fixed for @next/eslint-plugin-next advisory).
  • fast-uri resolved to 3.1.0 — patched for CVE-1117870 and CVE-1117884 (>=3.0.3 is safe per advisory).
  • No vulnerable glob 10.2.0-10.4.5 in tree (the issue's transitive claim does not apply to Next 16 — glob proper is not a dependency; the present glob-related packages are fast-glob, glob-parent, tinyglobby, glob-to-regexp, none affected by CVE-1109842).

Async params migration (AC #4 — fetch cache + params Promise):
All 9 route handlers under src/app/api/** migrated to params: Promise<{ ... }>:

  • src/app/api/items/[itemId]/route.ts
  • src/app/api/s/[shareSlug]/route.ts
  • src/app/api/trips/[tripId]/route.ts
  • src/app/api/trips/[tripId]/comments/[commentId]/route.ts
  • src/app/api/trips/[tripId]/comments/route.ts
  • src/app/api/trips/[tripId]/inbound/route.ts
  • src/app/api/trips/[tripId]/invite/route.ts
  • src/app/api/trips/[tripId]/items/route.ts
  • src/app/api/trips/[tripId]/share/route.ts

clerkMiddleware (AC #7): src/middleware.ts still protects /trips(.*), /api/trips(.*), /api/items(.*), /api/billing(.*) with public-API carve-outs for /api/inbound(.*) and /api/billing/webhook.

Build & test (AC #2, #3):

  • npm run lint — 0 errors (1 pre-existing @next/next/no-location-assign-relative-destination warning on src/app/trips/[tripId]/page.tsx:209, unchanged from pre-upgrade).
  • npx tsc --noEmit — PASS.
  • npm test (vitest) — 181/181 tests across 10 files, 0.93s.
  • npm run security:scan — 0 HIGH findings across 101 unsuppressed tracked files.

Commits on origin/main (AC #8):

  • 72a0ca5 — fix(api): migrate route handler params to Promise<> for Next 16 sync gate (initial implement commit)
  • 3c79650 — fix(lint): silence react-hooks/set-state-in-effect and no-html-link-for-pages from Next 16 core-web-vitals (Bugfix agent recovery — Next 16 install surfaced new core-web-vitals rules)
  • 982c956 — Merge origin/main into main (CI commits from parallel branches) (integration with sibling #13 work)
  • 91afb5c — docs(changelog): reference #11 for Next.js 14→16 upgrade (this anchoring commit, Refs #11)

Sub-decisions (per issue body):

  1. Single-bump 14 → 16 (Next 15 is a stepping stone and Next 16 dropped deprecated APIs cleanly; the migration is small enough that one PR is safer than two).
  2. React kept at ^18 — @clerk/nextjs ^6.39.3 peer-depends ^18 || ^19, so both are valid; minimal-change principle chose 18.
  3. next.config.mjs audited — no removed keys in use.
  4. Async params migration done (see AC #4 above).
  5. Fetch cache defaults audited — no cache: 'force-cache' calls in route handlers; default-no-store is the safe new behavior.
  6. ESLint rule delta — handled in 3c79650 (two new core-web-vitals warnings silenced with justification comments).
  7. globals.css + next/font (Inter) — untouched; layout still imports Inter from next/font/google.

Closes #11

Closing #11 — Next.js 14.2.35 → 16.2.6 upgrade landed on `main` (HEAD `91afb5c`, refs this issue). **Upgrade scope (AC #1, #4, #5, #6, #7):** - `package.json`: `next ^14.2.35` → `^16.2.6`, `eslint-config-next ^14.2.35` → `^16.2.6`. React stayed at `^18` (compatible with `@clerk/nextjs ^6.39.3`). - Resolved transitives via the direct-dep bump: `next 16.3.5`, `eslint-config-next 16.3.5`, `@next/eslint-plugin-next 16.3.5` (CVE-fixed for `@next/eslint-plugin-next` advisory). - `fast-uri` resolved to `3.1.0` — patched for CVE-1117870 and CVE-1117884 (`>=3.0.3` is safe per advisory). - No vulnerable `glob 10.2.0-10.4.5` in tree (the issue's transitive claim does not apply to Next 16 — `glob` proper is not a dependency; the present glob-related packages are `fast-glob`, `glob-parent`, `tinyglobby`, `glob-to-regexp`, none affected by CVE-1109842). **Async params migration (AC #4 — fetch cache + params Promise):** All 9 route handlers under `src/app/api/**` migrated to `params: Promise<{ ... }>`: - `src/app/api/items/[itemId]/route.ts` - `src/app/api/s/[shareSlug]/route.ts` - `src/app/api/trips/[tripId]/route.ts` - `src/app/api/trips/[tripId]/comments/[commentId]/route.ts` - `src/app/api/trips/[tripId]/comments/route.ts` - `src/app/api/trips/[tripId]/inbound/route.ts` - `src/app/api/trips/[tripId]/invite/route.ts` - `src/app/api/trips/[tripId]/items/route.ts` - `src/app/api/trips/[tripId]/share/route.ts` **clerkMiddleware (AC #7):** `src/middleware.ts` still protects `/trips(.*)`, `/api/trips(.*)`, `/api/items(.*)`, `/api/billing(.*)` with public-API carve-outs for `/api/inbound(.*)` and `/api/billing/webhook`. **Build & test (AC #2, #3):** - `npm run lint` — 0 errors (1 pre-existing `@next/next/no-location-assign-relative-destination` warning on `src/app/trips/[tripId]/page.tsx:209`, unchanged from pre-upgrade). - `npx tsc --noEmit` — PASS. - `npm test` (vitest) — 181/181 tests across 10 files, 0.93s. - `npm run security:scan` — 0 HIGH findings across 101 unsuppressed tracked files. **Commits on origin/main (AC #8):** - `72a0ca5` — `fix(api): migrate route handler params to Promise<> for Next 16 sync gate` (initial implement commit) - `3c79650` — `fix(lint): silence react-hooks/set-state-in-effect and no-html-link-for-pages from Next 16 core-web-vitals` (Bugfix agent recovery — Next 16 install surfaced new core-web-vitals rules) - `982c956` — `Merge origin/main into main (CI commits from parallel branches)` (integration with sibling `#13` work) - `91afb5c` — `docs(changelog): reference #11 for Next.js 14→16 upgrade` (this anchoring commit, `Refs #11`) **Sub-decisions (per issue body):** 1. Single-bump 14 → 16 (Next 15 is a stepping stone and Next 16 dropped deprecated APIs cleanly; the migration is small enough that one PR is safer than two). 2. React kept at `^18` — `@clerk/nextjs ^6.39.3` peer-depends `^18 || ^19`, so both are valid; minimal-change principle chose 18. 3. `next.config.mjs` audited — no removed keys in use. 4. Async params migration done (see AC #4 above). 5. Fetch cache defaults audited — no `cache: 'force-cache'` calls in route handlers; default-no-store is the safe new behavior. 6. ESLint rule delta — handled in `3c79650` (two new core-web-vitals warnings silenced with justification comments). 7. `globals.css` + `next/font` (Inter) — untouched; layout still imports `Inter` from `next/font/google`. Closes #11
Mark closed this issue 2026-09-14 15:55:03 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
AuWoMe/planish#11
No description provided.