{"id":"CVE-2026-53663","aliases":["CLSA-2026-1791465168","CLSA-2026-1792191744","CLSA-2026-1792253402","CLSA-2026-1792253416","CLSA-2026-1793102180","CLSA-2026-1793120008","EUVD-2026-38338","GHSA-84g9-w2xq-vcv6","ROOT-APP-NPM-CVE-2026-53663","openSUSE-SU-2026:11325-1"],"status":"published","title":"React Router: `handleDocumentRequest` CSRF check covers `POST` only; PUT/PATCH/DELETE bypass","description":"React Router is a router for React. From 7.12.0 until 7.15.1, certain CSRF checks in React Router v7 Framework Mode were insufficient and run on POST requests, but were bypassed on PUT/PATCH/DELETE requests. This is a low severity vulnerability because modern browser protections (CORS preflight, SameSite cookies) already block the cross-origin attack vectors that this missing CSRF check would otherwise gate. This vulnerability is fixed in 7.15.1.","severity":{"version":"3.1","score":3.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:L/A:N","level":"low","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-09","score":0.00148,"percentile":0.03997,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-352"],"published":"2026-06-15T20:06:15Z","modified":"2026-11-06T13:28:06Z","fixes":[{"ecosystem":"npm","package":"react-router","fixed_in":["7.15.1"],"sources":["ghsa","osv"]},{"ecosystem":"npm","package":"@remix-run/server-runtime","fixed_in":["2.17.5"],"sources":["ghsa","osv"]},{"ecosystem":"TuxCare:npm","package":"react-router","fixed_in":["7.14.1-tuxcare.3"],"sources":["osv"]},{"ecosystem":"Root:npm","package":"react-router","fixed_in":["7.15.1-aikido.1","7.15.1-aikido.3"],"sources":["osv"]},{"ecosystem":"Root:npm","package":"@rootio/react-router","fixed_in":["7.15.1-root.io.1","7.15.1-root.io.3"],"sources":["osv"]},{"ecosystem":"openSUSE:Tumbleweed","package":"agama-web-ui","fixed_in":["23+0.f26ed5eab-49.1"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"npm","package":"react-router","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"7.12.0"},{"fixed":"7.15.1"}]}]},{"source":"ghsa","ecosystem":"npm","package":"@remix-run/server-runtime","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.17.3"},{"fixed":"2.17.5"}]}]},{"source":"osv","ecosystem":"TuxCare:npm","package":"react-router","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"7.15.0-tuxcare.0"},{"fixed":"7.15.0-tuxcare.1"}]}],"versions":["7.15.0"],"bundled":4},{"source":"osv","ecosystem":"TuxCare:npm","package":"react-router","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"7.14.2-tuxcare.0"},{"fixed":"7.14.2-tuxcare.1"}]}],"versions":["7.14.2"],"bundled":4},{"source":"osv","ecosystem":"TuxCare:npm","package":"react-router-dom","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"7.15.0-tuxcare.0"},{"fixed":"7.15.0-tuxcare.1"}]}],"versions":["7.15.0"],"bundled":4},{"source":"osv","ecosystem":"TuxCare:npm","package":"react-router-dom","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"7.14.2-tuxcare.0"},{"fixed":"7.14.2-tuxcare.1"}]}],"versions":["7.14.2"],"bundled":4},{"source":"osv","ecosystem":"TuxCare:npm","package":"react-router","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"7.13.1-tuxcare.0"},{"fixed":"7.13.1-tuxcare.2"}]}],"versions":["7.13.1","7.13.1-tuxcare.1"],"bundled":5},{"source":"osv","ecosystem":"TuxCare:npm","package":"react-router","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"7.14.1-tuxcare.0"},{"fixed":"7.14.1-tuxcare.3"}]}],"versions":["7.14.1","7.14.1-tuxcare.1","7.14.1-tuxcare.2"]},{"source":"osv","ecosystem":"npm","package":"react-router","ranges":[{"type":"SEMVER","events":[{"introduced":"7.12.0"},{"fixed":"7.15.1"}]}]},{"source":"osv","ecosystem":"npm","package":"@remix-run/server-runtime","ranges":[{"type":"SEMVER","events":[{"introduced":"2.17.3"},{"fixed":"2.17.5"}]}]},{"source":"osv","ecosystem":"Root:npm","package":"react-router","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"7.15.1-aikido.1"},{"fixed":"7.15.1-aikido.3"}]}]},{"source":"osv","ecosystem":"Root:npm","package":"@rootio/react-router","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"7.15.1-root.io.1"},{"fixed":"7.15.1-root.io.3"}]}]},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"agama-web-ui","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"23+0.f26ed5eab-49.1"}]}]}],"products":[{"vendor":"@remix-run","product":"server-runtime"},{"vendor":"@tanstack","product":"react-router"},{"vendor":"remix-run","product":"react-router"}],"references":[{"url":"https://github.com/remix-run/react-router/security/advisories/GHSA-84g9-w2xq-vcv6","tags":["x_refsource_CONFIRM","advisory","web"]},{"url":"https://github.com/advisories/GHSA-84g9-w2xq-vcv6"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/53xxx/CVE-2026-53663.json","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-53663","tags":["advisory"]},{"url":"https://github.com/remix-run/react-router","tags":["package"]},{"url":"","tags":["advisory"]},{"url":"https://www.suse.com/security/cve/CVE-2026-53663","tags":["web"]}],"sources":{"cve":[{"id":"CVE-2026-53663","title":"React Router: `handleDocumentRequest` CSRF check covers `POST` only; PUT/PATCH/DELETE bypass","description":"React Router is a router for React. From 7.12.0 until 7.15.1, certain CSRF checks in React Router v7 Framework Mode were insufficient and run on POST requests, but were bypassed on PUT/PATCH/DELETE requests. This is a low severity vulnerability because modern browser protections (CORS preflight, SameSite cookies) already block the cross-origin attack vectors that this missing CSRF check would otherwise gate. This vulnerability is fixed in 7.15.1.","status":"published","published":"2026-06-22T17:39:29.16Z","modified":"2026-06-22T19:52:50.287Z","cvss":[{"version":"3.1","score":3.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:L/A:N","level":"low","assessor":"cna"}],"cwes":["CWE-352"],"updated_at":"2026-11-02T14:20:00.11477Z"}],"euvd":[{"id":"EUVD-2026-38338","description":"React Router is a router for React. From 7.12.0 until 7.15.1, certain CSRF checks in React Router v7 Framework Mode were insufficient and run on POST requests, but were bypassed on PUT/PATCH/DELETE requests. This is a low severity vulnerability because modern browser protections (CORS preflight, SameSite cookies) already block the cross-origin attack vectors that this missing CSRF check would otherwise gate. This vulnerability is fixed in 7.15.1.","status":"published","published":"2026-06-22T17:39:29Z","modified":"2026-06-22T19:52:50Z","cvss":[{"version":"3.1","score":3.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:L/A:N","level":"low"}],"updated_at":"2026-11-02T18:20:33.850201Z"}],"ghsa":[{"id":"GHSA-84g9-w2xq-vcv6","title":"React Router: Potential CSRF via PUT/PATCH/DELETE document requests","description":"Certain CSRF checks in React Router v7 [Framework Mode]() were insufficient and run on POST requests, but were bypassed on PUT/PATCH/DELETE requests.  This is a low severity vulnerability because modern browser protections (CORS preflight, SameSite cookies) already block the cross-origin attack vectors that this missing CSRF check would otherwise gate.\n\n\u003e [!NOTE]\n\u003e This does not impact your React Router application if you are using [Declarative Mode](https://reactrouter.com/start/modes#framework) (`\u003cBrowserRouter\u003e`) or [Data Mode](https://reactrouter.com/start/modes#data) (`createBrowserRouter`/`\u003cRouterProvider\u003e`).","status":"published","published":"2026-06-15T20:06:15Z","modified":"2026-06-15T20:06:17Z","cvss":[{"version":"3.1","score":3.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:L/A:N","level":"low"}],"cwes":["CWE-352"],"updated_at":"2026-11-02T14:40:27.329706Z"}],"nvd":[{"id":"CVE-2026-53663","description":"React Router is a router for React. From 7.12.0 until 7.15.1, certain CSRF checks in React Router v7 Framework Mode were insufficient and run on POST requests, but were bypassed on PUT/PATCH/DELETE requests. This is a low severity vulnerability because modern browser protections (CORS preflight, SameSite cookies) already block the cross-origin attack vectors that this missing CSRF check would otherwise gate. This vulnerability is fixed in 7.15.1.","status":"published","published":"2026-06-22T19:17:13.167Z","modified":"2026-06-23T16:04:55.583Z","cvss":[{"version":"3.1","score":3.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:L/A:N","level":"low","assessor":"secondary"}],"cwes":["CWE-352"],"updated_at":"2026-11-02T14:12:24.912854Z"}],"osv":[{"id":"CVE-2026-53663","title":"React Router: `handleDocumentRequest` CSRF check covers `POST` only; PUT/PATCH/DELETE bypass","description":"React Router is a router for React. From 7.12.0 until 7.15.1, certain CSRF checks in React Router v7 Framework Mode were insufficient and run on POST requests, but were bypassed on PUT/PATCH/DELETE requests. This is a low severity vulnerability because modern browser protections (CORS preflight, SameSite cookies) already block the cross-origin attack vectors that this missing CSRF check would otherwise gate. This vulnerability is fixed in 7.15.1.","status":"published","published":"2026-06-22T17:39:29.16Z","modified":"2026-10-28T02:30:24.679852848Z","cvss":[{"version":"3.1","score":3.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:L/A:N","level":"low"}],"cwes":["CWE-352"],"updated_at":"2026-11-02T15:45:08.132336Z"},{"id":"GHSA-84g9-w2xq-vcv6","title":"React Router: Potential CSRF via PUT/PATCH/DELETE document requests","description":"Certain CSRF checks in React Router v7 [Framework Mode]() were insufficient and run on POST requests, but were bypassed on PUT/PATCH/DELETE requests.  This is a low severity vulnerability because modern browser protections (CORS preflight, SameSite cookies) already block the cross-origin attack vectors that this missing CSRF check would otherwise gate.\n\n\u003e [!NOTE]\n\u003e This does not impact your React Router application if you are using [Declarative Mode](https://reactrouter.com/start/modes#framework) (`\u003cBrowserRouter\u003e`) or [Data Mode](https://reactrouter.com/start/modes#data) (`createBrowserRouter`/`\u003cRouterProvider\u003e`).","status":"published","published":"2026-06-15T20:06:15Z","modified":"2026-09-10T03:51:08.115397519Z","cvss":[{"version":"3.1","score":3.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:L/A:N","level":"low"}],"cwes":["CWE-352"],"updated_at":"2026-11-02T15:46:41.732368Z"},{"id":"CLSA-2026-1791465168","title":"TuxCare security update for react-router (4 CVEs)","description":"TuxCare rebuilt react-router to address 4 CVEs. Fixed in 7.15.0-tuxcare.1.","status":"published","published":"2026-10-08T13:12:48Z","modified":"2026-10-17T19:01:21.226787593Z","updated_at":"2026-11-02T15:43:49.016976Z"},{"id":"CLSA-2026-1792191744","title":"TuxCare security update for react-router (4 CVEs)","description":"TuxCare rebuilt react-router to address 4 CVEs. Fixed in 7.14.2-tuxcare.1.","status":"published","published":"2026-10-16T23:02:24Z","modified":"2026-10-26T13:21:31Z","updated_at":"2026-11-02T15:43:51.747192Z"},{"id":"CLSA-2026-1792253402","title":"TuxCare security update for react-router-dom (4 CVEs)","description":"TuxCare rebuilt react-router-dom to address 4 CVEs. Fixed in 7.15.0-tuxcare.1.","status":"published","published":"2026-10-17T16:09:58Z","modified":"2026-10-17T19:00:57.374661978Z","updated_at":"2026-11-02T15:43:52.011757Z"},{"id":"CLSA-2026-1792253416","title":"TuxCare security update for react-router-dom (4 CVEs)","description":"TuxCare rebuilt react-router-dom to address 4 CVEs. Fixed in 7.14.2-tuxcare.1.","status":"published","published":"2026-10-17T16:10:13Z","modified":"2026-10-17T19:01:42.615026866Z","updated_at":"2026-11-02T15:43:52.011757Z"},{"id":"CLSA-2026-1793102180","title":"TuxCare security update for react-router (5 CVEs)","description":"TuxCare rebuilt react-router to address 5 CVEs. Fixed in 7.13.1-tuxcare.2.","status":"published","published":"2026-10-27T11:56:20Z","modified":"2026-11-06T13:28:06.223566287Z","updated_at":"2026-11-06T13:44:09.891978Z"},{"id":"CLSA-2026-1793120008","title":"TuxCare security update for react-router (1 CVE)","description":"TuxCare rebuilt react-router to address 1 CVE. Fixed in 7.14.1-tuxcare.3.","status":"published","published":"2026-10-27T16:53:28Z","modified":"2026-10-27T19:30:06.701639114Z","updated_at":"2026-11-02T15:43:55.34846Z"},{"id":"openSUSE-SU-2026:11325-1","title":"agama-web-ui-23+0.f26ed5eab-49.1 on GA media","description":"These are all security issues fixed in the agama-web-ui-23+0.f26ed5eab-49.1 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2026-07-22T00:00:00Z","modified":"2026-07-23T09:45:06.877276198Z","updated_at":"2026-11-02T16:58:38.95195Z"},{"id":"ROOT-APP-NPM-CVE-2026-53663","title":"CVE-2026-53663 in react-router - Patched by Root","description":"Root has patched CVE-2026-53663 in the react-router package for Root:npm. Multiple fixed versions available.","status":"published","published":"2026-08-09T08:32:50Z","modified":"2026-08-09T10:15:12.972785116Z","updated_at":"2026-11-02T15:53:27.649662Z"}]}}
