CVE-2026-21884: React Router SSR XSS in ScrollRestoration
A XSS vulnerability exists in in React Router's <ScrollRestoration> API in Framework Mode when using the getKey/storageKey props during Server-Side Rendering which could allow arbitrary JavaScript execution during SSR if untrusted content is used to generate the keys.
> [!NOTE] > This does not impact applications if developers have disabled server-side rendering in Framework Mode, or if they are using Declarative Mode (<BrowserRouter>) or Data Mode (createBrowserRouter/<RouterProvider>).
Other sources
React Router is a router for React. In @remix-run/react version prior to 2.17.3. and react-router 7.0.0 through 7.11.0, a XSS vulnerability exists in in React Router's <ScrollRestoration> API in Framework Mode when using the getKey/storageKey props during Server-Side Rendering which could allow arbitrary JavaScript execution during SSR if untrusted content is used to generate the keys. There is no impact if server-side rendering in Framework Mode is disabled, or if Declarative Mode (<BrowserRouter>) or Data Mode (createBrowserRouter/<RouterProvider>) is being used. This issue has been patched in @remix-run/react version 2.17.3 and react-router version 7.12.0.
— NVD
React Router is a router for React. In @remix-run/react version prior to 2.17.3. and react-router 7.0.0 through 7.11.0, a XSS vulnerability exists in in React Router's ScrollRestoration API in Framework Mode when using the getKey/storageKey props during Server-Side Rendering which could allow arbitrary JavaScript execution during SSR if untrusted content is used to generate the keys. There is no impact if server-side rendering in Framework Mode is disabled, or if Declarative Mode (BrowserRouter) or Data Mode (createBrowserRouter/RouterProvider) is being used. This issue has been patched in @remix-run/react version 2.17.3 and react-router version 7.12.0.
— IBM
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
npm/@remix-run/reactto a version that resolves this vulnerability.Fixed in 2.17.3 - Upgrade
Upgrade
npm/react-routerto a version that resolves this vulnerability.Fixed in 7.12.0 - Upgrade
Upgrade
@remix-run/reactto a version that resolves this vulnerability.Fixed in 2.17.3 - Upgrade
Upgrade
react-routerto a version that resolves this vulnerability.Fixed in 7.12.0
Event History
Frequently Asked Questions
What is the severity of CVE-2026-21884?
CVE-2026-21884 is classified as a Cross-Site Scripting (XSS) vulnerability affecting React Router's ScrollRestoration API.
How do I fix CVE-2026-21884?
To mitigate CVE-2026-21884, upgrade to @remix-run/react version 2.17.3 or react-router version 7.12.0.
What software packages are affected by CVE-2026-21884?
CVE-2026-21884 affects @remix-run/react versions below 2.17.3 and react-router versions between 7.0.0 and 7.12.0.
Can CVE-2026-21884 lead to arbitrary JavaScript execution?
Yes, CVE-2026-21884 can allow arbitrary JavaScript execution during Server-Side Rendering if untrusted content is used.
Is CVE-2026-21884 related to Server-Side Rendering?
Yes, CVE-2026-21884 specifically impacts the Server-Side Rendering process of React Router's ScrollRestoration API.