Description
Clerk JavaScript is the official JavaScript repository for Clerk authentication. has(), auth.protect(), and related authorization predicates in @clerk/shared, @clerk/nextjs, @clerk/backend, and other framework SDKs can return true for certain combined authorization checks when the result should be false, allowing a gated action to proceed for a user who does not satisfy the full set of requested conditions. This call shape can be bypassed if certain conditions are met: a has() or auth.protect() call that combines a reverification check with any of role, permission, feature, or plan, or that combines a billing check (feature or plan) with a role or permission check. This vulnerability is fixed in @clerk/clerk-js 5.125.10 and 6.7.5.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
clerk javascript
>= 5.22.0, < 5.125.10affected>= 6.0.0, < 6.7.5affected
@clerk shared
>= 3.0.0, <= 3.47.4affected>= 4.0.0, <= 4.8.2affected
@clerk backend
>= 2.0.0, <= 2.33.2affected>= 3.0.0, <= 3.2.13affected
@clerk nextjs
>= 6.0.0, <= 6.39.2affected>= 7.0.0, <= 7.2.3affected
@clerk clerk-react
>= 5.9.0, <= 5.61.5affected
@clerk react
>= 6.0.0, <= 6.4.2affected
@clerk vue
>= 1.0.0, <= 1.17.20affected>= 2.0.0, <= 2.0.15affected
@clerk astro
>= 2.0.0, <= 2.17.10affected>= 3.0.0, <= 3.0.17affected
@clerk nuxt
>= 1.0.0, <= 1.13.28affected>= 2.0.0, <= 2.2.4affected
@clerk clerk-expo
>= 2.2.11, <= 2.19.35affected
@clerk expo
>= 3.0.0, <= 3.2.1affected
@clerk react-router
>= 0.0.1, <= 2.4.12affected>= 3.0.0, <= 3.1.3affected
@clerk tanstack-react-start
>= 0.0.1, <= 0.29.10affected>= 1.0.0, <= 1.1.3affected
@clerk chrome-extension
>= 1.3.5, <= 2.9.14affected>= 3.0.0, <= 3.1.14affected
@clerk fastify
>= 1.0.42, <= 2.6.30affected>= 3.0.0, <= 3.1.15affected
@clerk express
>= 0.1.0, <= 1.7.78affected>= 2.0.0, <= 2.1.5affected
@clerk hono
>= 0.0.2, <= 0.1.15affected