CVE-2025-43864
highpriority · track · 17EPSS 0.205 · 97 %ileexploit · PoCDEEURUUSEPSS · scored 2026-10-27
React Router is a router for React. Starting in version 7.2.0 and prior to version 7.5.2, 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. This issue has been patched in version 7.5.2.
cvss
Technical severity, 0–10. One row per scoring source.
base score 0–10 · higher = more severe · hover a vector to decode
ssvc
A stakeholder decision — act, attend, or track — from exploitation and impact.
weaknesses
The CWE weakness classes this flaw belongs to.
exploits (1)
Public proof-of-concept and weaponised exploit code.
affected products (5)
Products and version ranges known to be affected.
advisories (2)
Vendor and ecosystem advisories describing this.
- WID-SEC-W-2025-1435IBM Storage Scale: Mehrere SchwachstellenDeutsch2025-06-30csaf · cert_bundDE
Ein Angreifer kann mehrere Schwachstellen in IBM Storage Scale ausnutzen, um einen Denial of Service Angriff durchzuführen, und um Informationen offenzulegen.
- GHSA-f46r-rw29-r322React Router allows a DoS via cache poisoning by forcing SPA mode2025-04-24ghsa · osvUS
## 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_)
also known as (5)
Other names and identifiers for this entity.
sources
Which sources assert this record, and when.
references (11)
External citations — patches, advisories, analysis.
- https://github.com/remix-run/react-router/blob/e6c53a0130559b4a9bd47f9cf76ea5b08a69868a/packages/react-router/lib/server-runtime/server.ts#L407cnnvd
- https://github.com/remix-run/react-router/commit/c84302972a152d851cf5dd859ff332b354b70111cnnvd
- https://github.com/remix-run/react-router/releasesPatchcnnvd
- https://github.com/remix-run/react-router/security/advisories/GHSA-f46r-rw29-r322cnnvd
- https://nvd.nist.gov/vuln/detail/CVE-2025-43864cnnvd
- https://github.com/remix-run/react-router/blob/e6c53a0130559b4a9bd47f9cf76ea5b08a69868a/packages/react-router/lib/server-runtime/server.ts#L407enisa_euvd
- https://github.com/remix-run/react-router/commit/c84302972a152d851cf5dd859ff332b354b70111enisa_euvd
- https://github.com/remix-run/react-router/security/advisories/GHSA-f46r-rw29-r322enisa_euvd
Attackers weaponise vulnerabilities like this against internet-exposed services. See what is exposed on your perimeter with a free passive scan.
Free scan