{"id":"CVE-2025-48370","aliases":["EUVD-2025-16354","GHSA-8r88-6cj9-9fh5"],"status":"published","title":"auth-js Vulnerable to Insecure Path Routing from Malformed User Input","description":"auth-js is an isomorphic Javascript library for Supabase Auth. Prior to version 2.70.0, the library functions getUserById, deleteUser, updateUserById, listFactors and deleteFactor did not require the user supplied values to be valid UUIDs. This could lead to a URL path traversal, resulting in the wrong API function being called. Implementations that follow security best practice and validate user controlled inputs, such as the userId are not affected by this. This issue has been patched in version 2.70.0.","severity":{"version":"4.0","score":2.7,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N/E:U","level":"low","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-10","score":0.00902,"percentile":0.60037,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-22","CWE-287"],"published":"2025-05-27T15:27:00Z","modified":"2026-10-28T02:31:01Z","fixes":[{"ecosystem":"npm","package":"@supabase/auth-js","fixed_in":["2.70.0"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"npm","package":"@supabase/auth-js","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"2.69.1"},{"fixed":"2.70.0"}]}]},{"source":"osv","ecosystem":"npm","package":"@supabase/auth-js","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"2.70.0"}]}]}],"products":[{"vendor":"supabase","product":"auth-js"}],"references":[{"url":"https://github.com/supabase/auth-js/security/advisories/GHSA-8r88-6cj9-9fh5","tags":["x_refsource_CONFIRM","advisory","web"]},{"url":"https://github.com/supabase/auth-js/pull/1063","tags":["x_refsource_MISC","fix","web"]},{"url":"https://github.com/supabase/auth-js/commit/1bcb76e479e51cd9bca2d7732d0bf3199e07a693","tags":["x_refsource_MISC","fix","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2025-48370","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-8r88-6cj9-9fh5"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/48xxx/CVE-2025-48370.json","tags":["advisory"]},{"url":"https://github.com/supabase/auth-js","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2025-48370","title":"auth-js Vulnerable to Insecure Path Routing from Malformed User Input","description":"auth-js is an isomorphic Javascript library for Supabase Auth. Prior to version 2.70.0, the library functions getUserById, deleteUser, updateUserById, listFactors and deleteFactor did not require the user supplied values to be valid UUIDs. This could lead to a URL path traversal, resulting in the wrong API function being called. Implementations that follow security best practice and validate user controlled inputs, such as the userId are not affected by this. This issue has been patched in version 2.70.0.","status":"published","published":"2025-05-27T15:27:00.864Z","modified":"2026-07-27T18:46:14.582Z","cvss":[{"version":"4.0","score":2.7,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N/E:U","level":"low","assessor":"cna"}],"cwes":["CWE-287","CWE-22"],"updated_at":"2026-11-02T14:32:41.41198Z"}],"euvd":[{"id":"EUVD-2025-16354","description":"auth-js is an isomorphic Javascript library for Supabase Auth. Prior to version 2.70.0, the library functions getUserById, deleteUser, updateUserById, listFactors and deleteFactor did not require the user supplied values to be valid UUIDs. This could lead to a URL path traversal, resulting in the wrong API function being called. Implementations that follow security best practice and validate user controlled inputs, such as the userId are not affected by this. This issue has been patched in version 2.70.0.","status":"published","published":"2025-05-27T15:27:00Z","modified":"2026-07-27T18:46:14Z","cvss":[{"version":"4.0","score":2.7,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N/E:U","level":"low"}],"updated_at":"2026-11-02T18:02:33.886037Z"}],"ghsa":[{"id":"GHSA-8r88-6cj9-9fh5","title":"auth-js Vulnerable to Insecure Path Routing from Malformed User Input","description":"### Impact\nThe library functions `getUserById`, `deleteUser`, `updateUserById`, `listFactors` and `deleteFactor` did not require the user supplied values to be valid UUIDs. This could lead to a URL path traversal, resulting in the wrong API function being called.\n\nImplementations that follow security best practice and validate user controlled inputs, such as the `userId` are not affected by this.\n\n### Patches\nStrict value checks have been added to all affected functions. These functions now require that the `userId` and `factorId` parameters MUST be valid UUID (v4).\n\n**Patched version:** \u003e= 2.69.1\n\n### Workarounds\nImplementations that follow security best practice and validate user controlled inputs, such as the `userId` are not affected by this. It is recommended that users of the auth-js library always follow security best practice and validate all inputs, before passing these to other functions or libraries.\n\n### References\nhttps://github.com/supabase/auth-js/pull/1063","status":"published","published":"2025-05-27T18:00:17Z","modified":"2026-05-05T17:59:55Z","cvss":[{"version":"4.0","score":2.7,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N/E:U","level":"low"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T14:40:00.970271Z"}],"nvd":[{"id":"CVE-2025-48370","description":"auth-js is an isomorphic Javascript library for Supabase Auth. Prior to version 2.70.0, the library functions getUserById, deleteUser, updateUserById, listFactors and deleteFactor did not require the user supplied values to be valid UUIDs. This could lead to a URL path traversal, resulting in the wrong API function being called. Implementations that follow security best practice and validate user controlled inputs, such as the userId are not affected by this. This issue has been patched in version 2.70.0.","status":"published","published":"2025-05-27T16:15:32.88Z","modified":"2026-06-17T09:29:33.677Z","cvss":[{"version":"4.0","score":2.7,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N/E:U/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","level":"low","assessor":"secondary"}],"cwes":["CWE-22","CWE-287"],"updated_at":"2026-11-02T14:11:09.562272Z"}],"osv":[{"id":"CVE-2025-48370","title":"auth-js Vulnerable to Insecure Path Routing from Malformed User Input","description":"auth-js is an isomorphic Javascript library for Supabase Auth. Prior to version 2.70.0, the library functions getUserById, deleteUser, updateUserById, listFactors and deleteFactor did not require the user supplied values to be valid UUIDs. This could lead to a URL path traversal, resulting in the wrong API function being called. Implementations that follow security best practice and validate user controlled inputs, such as the userId are not affected by this. This issue has been patched in version 2.70.0.","status":"published","published":"2025-05-27T15:27:00.864Z","modified":"2026-10-28T02:31:01.603025596Z","cvss":[{"version":"4.0","score":2.7,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N/E:U","level":"low"}],"cwes":["CWE-22","CWE-287"],"updated_at":"2026-11-02T15:44:50.037003Z"},{"id":"GHSA-8r88-6cj9-9fh5","title":"auth-js Vulnerable to Insecure Path Routing from Malformed User Input","description":"### Impact\nThe library functions `getUserById`, `deleteUser`, `updateUserById`, `listFactors` and `deleteFactor` did not require the user supplied values to be valid UUIDs. This could lead to a URL path traversal, resulting in the wrong API function being called.\n\nImplementations that follow security best practice and validate user controlled inputs, such as the `userId` are not affected by this.\n\n### Patches\nStrict value checks have been added to all affected functions. These functions now require that the `userId` and `factorId` parameters MUST be valid UUID (v4).\n\n**Patched version:** \u003e= 2.69.1\n\n### Workarounds\nImplementations that follow security best practice and validate user controlled inputs, such as the `userId` are not affected by this. It is recommended that users of the auth-js library always follow security best practice and validate all inputs, before passing these to other functions or libraries.\n\n### References\nhttps://github.com/supabase/auth-js/pull/1063","status":"published","published":"2025-05-27T18:00:17Z","modified":"2026-05-05T18:18:39.323414Z","cvss":[{"version":"4.0","score":2.7,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N/E:U","level":"low"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T15:46:42.78452Z"}]}}
