Lookup for vulnerable packages by Package URL.
| Purl | pkg:npm/react-router@0.0.0-nightly-3fdae37ec-20240914 |
| Type | npm |
| Namespace | |
| Name | react-router |
| Version | 0.0.0-nightly-3fdae37ec-20240914 |
| Qualifiers |
|
| Subpath | |
| Is_vulnerable | true |
| Next_non_vulnerable_version | 0.0.0 |
| Latest_non_vulnerable_version | 7.12.0 |
| Affected_by_vulnerabilities |
| 0 |
| url |
VCID-98v3-32bv-2qg9 |
| vulnerability_id |
VCID-98v3-32bv-2qg9 |
| summary |
React Router allows a DoS via cache poisoning by forcing SPA mode
## Summary
After some research, it turns out that it is possible to force an application to switch to SPA mode by adding a header to the request. If the application uses SSR and is forced to switch to SPA, this causes an error that completely corrupts the page. If a cache system is in place, this allows the response containing the error to be cached, resulting in a cache poisoning that strongly impacts the availability of the application.
## Details
The vulnerable header is `X-React-Router-SPA-Mode`; adding it to a request sent to a page/endpoint using a loader throws an error. Here is [the vulnerable code](https://github.com/remix-run/react-router/blob/e6c53a0130559b4a9bd47f9cf76ea5b08a69868a/packages/react-router/lib/server-runtime/server.ts#L407) :
<img width="672" alt="Capture d’écran 2025-04-07 à 08 28 20" src="https://github.com/user-attachments/assets/0a0e9c41-70fd-4dba-9061-892dd6797291" />
To use the header, React-router must be used in Framework mode, and for the attack to be possible the target page must use a loader.
## Steps to reproduce
Versions used for our PoC:
- "@react-router/node": "^7.5.0",
- "@react-router/serve": "^7.5.0",
- "react": "^19.0.0"
- "react-dom": "^19.0.0"
- "react-router": "^7.5.0"
1. Install React-Router with its default configuration in Framework mode (https://reactrouter.com/start/framework/installation)
2. Add a simple page using a loader (example: `routes/ssr`)

3. Send a request to the endpoint using the loader (`/ssr` in our case) adding the following header:
```
X-React-Router-SPA-Mode: yes
```
Notice the difference between a request with and without the header;
**Normal request**

**With the header**


## Impact
If a system cache is in place, it is possible to poison the response by completely altering its content (*by an error message*), strongly impacting its availability, making the latter impractical via a cache-poisoning attack.
## Credits
- Rachid Allam (zhero;)
- Yasser Allam (inzo_) |
| references |
| 0 |
|
| 1 |
| reference_url |
https://api.first.org/data/v1/epss?cve=CVE-2025-43864 |
| reference_id |
|
| reference_type |
|
| scores |
| 0 |
| value |
0.00374 |
| scoring_system |
epss |
| scoring_elements |
0.59108 |
| published_at |
2026-04-29T12:55:00Z |
|
| 1 |
| value |
0.00374 |
| scoring_system |
epss |
| scoring_elements |
0.59122 |
| published_at |
2026-04-26T12:55:00Z |
|
| 2 |
| value |
0.00374 |
| scoring_system |
epss |
| scoring_elements |
0.59103 |
| published_at |
2026-04-24T12:55:00Z |
|
| 3 |
| value |
0.00374 |
| scoring_system |
epss |
| scoring_elements |
0.59123 |
| published_at |
2026-04-21T12:55:00Z |
|
| 4 |
| value |
0.00374 |
| scoring_system |
epss |
| scoring_elements |
0.59143 |
| published_at |
2026-04-18T12:55:00Z |
|
| 5 |
| value |
0.00374 |
| scoring_system |
epss |
| scoring_elements |
0.59139 |
| published_at |
2026-04-16T12:55:00Z |
|
| 6 |
| value |
0.00374 |
| scoring_system |
epss |
| scoring_elements |
0.5914 |
| published_at |
2026-04-11T12:55:00Z |
|
| 7 |
| value |
0.00374 |
| scoring_system |
epss |
| scoring_elements |
0.59121 |
| published_at |
2026-04-12T12:55:00Z |
|
| 8 |
| value |
0.00374 |
| scoring_system |
epss |
| scoring_elements |
0.59102 |
| published_at |
2026-04-13T12:55:00Z |
|
| 9 |
| value |
0.00374 |
| scoring_system |
epss |
| scoring_elements |
0.5908 |
| published_at |
2026-04-02T12:55:00Z |
|
| 10 |
| value |
0.00374 |
| scoring_system |
epss |
| scoring_elements |
0.59118 |
| published_at |
2026-04-08T12:55:00Z |
|
| 11 |
| value |
0.00374 |
| scoring_system |
epss |
| scoring_elements |
0.59067 |
| published_at |
2026-04-07T12:55:00Z |
|
|
| url |
https://api.first.org/data/v1/epss?cve=CVE-2025-43864 |
|
| 2 |
|
| 3 |
|
| 4 |
|
| 5 |
|
| 6 |
|
| 7 |
|
| 8 |
|
| 9 |
|
|
| fixed_packages |
|
| aliases |
CVE-2025-43864, GHSA-f46r-rw29-r322
|
| risk_score |
4.0 |
| exploitability |
0.5 |
| weighted_severity |
8.0 |
| resource_url |
http://public2.vulnerablecode.io/vulnerabilities/VCID-98v3-32bv-2qg9 |
|
| 1 |
| url |
VCID-fvgg-y3kj-wyew |
| vulnerability_id |
VCID-fvgg-y3kj-wyew |
| summary |
React Router allows pre-render data spoofing on React-Router framework mode
## Summary
After some research, it turns out that it's possible to modify pre-rendered data by adding a header to the request. This allows to completely spoof its contents and modify all the values of the data object passed to the HTML. Latest versions are impacted.
## Details
The vulnerable header is `X-React-Router-Prerender-Data`, a specific JSON object must be passed to it in order for the spoofing to be successful as we will see shortly. Here is [the vulnerable code](https://github.com/remix-run/react-router/blob/e6c53a0130559b4a9bd47f9cf76ea5b08a69868a/packages/react-router/lib/server-runtime/routes.ts#L87) :
<img width="776" alt="Capture d’écran 2025-04-07 à 05 36 58" src="https://github.com/user-attachments/assets/c95b0b33-15ce-4d30-9f5e-b10525dd6ab4" />
To use the header, React-router must be used in Framework mode, and for the attack to be possible the target page must use a loader.
## Steps to reproduce
Versions used for our PoC:
- "@react-router/node": "^7.5.0",
- "@react-router/serve": "^7.5.0",
- "react": "^19.0.0"
- "react-dom": "^19.0.0"
- "react-router": "^7.5.0"
1. Install React-Router with its default configuration in Framework mode (https://reactrouter.com/start/framework/installation)
2. Add a simple page using a loader (example: `routes/ssr`)
3. Access your page (*which uses the loader*) by suffixing it with `.data`. In our case the page is called `/ssr`:

We access it by adding the suffix `.data` and retrieve the data object, needed for the header:

4. Send your request by adding the `X-React-Router-Prerender-Data` header with the previously retrieved object as its value. You can change any value of your `data` object (do not touch the other values, the latter being necessary for the object to be processed correctly and not throw an error):

As you can see, all values have been changed/overwritten by the values provided via the header.
## Impact
The impact is significant, if a cache system is in place, it is possible to poison a response in which all of the data transmitted via a loader would be altered by an attacker allowing him to take control of the content of the page and modify it as he wishes via a cache-poisoning attack. This can lead to several types of attacks including potential stored XSS depending on the context in which the data is injected and/or how the data is used on the client-side.
## Credits
- Rachid Allam (zhero;)
- Yasser Allam (inzo_) |
| references |
| 0 |
|
| 1 |
| reference_url |
https://api.first.org/data/v1/epss?cve=CVE-2025-43865 |
| reference_id |
|
| reference_type |
|
| scores |
| 0 |
| value |
0.00292 |
| scoring_system |
epss |
| scoring_elements |
0.52558 |
| published_at |
2026-04-29T12:55:00Z |
|
| 1 |
| value |
0.00292 |
| scoring_system |
epss |
| scoring_elements |
0.52595 |
| published_at |
2026-04-26T12:55:00Z |
|
| 2 |
| value |
0.00292 |
| scoring_system |
epss |
| scoring_elements |
0.52584 |
| published_at |
2026-04-24T12:55:00Z |
|
| 3 |
| value |
0.00292 |
| scoring_system |
epss |
| scoring_elements |
0.52634 |
| published_at |
2026-04-21T12:55:00Z |
|
| 4 |
| value |
0.00292 |
| scoring_system |
epss |
| scoring_elements |
0.52648 |
| published_at |
2026-04-18T12:55:00Z |
|
| 5 |
| value |
0.00292 |
| scoring_system |
epss |
| scoring_elements |
0.52641 |
| published_at |
2026-04-16T12:55:00Z |
|
| 6 |
| value |
0.00292 |
| scoring_system |
epss |
| scoring_elements |
0.52603 |
| published_at |
2026-04-13T12:55:00Z |
|
| 7 |
| value |
0.00292 |
| scoring_system |
epss |
| scoring_elements |
0.52617 |
| published_at |
2026-04-12T12:55:00Z |
|
| 8 |
| value |
0.00292 |
| scoring_system |
epss |
| scoring_elements |
0.52537 |
| published_at |
2026-04-07T12:55:00Z |
|
| 9 |
| value |
0.00292 |
| scoring_system |
epss |
| scoring_elements |
0.52583 |
| published_at |
2026-04-09T12:55:00Z |
|
| 10 |
| value |
0.00292 |
| scoring_system |
epss |
| scoring_elements |
0.52589 |
| published_at |
2026-04-08T12:55:00Z |
|
| 11 |
| value |
0.00292 |
| scoring_system |
epss |
| scoring_elements |
0.52571 |
| published_at |
2026-04-04T12:55:00Z |
|
| 12 |
| value |
0.00292 |
| scoring_system |
epss |
| scoring_elements |
0.52544 |
| published_at |
2026-04-02T12:55:00Z |
|
| 13 |
| value |
0.00292 |
| scoring_system |
epss |
| scoring_elements |
0.52633 |
| published_at |
2026-04-11T12:55:00Z |
|
|
| url |
https://api.first.org/data/v1/epss?cve=CVE-2025-43865 |
|
| 2 |
|
| 3 |
|
| 4 |
|
| 5 |
|
| 6 |
|
| 7 |
|
| 8 |
|
| 9 |
|
| 10 |
|
|
| fixed_packages |
|
| aliases |
CVE-2025-43865, GHSA-cpj6-fhp6-mr6j
|
| risk_score |
4.0 |
| exploitability |
0.5 |
| weighted_severity |
8.0 |
| resource_url |
http://public2.vulnerablecode.io/vulnerabilities/VCID-fvgg-y3kj-wyew |
|
|
| Fixing_vulnerabilities |
|
| Risk_score | 4.0 |
| Resource_url | http://public2.vulnerablecode.io/packages/pkg:npm/react-router@0.0.0-nightly-3fdae37ec-20240914 |