CVE-2025-59057: 
JavaScript vulnerability analysis and mitigation

Overview

CVE-2025-59057 is a Cross-Site Scripting (XSS) vulnerability in React Router's meta()/<Meta> APIs that allows arbitrary JavaScript execution during Server-Side Rendering (SSR) when untrusted content is used to generate script:ld+json tags. It affects @remix-run/react versions 1.15.0 through 2.17.0 and react-router versions 7.0.0 through 7.8.2. The vulnerability was disclosed on January 8, 2026, and has a CVSS v3.1 base score of 7.6 (High) (Github Advisory, React Router Advisory). Applications using Declarative Mode (<BrowserRouter>) or Data Mode (createBrowserRouter/<RouterProvider>) are not affected (Github Advisory).

Technical details

The vulnerability is classified as CWE-79 (Improper Neutralization of Input During Web Page Generation — Cross-Site Scripting) and stems from insufficient sanitization of untrusted content when the Framework Mode meta() function or <Meta> component generates <script type="application/ld+json"> tags during SSR (Github Advisory). Because the content is rendered server-side and injected directly into the HTML response without proper escaping, an attacker who can influence the data passed to the meta function can embed malicious JavaScript that executes in the victim's browser upon page load. Exploitation requires low privileges (an authenticated attacker capable of supplying untrusted input to the meta API) and user interaction (a victim must visit the affected page) (React Router Advisory). A public proof-of-concept repository has been identified at https://github.com/boroeurnprach/CVE-2025-59057-PoC.

Impact

Successful exploitation allows an attacker to execute arbitrary JavaScript in the context of a victim's browser session, leading to high confidentiality impact (e.g., session token theft, credential harvesting) and low integrity impact (e.g., DOM manipulation, phishing content injection), with no direct availability impact (Github Advisory). The scope is changed, meaning the injected script can affect resources beyond the vulnerable component itself, potentially enabling account takeover or lateral movement within the application. Downstream IBM products including watsonx.data, IBM API Connect, IBM Cloud Pak for Business Automation, IBM Engineering AI Hub, and Carbon Charts are also affected due to their dependency on the vulnerable React Router versions (IBM Advisory, IBM Advisory).

Exploitability

A public proof-of-concept exploit has been published on GitHub (boroeurnprach/CVE-2025-59057-PoC), lowering the barrier for exploitation. The EPSS score is approximately 0.037% (1st percentile), indicating a currently low probability of widespread exploitation in the next 30 days (Github Advisory). No confirmed in-the-wild exploitation or threat actor attribution has been reported at this time, and the vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. Detection plugins are available via Nessus (plugin 282614) and Qualys (detection ID 151075).

Exploitation steps

  1. Identify target: Locate a React Router Framework Mode application (SSR-enabled) running @remix-run/react 1.15.0–2.17.0 or react-router 7.0.0–7.8.2 that renders user-controlled or externally sourced data through the meta() function or <Meta> component.
  2. Identify injection point: Find a route where the meta() function incorporates untrusted input (e.g., user-supplied query parameters, database content, or API responses) into a script:ld+json meta descriptor.
  3. Craft malicious payload: Construct a payload that breaks out of the JSON-LD context and injects executable JavaScript. For example, supply a value containing </script><script>alert(document.cookie)</script> or a more sophisticated payload targeting session tokens.
  4. Deliver payload: Submit the malicious content through the application's input mechanism (e.g., a form submission, URL parameter, or stored data entry) so it is persisted or reflected into the meta() call.
  5. Trigger victim execution: Lure an authenticated victim to visit the affected page (e.g., via phishing link or stored XSS on a shared page), causing the server-rendered HTML containing the injected script to execute in their browser.
  6. Achieve objective: Harvest session cookies, perform actions on behalf of the victim, or pivot to further attacks within the application (React Router Advisory).

Indicators of compromise

  • Network: Unusual HTTP requests containing </script> sequences or encoded JavaScript payloads in parameters that feed into meta/LD+JSON rendering endpoints; unexpected outbound connections from client browsers to attacker-controlled domains following page loads.
  • Logs: Server-side rendering logs showing anomalous or malformed JSON-LD content being passed to the meta() function; access logs with requests containing script injection strings in query parameters or POST bodies.
  • File System: If the application uses stored data for meta generation, check database records or cached content for entries containing <script> tags or JavaScript event handlers embedded in structured data fields.
  • Browser/Client: Reports of unexpected JavaScript execution, pop-ups, or redirects on pages that render LD+JSON structured data; browser console errors related to script parsing within <script type="application/ld+json"> blocks.

Mitigation and workarounds

Upgrade to the patched versions immediately: @remix-run/react version 2.17.1 or react-router version 7.9.0 (Github Advisory, React Router Advisory). As a workaround prior to patching, avoid passing untrusted or user-controlled content into the meta() function or <Meta> component when using Framework Mode with SSR. Applications using only Declarative Mode (<BrowserRouter>) or Data Mode (createBrowserRouter/<RouterProvider>) are not affected and require no action. IBM has released product-specific fixes for affected offerings including watsonx.data, API Connect, Cloud Pak for Business Automation, and Engineering AI Hub (IBM Advisory). Red Hat addressed this in Red Hat Ansible Automation Platform 2.6 via RHSA-2026:3958 (Red Hat Bugzilla).

Community reactions

The vulnerability was reported by security researchers zaddy6 and arthurgervais and published by the React Router maintainer brophdawg11 on January 8, 2026 (React Router Advisory). The Belgian Centre for Cybersecurity (CCB) issued a warning advising immediate patching for high-severity React Router vulnerabilities. Security community discussion appeared on Hacker News and Bluesky (via the AppSec feed), and coverage was published by SecurityOnline.info in the context of related React Router flaws. The vulnerability has been picked up by multiple vulnerability tracking platforms and scanner vendors (Tenable, Qualys), indicating broad awareness within the security community.

Additional resources

Linux Distribution fix status

Fix availability across major Linux distributions and their releases.

RHEL / CentOS

Affected

RHEL 9

Not Affected

RHEL 10

Not Affected

Source: This report was generated using AI

Related JavaScript vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

GHSA-gvwc-5hr5-44p8HIGH7.5
  • JavaScript logoJavaScript
  • probe-image-size
NoYesOct 26, 2026
GHSA-5jh3-w3fj-6758LOW3.7
  • JavaScript logoJavaScript
  • probe-image-size
NoYesOct 26, 2026
GHSA-5v8x-rm7w-m4c7LOW3.7
  • JavaScript logoJavaScript
  • probe-image-size
NoYesOct 26, 2026
GHSA-7pqp-3q23-mwr8LOW3.7
  • JavaScript logoJavaScript
  • probe-image-size
NoYesOct 26, 2026
GHSA-3qg4-7mq2-gm93MEDIUMN/A
  • JavaScript logoJavaScript
  • probe-image-size
NoYesOct 26, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Additional Wiz resources

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management