{"basis":"claimed","id":"CVE-2025-31137","name":"Remix and React Router allow URL manipulation via Host / X-Forwarded-Host headers","vendorProject":"remix-run","product":"react-router","publishedAt":"2025-04-01","cvss":{"score":7.5,"severity":"HIGH","version":"3.0"},"exploited":null,"epss":{"score":0.01191,"percentile":0.67971,"date":"2026-11-02"},"coverage":{"cloudflare":{"status":"none","firstOn":null,"daysToRule":null},"aws":{"status":"none","firstOn":null,"daysToRule":null},"azure":{"status":"none","firstOn":null,"daysToRule":null},"google":{"status":"none","firstOn":null,"daysToRule":null},"fastly":{"status":"no_history","firstOn":null,"daysToRule":null},"f5":{"status":"rule","firstOn":"2025-05-22","daysToRule":51},"akamai":{"status":"no_source","firstOn":null,"daysToRule":null},"crs":{"status":"none","firstOn":null,"daysToRule":null}},"title":"Remix and React Router allow URL manipulation via Host / X-Forwarded-Host headers","description":"React Router is a multi-strategy router for React bridging the gap from React 18 to React 19. There is a vulnerability in Remix/React Router that affects all Remix 2 and React Router 7 consumers using the Express adapter. Basically, this vulnerability allows anyone to spoof the URL used in an incoming Request by putting a URL pathname in the port section of a URL that is part of a Host or X-Forwarded-Host header sent to a Remix/React Router request handler. This issue has been patched and released in Remix 2.16.3 and React Router 7.4.1.","cwes":["CWE-444"],"vendors":[{"vendor":"cloudflare","status":"none","basis":"claimed","firstOn":null,"firstIsNew":false,"daysToRule":null,"daysAtMost":null,"freePlan":false,"claims":[]},{"vendor":"aws","status":"none","basis":"claimed","firstOn":null,"firstIsNew":false,"daysToRule":null,"daysAtMost":null,"freePlan":false,"claims":[]},{"vendor":"azure","status":"none","basis":"claimed","firstOn":null,"firstIsNew":false,"daysToRule":null,"daysAtMost":null,"freePlan":false,"claims":[]},{"vendor":"google","status":"none","basis":"claimed","firstOn":null,"firstIsNew":false,"daysToRule":null,"daysAtMost":null,"freePlan":false,"claims":[]},{"vendor":"fastly","status":"no_history","basis":"claimed","firstOn":null,"firstIsNew":false,"daysToRule":null,"daysAtMost":null,"freePlan":false,"claims":[]},{"vendor":"f5","status":"rule","basis":"claimed","firstOn":"2025-05-22","firstIsNew":true,"daysToRule":51,"daysAtMost":null,"freePlan":false,"claims":[{"id":"acdffe237b761baf3484d50f3c1b45d01fa3a3070727f0c264b895fd8fab4e72","cve_id":"CVE-2025-31137","vendor":"f5","product":"Attack signatures","rule_id":"200013115","rule_name":"React Router URL Manipulation (1)","change":"new","default_action":null,"published_on":"2025-05-22","source_url":"https://docs.cloud.f5.com/docs-v2/platform/changelogs/security-details-changelog","source_title":"F5 Distributed Cloud attack signatures changelog","excerpt":"Added: signature 200013115 \"React Router URL Manipulation (1)\" (Authentication/Authorization Attacks, risk Medium), systems: JavaScript, ReactJS. References: CVE-2025-31137.","first_seen_at":"2026-11-02T21:00:26.075Z"},{"id":"e310c8d26f0bb62cac0dbe4b83031330dba5a92e291dcfb01d1bc0f0f7823ddf","cve_id":"CVE-2025-31137","vendor":"f5","product":"Attack signatures","rule_id":"200013116","rule_name":"React Router URL Manipulation (2)","change":"new","default_action":null,"published_on":"2025-05-22","source_url":"https://docs.cloud.f5.com/docs-v2/platform/changelogs/security-details-changelog","source_title":"F5 Distributed Cloud attack signatures changelog","excerpt":"Added: signature 200013116 \"React Router URL Manipulation (2)\" (Authentication/Authorization Attacks, risk Medium), systems: JavaScript, ReactJS. References: CVE-2025-31137.","first_seen_at":"2026-11-02T21:00:26.075Z"}]},{"vendor":"akamai","status":"no_source","basis":"claimed","firstOn":null,"firstIsNew":false,"daysToRule":null,"daysAtMost":null,"freePlan":false,"claims":[]},{"vendor":"crs","status":"none","basis":"claimed","firstOn":null,"firstIsNew":false,"daysToRule":null,"daysAtMost":null,"freePlan":false,"claims":[]}],"updatedAt":"2026-11-02T21:17:16.726Z","cvssVector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","ssvc":{"exploitation":"none","automatable":"no","technicalImpact":"partial"},"measured":[],"social":{"total":0,"first_seen":null,"daily":[{"day":"2026-10-21","posts":0},{"day":"2026-10-22","posts":0},{"day":"2026-10-23","posts":0},{"day":"2026-10-24","posts":0},{"day":"2026-10-25","posts":0},{"day":"2026-10-26","posts":0},{"day":"2026-10-27","posts":0},{"day":"2026-10-28","posts":0},{"day":"2026-10-29","posts":0},{"day":"2026-10-30","posts":0},{"day":"2026-10-31","posts":0},{"day":"2026-11-01","posts":0},{"day":"2026-11-02","posts":0},{"day":"2026-11-03","posts":0}],"top_posts":[],"exploit_repositories":[]}}