Security Digest · Vulnerability record

CVE-2025-61686: React Router has Path Traversal in File Session Storage

React Router is a router for React. In @react-router/node versions 7.0.0 through 7.9.3, @remix-run/deno prior to version 2.17.2, and @remix-run/node prior to version 2.17.2, if createFileSessionStorage() is being used from @react-router/node (or @remix-run/node/@remix-run/deno in Remix v2) with an unsigned cookie, it…

CVSS 9.1 Critical EPSS 17.3% · p97

Should you act?

High exploit likelihood

EPSS ranks it in the top 5% of all CVEs for likely exploitation in the next 30 days. This signal is computed from CISA KEV, EPSS and CVSS data; it is not an editorial verdict.

  • No confirmed exploitation. It is not in CISA’s KEV catalog and CISA’s SSVC assessment records no known exploitation. That can change quickly after a public write-up; re-check if you are affected.
  • EPSS 17.3%, percentile 97: FIRST’s model estimates a 17.3% chance of exploitation activity in the next 30 days, higher than 97% of all scored CVEs (very high). EPSS is a probability, not a verdict.
  • Remotely reachable with no login and no user interaction. If the vulnerable service is exposed to the internet, prioritize it.
  • Only applies if your dependency tree includes @react-router/node (npm) >= 7.0.0, <= 7.9.3, fixed in 7.9.4; @remix-run/node (npm) <= 2.17.1, fixed in 2.17.2; @remix-run/deno (npm) <= 2.17.1, fixed in 2.17.2. Check your lockfile, including transitive dependencies.

What it is

React Router is a router for React. In @react-router/node versions 7.0.0 through 7.9.3, @remix-run/deno prior to version 2.17.2, and @remix-run/node prior to version 2.17.2, if createFileSessionStorage() is being used from @react-router/node (or @remix-run/node/@remix-run/deno in Remix v2) with an unsigned cookie, it is possible for an attacker to cause the session to try to read/write from a location outside the specified session file directory. The success of the attack would depend on the permissions of the web server process to access those files. Read files cannot be returned directly to the attacker. Session file reads would only succeed if the file matched the expected session file format. If the file matched the session file format, the data would be populated into the server side session but not directly returned to the attacker unless the application logic returned specific session information. This issue has been patched in @react-router/node version 7.9.4, @remix-run/deno version 2.17.2, and @remix-run/node version 2.17.2.

From the GitHub advisory

If applications use createFileSessionStorage() from @react-router/node (or @remix-run/node/@remix-run/deno in Remix v2) with an unsigned cookie, it is possible for an attacker to cause the session to try to read/write from a location outside the specified session file directory. The success of the attack would depend on the permissions of the web server process to access those files.

Read files cannot be returned directly to the attacker. Session file reads would only succeed if the file matched the expected session file format. If the file matched the session file format, the data would be populated into the server side session but not directly returned to the attacker unless the application logic returned specific session information.

Weakness type: CWE-22.

Product: @react-router/node (npm) · Assigned by: GitHub_M · Published: 2026-01-10

Affected and fixed versions

EcosystemPackageVulnerableFirst fixed
npm@react-router/node>= 7.0.0, <= 7.9.37.9.4
npm@remix-run/node<= 2.17.12.17.2
npm@remix-run/deno<= 2.17.12.17.2
VendorProductAffected versions (per CVE record)
remix-runreact-router@react-router/node >= 7.0.0, < 7.9.4, @remix-run/deno < 2.17.2, @remix-run/node < 2.17.2

Severity scores

Scored byCVSSScoreVector
GitHub_M3.19.1 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H
redhat-SADP3.19.1 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
GitHub3.19.1 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H
  • Attack vector: network (remotely reachable)
  • Attack complexity: low
  • Privileges required: none (no login)
  • User interaction: none
  • Scope: unchanged

CVSS measures how bad a flaw is if exploited, not how likely exploitation is. Read it next to the exploitation data below.

Exploitation and urgency

  • CISA KEV: not listed (no confirmed in-the-wild exploitation known to CISA).
  • CISA SSVC assessment: exploitation none, automatable yes, technical impact partial.
  • FIRST EPSS (model of 2026-10-21): 17.35% probability of exploitation activity in the next 30 days; percentile 97.

Timeline

  • — GitHub-reviewed advisory GHSA-9583-h5hc-x8cw published (critical)
  • — CVE record published by GitHub_M
  • — CVE record last updated

Sources and references

Original sources first. Version and fix details should always be confirmed against the vendor or project advisory.

Vulnerability records

  1. GitHub Advisory GHSA-9583-h5hc-x8cw github.com
  2. CVE.org record CVE-2025-61686 cve.org
  3. NVD entry CVE-2025-61686 nvd.nist.gov

Other references from the CVE record and advisory

  1. github.com github.com
  2. access.redhat.com access.redhat.com
  3. RHBZ#2428423 bugzilla.redhat.com
  4. security.access.redhat.com security.access.redhat.com

Critical npm advisories · Today’s Security Digest