CVE-2026-42349
Clerk has an authorization bypass when combining organization, billing, or reverification checks
Impact
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 packages
| Ecosystem | Package | Affected | Fixed in |
|---|---|---|---|
| npm | @clerk/shared | >= 3.0.0, <= 3.47.4 | 3.47.5 |
| npm | @clerk/backend | >= 2.0.0, <= 2.33.2 | 2.33.3 |
| npm | @clerk/nextjs | >= 6.0.0, <= 6.39.2 | 6.39.3 |
| npm | @clerk/clerk-js | >= 5.22.0, <= 5.125.9 | 5.125.10 |
| npm | @clerk/clerk-react | >= 5.9.0, <= 5.61.5 | 5.61.6 |
| npm | @clerk/react | >= 6.0.0, <= 6.4.2 | 6.4.3 |
| npm | @clerk/vue | >= 1.0.0, <= 1.17.20 | 1.17.21 |
| npm | @clerk/astro | >= 2.0.0, <= 2.17.10 | 2.17.11 |
| npm | @clerk/nuxt | >= 1.0.0, <= 1.13.28 | 1.13.29 |
| npm | @clerk/clerk-expo | >= 2.2.11, <= 2.19.35 | 2.19.36 |
| npm | @clerk/expo | >= 3.0.0, <= 3.2.1 | 3.2.2 |
| npm | @clerk/react-router | >= 0.0.1, <= 2.4.12 | 2.4.13 |
| npm | @clerk/tanstack-react-start | >= 0.0.1, <= 0.29.10 | 0.29.11 |
| npm | @clerk/chrome-extension | >= 1.3.5, <= 2.9.14 | 2.9.15 |
| npm | @clerk/fastify | >= 1.0.42, <= 2.6.30 | 2.6.31 |
| npm | @clerk/express | >= 0.1.0, <= 1.7.78 | 1.7.79 |
| npm | @clerk/hono | >= 0.0.2, <= 0.1.15 | 0.1.16 |
Affected products
| Vendor | Product | Affected versions |
|---|---|---|
| Clerk | Clerk\/Astro | from 2.0.0 before 2.17.11 from 3.0.0 before 3.0.18 |
| Clerk | Clerk\/Backend | from 2.0.0 before 2.33.3 from 3.0.0 before 3.2.14 |
| Clerk | Clerk\/Chrome-Extension | from 1.3.5 before 2.9.15 from 3.0.0 before 3.1.15 |
| Clerk | Clerk\/Clerk-Expo | from 2.2.11 before 2.19.36 |
| Clerk | Clerk\/Clerk-Js | from 5.22.0 before 5.125.10 from 6.0.0 before 6.7.5 |
| Clerk | Clerk\/Clerk-React | from 5.9.0 before 5.61.6 |
| Clerk | Clerk\/Expo | from 3.0.0 before 3.2.2 |
| Clerk | Clerk\/Express | from 0.1.0 before 1.7.79 from 2.0.0 before 2.1.6 |
| Clerk | Clerk\/Fastify | from 1.0.42 before 2.6.31 from 3.0.0 before 3.1.16 |
| Clerk | Clerk\/Hono | from 0.0.2 before 0.1.16 |
| Clerk | Clerk\/Nextjs | from 6.0.0 through 6.39.3 from 7.0.0 before 7.2.4 |
| Clerk | Clerk\/Nuxt | from 1.0.0 before 1.13.29 from 2.0.0 before 2.2.5 |