CVE-2026-22030
JavaScript vulnerability analysis and mitigation

Overview

CVE-2026-22030 is a Cross-Site Request Forgery (CSRF) vulnerability in React Router's Action/Server Action Request Processing. It affects @remix-run/server-runtime versions prior to 2.17.3 and react-router versions 7.0.0 through 7.11.0 (inclusive). The vulnerability allows unauthenticated remote attackers to perform CSRF attacks on document POST requests to UI routes when server-side route action handlers are used in Framework Mode, or when React Server Actions are used in the unstable RSC modes. It was published on January 8, 2026, with a CVSS v3.1 base score of 6.5 (Medium) (GitHub Advisory, React Router Advisory).

Technical details

The root cause is classified under CWE-346 (Origin Validation Error) and CWE-352 (Cross-Site Request Forgery), meaning the server-runtime does not sufficiently verify the origin or intent of incoming POST requests when processing route actions. In Framework Mode, React Router's server-side action handlers process document POST requests without adequate CSRF token validation or origin checking, allowing a malicious third-party site to forge such requests on behalf of an authenticated user. The vulnerability is only exploitable when the application uses Framework Mode with server-side route action handlers or the unstable RSC (React Server Components) mode; applications using Declarative Mode (<BrowserRouter>) or Data Mode (createBrowserRouter/<RouterProvider>) are not affected (GitHub Advisory, React Router Advisory).

Impact

Successful exploitation allows an attacker to perform unauthorized state-changing actions on behalf of an authenticated victim, resulting in a high integrity impact with no confidentiality or availability impact. An attacker can manipulate application data, trigger server-side actions (such as form submissions, account changes, or data modifications), or abuse any server-side route action handler accessible via document POST requests. The scope is limited to the affected application instance, but the impact can be significant depending on the sensitivity of the actions exposed through route handlers (GitHub Advisory).

Exploitability

No public proof-of-concept exploit code or in-the-wild exploitation has been reported as of the time of this report. The EPSS score is approximately 0.015% (3rd percentile), indicating a low near-term probability of exploitation (GitHub Advisory). The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. User interaction is required (the victim must visit a malicious page), which reduces the practical exploitability compared to fully unauthenticated, no-interaction vulnerabilities. The vulnerability was reported by a researcher credited as "Oceandust" (React Router Advisory).

Exploitation steps

  1. Reconnaissance: Identify a target web application built with React Router in Framework Mode (or Remix v2) using @remix-run/server-runtime < 2.17.3 or react-router 7.0.0–7.11.0, with server-side route action handlers exposed via document POST requests.
  2. Identify target action route: Determine a sensitive UI route that triggers a server-side action handler on POST (e.g., a form submission endpoint that changes account settings, deletes data, or performs a privileged operation).
  3. Craft malicious page: Create an attacker-controlled HTML page containing a hidden HTML form that targets the victim application's action route URL, pre-populated with the desired malicious parameters.
  4. Trigger victim interaction: Lure the authenticated victim to visit the malicious page (e.g., via phishing email or malicious link). The page auto-submits the form via JavaScript (document.forms[0].submit()) as a document POST request.
  5. CSRF request processed: Because the server-side action handler does not properly validate the request origin, the server processes the forged POST request in the context of the victim's authenticated session, executing the attacker-intended action (GitHub Advisory, React Router Advisory).

Indicators of compromise

  • Logs: Unexpected or anomalous POST requests to application UI route action endpoints originating from unusual Referer or Origin headers (e.g., cross-origin domains not associated with the application).
  • Logs: Server-side action handler executions that do not correlate with expected user activity patterns (e.g., actions triggered at unusual times or from unexpected IP addresses).
  • Network: HTTP POST requests to React Router action routes with Content-Type: application/x-www-form-urlencoded or multipart/form-data where the Origin or Referer header points to an external, unrelated domain.
  • Application: Unexpected data modifications, account changes, or state-altering events in the application that cannot be attributed to legitimate user sessions.

Mitigation and workarounds

Upgrade to the patched versions: @remix-run/server-runtime version 2.17.3 or later, or react-router version 7.12.0 or later (GitHub Advisory, React Router Advisory). Applications using Declarative Mode (<BrowserRouter>) or Data Mode (createBrowserRouter/<RouterProvider>) are not affected and do not require immediate action. As a temporary workaround prior to patching, consider implementing server-side CSRF token validation at the application layer (e.g., using middleware to check Origin/Referer headers or requiring a custom CSRF token in POST request bodies). IBM has also released patches for affected downstream products including watsonx.data, IBM API Connect, IBM Cloud Pak for Business Automation, IBM Engineering AI Hub, and Carbon Charts (IBM watsonx Advisory, IBM API Connect).

Community reactions

IBM issued multiple security bulletins addressing CVE-2026-22030 across several of its products that bundle React Router, including watsonx.data, IBM API Connect, IBM Cloud Pak for Business Automation, IBM Engineering AI Hub, and Carbon Charts (IBM watsonx Advisory, IBM CP4BA Advisory). The Belgian Centre for Cybersecurity (CCB) issued a warning about high-severity React Router vulnerabilities, urging immediate patching (CCB Advisory). Security community coverage has been moderate, with aggregator sites and vulnerability databases picking up the advisory shortly after disclosure.

Additional resources


SourceThis report was generated using AI

Related JavaScript vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

GHSA-vx52-2968-3vc6HIGH7.4
  • JavaScript logoJavaScript
  • pnpm
NoYesSep 01, 2026
GHSA-2rx9-3g3h-c2jvHIGH7.1
  • JavaScript logoJavaScript
  • pnpm
NoYesSep 01, 2026
GHSA-cp6q-959q-f8rhMEDIUM6.4
  • JavaScript logoJavaScript
  • @tiptap/core
NoYesSep 02, 2026
GHSA-p498-v437-472gMEDIUM5.7
  • JavaScript logoJavaScript
  • @humanfs/node
NoYesSep 02, 2026
CVE-2026-84371MEDIUM5.4
  • JavaScript logoJavaScript
  • cockpit-image-builder
NoYesSep 01, 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

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