CVE-2025-48370: auth-js Vulnerable to Insecure Path Routing from Malformed User Input
Impact 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.
Patches Strict value checks have been added to all affected functions. These functions now require that the userId and factorId parameters MUST be valid UUID (v4).
Patched version: >= 2.69.1
Workarounds Implementations 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.
References https://github.com/supabase/auth-js/pull/1063
Other sources
auth-js is an isomorphic Javascript library for Supabase Auth. Prior to version 2.69.1, 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.69.1.
— NVD
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.
— MITRE
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
npm/@supabase/auth-jsto a version that resolves this vulnerability.Fixed in 2.69.1 - Upgrade
Upgrade
auth-jsto a version that resolves this vulnerability.Fixed in >= 2.69.1 - Configuration
Ensure callers pass only valid UUID (v4) values for the userId parameter (and factorId where applicable) to auth-js functions: getUserById, deleteUser, updateUserById, listFactors, and deleteFactor, because these functions now require UUID v4 for userId and factorId.
auth-js library functions getUserById, deleteUser, updateUserById, listFactors, deleteFactor userId and factorId format validation = must be valid UUID (v4) - Compensating control
Validate user-controlled inputs (e.g., userId and factorId) before passing them to auth-js functions to prevent malformed values from causing insecure path routing / wrong API function invocation.
Event History
Frequently Asked Questions
What is the severity of CVE-2025-48370?
CVE-2025-48370 is considered a medium severity vulnerability due to the risk of URL path traversal.
How do I fix CVE-2025-48370?
To fix CVE-2025-48370, upgrade the Supabase auth-js library to version 2.69.1 or later.
What functionalities are impacted by CVE-2025-48370?
CVE-2025-48370 affects the functions getUserById, deleteUser, updateUserById, listFactors, and deleteFactor.
What potential risks does CVE-2025-48370 pose?
The vulnerability may allow attackers to exploit invalid user-supplied values leading to unauthorized access or data manipulation.
Which versions of Supabase auth-js are affected by CVE-2025-48370?
Versions of Supabase auth-js prior to 2.69.1 are affected by CVE-2025-48370.