
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-53666 is an arbitrary client-side constructor injection vulnerability in React Router's Server-Side Rendering (SSR) hydration process. It affects react-router versions 6.4.0 through 7.17.0 (inclusive) and was disclosed on July 23, 2026 via a GitHub Security Advisory. The vulnerability allows an attacker to trigger unexpected constructor execution on the client side, potentially causing outbound network requests, but only under very specific application-layer conditions. It carries a CVSS v3.1 base score of 6.1 (Medium) (GitHub Advisory).
The root cause is classified under CWE-470 (Use of Externally-Controlled Input to Select Classes or Code / Unsafe Reflection) and CWE-502 (Deserialization of Untrusted Data). During SSR hydration, React Router's legacy error deserialization logic in Data Mode and Framework Mode allowed attacker-supplied input to overwrite the __subType field of serialized error objects embedded in the hydration data (e.g., window.__staticRouterHydrationData). The client-side deserializeErrors function would then look up the specified class name on the window object and invoke its constructor — effectively enabling unsafe reflection. The fix (PR #15175) replaced the manual error serialization approach with turbo-stream for Framework Mode hydration errors and restricted Data Mode deserialization to a hardcoded allowlist (SUPPORTED_ERROR_TYPES), preventing arbitrary class lookups (GitHub Advisory, Fix PR, Fix Commit).
Successful exploitation results in low confidentiality and low integrity impact with no availability impact, and the scope is changed (cross-boundary). An attacker can cause the victim's browser to execute an unintended constructor and trigger outbound network requests, potentially leaking information or performing limited unauthorized actions. The vulnerability does not affect applications using Declarative Mode and is limited to Framework Mode and Data Mode applications performing manual SSR/hydration with specific application-layer code patterns that allow attacker-controlled input to influence SSR error objects (GitHub Advisory).
No in-the-wild exploitation has been reported, and no public proof-of-concept exploit code is known. The NVD SSVC assessment confirms exploitation is currently "none" and the attack is not automatable, as it requires user interaction and very specific (and unlikely) application-layer code conditions. The EPSS score is approximately 0.0042 (0.42%), indicating a low probability of exploitation in the near term. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog (GitHub Advisory, Feedly).
__subType field (e.g., __subType: "CustomError") into the hydration data (e.g., window.__staticRouterHydrationData).deserializeErrors function reads the __subType value from the hydration data and looks up the corresponding constructor on the window object (e.g., window["CustomError"]), invoking it — executing unintended constructor logic.fetch, XMLHttpRequest, or Image src), the attacker can exfiltrate limited data or confirm exploitation (GitHub Advisory, Fix Commit).connect-src or img-src destinations.window.__staticRouterHydrationData in server-rendered HTML containing __type: "Error" and a __subType value referencing non-standard or unexpected class names (anything outside built-in JS error types like Error, TypeError, ReferenceError, etc.).The primary remediation is to upgrade react-router to version 7.18.0 or later, which replaces the vulnerable manual error serialization with turbo-stream for Framework Mode and restricts Data Mode deserialization to a safe allowlist of built-in error types (GitHub Advisory, v7.18.0 Release). Applications using Declarative Mode are not affected and do not require immediate action. As a temporary workaround for teams unable to upgrade immediately, ensure that no attacker-controlled input can influence the error objects serialized during the SSR process, and implement a strict Content Security Policy (CSP) to limit outbound network requests from the browser.
Netlify published a changelog entry on July 23, 2026 acknowledging the React Router security vulnerabilities, indicating awareness among major hosting providers (Netlify Changelog). The advisory was credited to reporter "yoyomiski" and was assessed as "Moderate" severity by the React Router maintainers, reflecting the narrow exploitation conditions required. Qualys and Tenable both published detection plugins for the vulnerability shortly after disclosure, indicating rapid uptake in the vulnerability management community (Qualys, Tenable).
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."