CVE-2025-43865

8.2 HIGH

📋 TL;DR

React Router versions 7.0.x before 7.5.2 allow attackers to modify pre-rendered data by adding specific headers to requests, enabling complete spoofing of data passed to HTML. This affects any React application using vulnerable React Router versions for server-side rendering. Attackers can manipulate data that users see and interact with.

💻 Affected Systems

Products:
  • React Router
Versions: 7.0.0 through 7.5.1
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects server-side rendering (SSR) implementations using React Router's data loading features. Client-side only React apps are not affected.

⚠️ Manual Verification Required

This CVE does not have specific version information in our database, so automatic vulnerability detection cannot determine if your system is affected.

Why? The CVE database entry doesn't specify which versions are vulnerable (no version ranges provided by the vendor/NVD).

🔒 Custom verification scripts are available for registered users. Sign up free to download automated test scripts.

Recommended Actions:
  1. Review the CVE details at NVD
  2. Check vendor security advisories for your specific version
  3. Test if the vulnerability is exploitable in your environment
  4. Consider updating to the latest version as a precaution

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete data manipulation leading to content spoofing, misinformation propagation, or injection of malicious content that users trust as legitimate application data.

🟠

Likely Case

Attackers modify displayed data to mislead users, potentially altering prices, messages, or other dynamic content without changing underlying application logic.

🟢

If Mitigated

With proper input validation and header filtering, impact is limited to attempted attacks that get blocked before reaching the rendering layer.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Exploitation requires sending HTTP requests with specific headers to modify pre-rendered data. No authentication needed if endpoint is accessible.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 7.5.2

Vendor Advisory: https://github.com/remix-run/react-router/security/advisories/GHSA-cpj6-fhp6-mr6j

Restart Required: Yes

Instructions:

1. Update React Router dependency to version 7.5.2 or later. 2. Run 'npm update @remix-run/router react-router-dom' or equivalent for your package manager. 3. Restart your application server. 4. Test that server-side rendering functions correctly.

🔧 Temporary Workarounds

Implement header validation middleware

all

Add server-side middleware to filter or reject requests containing suspicious headers that could manipulate pre-rendered data.

Disable server-side rendering for sensitive routes

all

Configure React Router to use client-side rendering only for routes where data manipulation would be critical.

🧯 If You Can't Patch

  • Implement strict Content Security Policy (CSP) headers to limit impact of any injected content
  • Deploy a web application firewall (WAF) configured to block requests with headers attempting to manipulate pre-rendered data

🔍 How to Verify

Check if Vulnerable:

Check package.json or lock file for React Router version. If version is between 7.0.0 and 7.5.1 inclusive, the application is vulnerable if using server-side rendering.

Check Version:

npm list @remix-run/router react-router-dom | grep 'react-router'

Verify Fix Applied:

Confirm React Router version is 7.5.2 or higher in package.json and that server-side rendering functions correctly without data manipulation via headers.

📡 Detection & Monitoring

Log Indicators:

  • Unusual header patterns in HTTP request logs
  • Multiple requests with similar payloads but different header values
  • Errors in server-side rendering logs

Network Indicators:

  • HTTP requests with headers attempting to override pre-rendered data parameters
  • Unusual traffic patterns to SSR endpoints

SIEM Query:

http.request.headers contains 'X-React-Router-Data' OR http.request.headers contains suspicious data manipulation patterns

🔗 References

📤 Share & Export