Repository navigation
Epic Stack catch-up 1/7: React Router 7.18+ CVE bump #24
Copy link
Copy link
Open
Description
Parent issue: #23
Parent: search for issue titled “Epic Stack catch-up: tracking”.
Goal
Upgrade this app off React Router 7.4.0 (and related packages) far enough to fix the Framework Mode __manifest denial-of-service CVEs. Do not stop at Epic Stack’s 7.16.0.
Why
This site uses React Router Framework Mode (ssr: true in react-router.config.ts). That is the affected mode.
| Advisory | Patched in | Notes |
|---|---|---|
| CVE-2026-42342 / GHSA-8x6r-g9mw-2r78 | react-router 7.15.0+, @remix-run/server-runtime 2.17.5+ |
Unbounded path expansion on __manifest |
| CVE-2026-55685 / GHSA-chx6-hx7r-mcp5 | react-router 7.18.0+ |
Follow-up __manifest DoS |
Upstream Epic Stack only went to 7.16.0: epicweb-dev/epic-stack#1092 / epicweb-dev/epic-stack@faaa217
Current versions in this repo (package.json):
react-router^7.4.0@react-router/dev^7.4.0@react-router/node^7.4.0@react-router/express^7.4.0@react-router/remix-routes-option-adapter^7.4.0(keep this package; routing migration is package 7)@remix-run/server-runtime^2.16.2
Do this
- Branch off
origin/dev(afterdevhas been fast-forwarded tomain— see parent issue). - Bump the React Router family and server runtime to versions that satisfy 7.18.0+ / 2.17.5+. Prefer current patched latest in the 7.x / 2.17+ lines, not a major jump.
- Keep
@react-router/remix-routes-option-adapterin sync with the same 7.x line (still required until package 7). - Run
npm installsopackage-lock.jsonis consistent. - Fix compile/test breakage caused by 7.16+ loader args if needed. Epic Stack updated
app/routes/_auth/auth.$provider/callback.test.tsforurl/patternon server loader args. This repo’s equivalent isapp/routes/_auth+/auth.$provider.callback.test.ts. - PR into
dev.
Files allowed
package.jsonpackage-lock.jsonapp/routes/_auth+/auth.$provider.callback.test.ts(only if tests fail after the bump)- Other test-only files if typecheck/tests fail because of the RR bump — list them in the PR
Do not
- Do not bump Vite, Vitest, Express, Sentry, Prisma,
litefs-js, or any other family - Do not add
react-router-auto-routesorreact-router-devtools(later packages) - Do not remove
remix-flat-routesor@react-router/remix-routes-option-adapter - Do not edit
dashboard+, marketing copy,fly.toml,.env.example, or localtunnelallowedHosts - Do not use PR P/patn dev stack updater #21 as a base
- Do not start packages 2–7 in this PR
Acceptance
- Direct deps:
react-routerand@react-router/*resolve to ≥ 7.18.0;@remix-run/server-runtimeto ≥ 2.17.5 (npm lsin the PR body) npm run typecheckpassesnpm run test -- --runpassesnpm run lintpasses- Playwright job on the PR is green (or the PR explains a pre-existing flake unrelated to this bump)
- PR targets
dev
Staging smoke (human, after merge to dev)
- Hit the staging homepage, login, a notes page, and dashboard
- Confirm the app still boots and auth still works
PR target: dev (never main). Implement only this issue.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Activity
goodeats commentedon Aug 25, 2026
PR #31 is merged to
dev.Staging did not deploy: the
devworkflow’s Playwright job installed browsers, then failed collection withUnknown file extension ".svg"forsprite.svg(No tests found). Leave this issue open until staging smoke after #33.Follow-up: #33 / #37 (browser cache + ESM SVG loader so collection can succeed on GHA).
Restore Babel SVG stub without build.external
goodeats commentedon Aug 25, 2026
#33 / PR #37 is on
dev, so the Playwright collection failure that blocked this package’s staging deploy should be unblocked. Smoke homepage / login / notes / dashboard on staging after the currentdevDeploy run finishes, then this issue can close.