Skip to content

feat(web): migrate to react-router 8.3.0 (fixes GHSA-qwww-vcr4-c8h2)#202

Merged
mforce merged 1 commit into
mainfrom
feat/react-router-8
Jul 25, 2026
Merged

feat(web): migrate to react-router 8.3.0 (fixes GHSA-qwww-vcr4-c8h2)#202
mforce merged 1 commit into
mainfrom
feat/react-router-8

Conversation

@mforce

@mforce mforce commented Jul 25, 2026

Copy link
Copy Markdown
Owner

What

Migrates the SPA from react-router-dom@^7.1.1 (resolving vulnerable react-router@7.18.1) to react-router@8.3.0. v8 dropped the react-router-dom shim package, so the entire change is:

  • package.json: swap react-router-domreact-router@8.3.0 (peer req react ≥19.2.7; we're on 19.2.8)
  • mechanical import rename "react-router-dom""react-router" across 13 files

The app uses declarative mode only (BrowserRouter/Routes/Route/hooks) — that API surface is unchanged in v8, so no behavioral changes.

Why

GHSA-qwww-vcr4-c8h2 (react-router RSC-mode CSRF bypass, high, published 2026-07-25, vulnerable 7.12.0–8.2.0, fixed 8.3.0) fails the F146 npm vuln gate on every PR's web job, including Dependabot PRs #192/#195/#196. No 7.x backport exists.

Supersedes #200 (temporary gate exception) — this is the real fix, no exception needed.

Verification

  • tsc --noEmit: clean
  • Vitest: 522/522 pass (44 files)
  • vite build: clean
  • vuln gate: [npm] no advisories at or above "high" (0 excepted, 0 below threshold) — exit 0

Closes #199

Fixes GHSA-qwww-vcr4-c8h2 (RSC-mode CSRF bypass, high) which blocks the
F146 npm vuln gate on every PR. v8 dropped the react-router-dom shim, so
the migration is a dependency swap plus a mechanical import rename — the
declarative-mode API (BrowserRouter/Routes/Route/hooks) is unchanged.

Closes #199
@mforce
mforce merged commit b1e6dea into main Jul 25, 2026
7 checks passed
@mforce
mforce deleted the feat/react-router-8 branch July 25, 2026 04:23
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.

react-router GHSA-qwww-vcr4-c8h2 (high): replace temporary gate exception with real fix

1 participant