React Router: Arbitrary Constructor Injection via deserializeErrors() in React Router SSR Hydration
Published 23 Jul 2026 · Updated 10 Sept 2026
Affected package
- Affected
- >=6.4.0 <7.18.0
- Fixed in
- 7.18.0
npm install react-router@7.18.0Details
If application code allows attacker supplied input to overwrite certain aspects of errors caught by the SSR process, then it was possible for attacker to trigger unexpected constructor execution on the client which would trigger outbound network traffic. This is only possible with very specific (and unlikely) application layer code.
> [!NOTE] > This does not impact your application if you are using Declarative Mode. This only impacts Framework Mode and Data Mode applications doing manual SSR/hydration
Is GHSA-337j-9hxr-rhxg in any of your client repos?
Checking one package by hand is fine. Checking it across forty client projects is not. NPMscan reads the lockfiles in every GitHub repo you pick, finds each project with an affected react-router, and gives you the command that fixes it.
References
- Linkgithub.com/remix-run/react-router/security/advisories/GHSA-337j-9hxr-rhxg
- Linkgithub.com/remix-run/react-router/pull/15175
- Linkgithub.com/remix-run/react-router/commit/9d22943fd46c8ae4b08236425fa3549e10e9ad1a
- Packagegithub.com/remix-run/react-router
- Linkgithub.com/remix-run/react-router/blob/main/CHANGELOG.md#v7180
- Linkgithub.com/remix-run/react-router/releases/tag/react-router@7.18.0
Advisory data from OSV.dev (opens OSV.dev in a new tab), refreshed daily.