CVE-2026-42349
Analyzed
Analyzed - Analysis Complete
Authorization Bypass in Clerk JavaScript SDK
Publication date: 2026-05-11
Last updated on: 2026-06-01
Assigner: GitHub, Inc.
Description
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.
CVSS Scores
EPSS Scores
| Probability: | |
| Percentile: |
Meta Information
Affected Vendors & Products
| Vendor | Product | Version / Range |
|---|---|---|
| clerk | clerk/astro | From 2.0.0 (inc) to 2.17.11 (exc) |
| clerk | clerk/astro | From 3.0.0 (inc) to 3.0.18 (exc) |
| clerk | clerk/backend | From 2.0.0 (inc) to 2.33.3 (exc) |
| clerk | clerk/chrome-extension | From 1.3.5 (inc) to 2.9.15 (exc) |
| clerk | clerk/chrome-extension | From 3.0.0 (inc) to 3.1.15 (exc) |
| clerk | clerk/clerk-expo | From 2.2.11 (inc) to 2.19.36 (exc) |
| clerk | clerk/clerk-js | From 5.22.0 (inc) to 5.125.10 (exc) |
| clerk | clerk/clerk-js | From 6.0.0 (inc) to 6.7.5 (exc) |
| clerk | clerk/clerk-react | From 5.9.0 (inc) to 5.61.6 (exc) |
| clerk | clerk/expo | From 3.0.0 (inc) to 3.2.2 (exc) |
| clerk | clerk/express | From 0.1.0 (inc) to 1.7.79 (exc) |
| clerk | clerk/express | From 2.0.0 (inc) to 2.1.6 (exc) |
| clerk | clerk/fastify | From 1.0.42 (inc) to 2.6.31 (exc) |
| clerk | clerk/fastify | From 3.0.0 (inc) to 3.1.16 (exc) |
| clerk | clerk/hono | From 0.0.2 (inc) to 0.1.16 (exc) |
| clerk | clerk/nextjs | From 6.0.0 (inc) to 6.39.3 (inc) |
| clerk | clerk/nextjs | From 7.0.0 (inc) to 7.2.4 (exc) |
| clerk | clerk/nuxt | From 1.0.0 (inc) to 1.13.29 (exc) |
| clerk | clerk/react | From 6.0.0 (inc) to 6.4.3 (exc) |
| clerk | clerk/react-router | From 0.0.1 (inc) to 2.4.13 (exc) |
| clerk | clerk/react-router | From 3.0.0 (inc) to 3.1.4 (exc) |
| clerk | clerk/shared | From 3.0.0 (inc) to 3.47.5 (exc) |
| clerk | clerk/shared | From 4.0.0 (inc) to 4.8.3 (exc) |
| clerk | clerk/tanstack-react-start | From 0.0.1 (inc) to 0.29.11 (exc) |
| clerk | clerk/tanstack-react-start | From 1.0.0 (inc) to 1.1.4 (exc) |
| clerk | clerk/vue | From 1.0.0 (inc) to 1.17.21 (exc) |
| clerk | clerk/vue | From 2.0.0 (inc) to 2.0.16 (exc) |
| clerk | clerk/backend | From 3.0.0 (inc) to 3.2.14 (exc) |
| clerk | clerk/nuxt | From 2.0.0 (inc) to 2.2.5 (exc) |
Helpful Resources
Exploitability
| CWE ID | Description |
|---|---|
| CWE-863 | The product performs an authorization check when an actor attempts to access a resource or perform an action, but it does not correctly perform the check. |
| CWE-754 | The product does not check or incorrectly checks for unusual or exceptional conditions that are not expected to occur frequently during day to day operation of the product. |