CVE-2025-59057CVE-2025-59057是React Router框架中的一个存储型跨站脚本(XSS)漏洞。该漏洞影响@remix-run/react 1.15.0至2.17.0版本以及react-router 7.0.0至7.8.2版本。漏洞存在于Framework Mode下的meta()和<Meta> API中,当这些API生成script:ld+json标签时,如果使用未经过滤的用户输入数据,可能导致任意JavaScript代码执行。此漏洞仅影响使用Framework Mode的应用程序,不影响使用Declarative Mode(<BrowserRouter>)或Data Mode(createBrowserRouter/<RouterProvider>)的应用。由于该漏洞在服务器端渲染(SSR)过程中触发,攻击者可以通过在ld+json标签中注入恶意脚本,在用户访问页面时执行任意JavaScript代码,从而窃取用户会话、修改页面内容或进行其他恶意操作。CVSS 3.1评分7.6,属于高危漏洞。
该XSS漏洞的根本原因在于React Router的meta()函数在生成ld+json脚本标签时,未对输出内容进行适当的HTML转义处理。攻击者可以通过构造特殊的payload,当这些payload被传递给meta()函数用于生成ld+json数据时,会被直接嵌入到HTML响应中。在SSR(服务器端渲染)过程中,浏览器会解析script标签内的ld+json内容,如果其中包含恶意注入的脚本代码,将被执行。具体来说,攻击者可以利用meta()函数中未经过滤的用户可控数据(如URL参数、数据库内容等)注入<script>标签或事件处理器属性。例如,通过在ld+json的@type字段中注入javascript:协议或使用事件处理器属性(如onerror),可以在页面加载时触发恶意脚本执行。由于漏洞在Framework Mode下触发,开发者应特别注意任何用于meta标签的用户输入都必须经过严格的输入验证和HTML编码。