Skip to content

Dependabot: react-router (GHSA-qwww-vcr4-c8h2) cannot be resolved — no upgrade path via Rspress #1419

Description

@dannyhw

Tracking issue for the react-router Dependabot alert left open by #1410. There is no upgrade path through Rspress today, and it does not affect anyone who installs a published Re.Pack package or browses the docs site.

Why it can't be resolved

The advisory is patched only in react-router@8.3.0. We resolve react-router@7.18.1, reached solely through the docs site:

react-router@7.18.1
└─┬ react-router-dom@7.18.1
  └─┬ @rspress/core@2.0.0
    └── website

Two independent blockers:

  1. react-router-dom has no 8.x line. Its latest published version is 7.18.1 — v8 merged the DOM bindings back into react-router itself. Rspress imports from react-router-dom, so there is no version of that package carrying the fix.
  2. The newest Rspress still requires the vulnerable range. @rspress/core@2.0.18 (latest) declares react-router-dom: ^7.18.1. Bumping Rspress does not move react-router out of range.

A pnpm override to react-router@8.3.0 would leave react-router-dom@7.18.1 paired with a major it was never built against, and Rspress explicitly asks for >=7.12, so downgrading below the vulnerable floor (>= 7.12.0) is also out.

Upstream tracking

React Router — actively tracked, backport requested.

  • remix-run/react-router#15348"Request: backport fix to v7 for GHSA-qwww-vcr4-c8h2", open, opened 2026-07-27, ~12 comments of corroboration. The recurring theme is that v8 forces React 19, which many consumers can't take yet.
  • The fix itself is #15311 "harden RSC CSRF codepaths", merged to main on 2026-07-13.
  • A community member reports the commit cherry-picks cleanly onto the v7 branch — the relevant code is unchanged between v7 and v8 — so a backport is technically straightforward; it just needs a maintainer or contributor to do it and cut a release.
  • React Router's security policy states 7.x still receives security updates.
  • No backport PR exists yet, and the latest 7.x release is still 7.18.1.

Rspress — not tracked anywhere. Searched web-infra-dev/rspress issues and PRs:

  • No issue, PR, or comment mentions this advisory, GHSA-qwww-vcr4-c8h2, CSRF, or react-router v8.
  • Their Renovate dependency dashboard (#782) lists react-router-dom ^7.18.1 with no update available — expected, since 7.18.1 is the newest react-router-dom. Their tooling cannot surface this.
  • The 2.1.0 roadmap still commits to react-router-dom ("Use the Data Router from react-router-dom", #3306), so no v8 migration is planned.

Impact on end users: none

Not shipped. react-router is a dependency of website only — our docs site. It is not in the dependency graph of any published package (@callstack/repack, @callstack/repack-dev-server, @callstack/repack-init, or the plugin-* packages). Nothing that reaches npm consumers is affected.

Not exploitable in our deployment. The advisory is an RSC-mode CSRF bypass — it requires React Router's React Server Components server runtime handling actions. Rspress produces a static site (pnpm --filter website run build emits static HTML/assets), so there is no React Router server runtime in production and no action-handling request path to attack.

What unblocks it

The realistic path is the v7 backport, not a Rspress change. If React Router ships a patched 7.x, this resolves for us with a plain lockfile bump and no Rspress involvement at all.

Recommendation: watch remix-run/react-router#15348 and bump when a patched 7.x lands. Given a fix looks plausible in the near term, a temporary Dependabot dismissal ("vulnerable code is not actually used" — accurate for a static docs site) is preferable to treating this as permanently unfixable.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions