CVE-2026-21884CVE-2026-21884是React Router框架中的一个高危跨站脚本(XSS)漏洞。该漏洞存在于@remix-run/react的<ScrollRestoration>组件中,在Framework Mode下使用getKey或storageKey属性进行服务器端渲染(SSR)时,如果这些属性值来自不受信任的用户输入,攻击者可以注入任意JavaScript代码。漏洞影响@remix-run/react 2.17.3之前版本以及react-router 7.0.0至7.11.0版本。由于该漏洞在SSR阶段即可执行恶意脚本,攻击者可以窃取用户会话cookie、劫持用户账户或执行其他恶意操作。CVSS评分8.2,属于高危漏洞,攻击复杂度低,无需认证但需要用户交互,机密性影响高。
漏洞根源在于React Router的<ScrollRestoration>组件在Framework Mode下处理getKey和storageKey属性时缺乏充分的输入验证。当应用在服务器端渲染过程中,如果传递给这些props的值包含恶意脚本内容,会被直接渲染到HTML输出中。攻击者可以通过构造包含XSS payload的URL参数或其他输入,使服务器在渲染页面时将恶意代码嵌入到scroll restoration的key值中。由于渲染发生在服务器端,恶意脚本会在页面加载时立即执行,绕过了传统客户端XSS的防护机制。值得注意的是,如果应用未启用Framework Mode的SSR、使用<BrowserRouter>的声明式路由模式、或使用createBrowserRouter/<RouterProvider>的数据路由模式,则不受此漏洞影响。