CVE-2026-42349 json
Clerk: Authorization bypass when combining organization, billing, or reverification checks
published 2026-04-30 6 mo ago modified 2026-10-26 13 d ago also GHSA-w24r-5266-9c3c , EUVD-2026-29125
- cvss
- 8.1
- version 3.1, NVD
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.2%
- EPSS 0.2% chance of exploitation in 30 days, percentile 15%
- public exploits
- 0
- none known
Summary
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.
Patch / fix
- npm @clerk/shared 3.47.5, 4.8.3
- npm @clerk/backend 2.33.3, 3.2.14
- npm @clerk/nextjs 6.39.3, 7.2.4
- npm @clerk/clerk-js 5.125.10, 6.7.5
- npm @clerk/clerk-react 5.61.6
- npm @clerk/react 6.4.3
- npm @clerk/vue 1.17.21, 2.0.16
- npm @clerk/astro 2.17.11, 3.0.18
- npm @clerk/nuxt 1.13.29, 2.2.5
- npm @clerk/clerk-expo 2.19.36
- npm @clerk/expo 3.2.2
- npm @clerk/react-router 2.4.13, 3.1.4
- npm @clerk/tanstack-react-start 0.29.11, 1.1.4
- npm @clerk/chrome-extension 2.9.15, 3.1.15
- npm @clerk/fastify 2.6.31, 3.1.16
- npm @clerk/express 1.7.79, 2.1.6
- npm @clerk/hono 0.1.16
- clerk clerk/astro 2.17.11, 3.0.18
- clerk clerk/backend 2.33.3, 3.2.14
- clerk clerk/chrome-extension 2.9.15, 3.1.15
- clerk clerk/clerk-expo 2.19.36
- clerk clerk/clerk-js 5.125.10, 6.7.5
- clerk clerk/clerk-react 5.61.6
- clerk clerk/expo 3.2.2
- clerk clerk/express 1.7.79, 2.1.6
- clerk clerk/fastify 2.6.31, 3.1.16
- clerk clerk/hono 0.1.16
- clerk clerk/nextjs 7.2.4
- clerk clerk/nuxt 1.13.29, 2.2.5
- clerk clerk/react 6.4.3
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- partial
- Assessed
- 5 mo ago
Exploit prediction
0.25% chance of exploitation in the next 30 days, higher than 15% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/clerk/javascript/security/advisories/GHSA-w24r-5266-9c3c referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 7.6 | CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N |
| CNA | 4.0 | 7.6 | CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/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 |
| NVD | 3.1 | 8.1 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N |
| GitHub | 3.1 | 8.1 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| npm | @clerk/shared | >=3.0.0, <3.47.5 >=4.0.0, <4.8.3 |
3.47.5 4.8.3 |
| npm | @clerk/backend | >=2.0.0, <2.33.3 >=3.0.0, <3.2.14 |
2.33.3 3.2.14 |
| npm | @clerk/nextjs | >=6.0.0, <6.39.3 >=7.0.0, <7.2.4 |
6.39.3 7.2.4 |
| npm | @clerk/clerk-js | >=5.22.0, <5.125.10 >=6.0.0, <6.7.5 |
5.125.10 6.7.5 |
| npm | @clerk/clerk-react | >=5.9.0, <5.61.6 |
5.61.6 |
| npm | @clerk/react | >=6.0.0, <6.4.3 |
6.4.3 |
| npm | @clerk/vue | >=1.0.0, <1.17.21 >=2.0.0, <2.0.16 |
1.17.21 2.0.16 |
| npm | @clerk/astro | >=2.0.0, <2.17.11 >=3.0.0, <3.0.18 |
2.17.11 3.0.18 |
| npm | @clerk/nuxt | >=1.0.0, <1.13.29 >=2.0.0, <2.2.5 |
1.13.29 2.2.5 |
| npm | @clerk/clerk-expo | >=2.2.11, <2.19.36 |
2.19.36 |
| npm | @clerk/expo | >=3.0.0, <3.2.2 |
3.2.2 |
| npm | @clerk/react-router | >=0.0.1, <2.4.13 >=3.0.0, <3.1.4 |
2.4.13 3.1.4 |
| npm | @clerk/tanstack-react-start | >=0.0.1, <0.29.11 >=1.0.0, <1.1.4 |
0.29.11 1.1.4 |
| npm | @clerk/chrome-extension | >=1.3.5, <2.9.15 >=3.0.0, <3.1.15 |
2.9.15 3.1.15 |
| npm | @clerk/fastify | >=1.0.42, <2.6.31 >=3.0.0, <3.1.16 |
2.6.31 3.1.16 |
| npm | @clerk/express | >=0.1.0, <1.7.79 >=2.0.0, <2.1.6 |
1.7.79 2.1.6 |
| npm | @clerk/hono | >=0.0.2, <0.1.16 |
0.1.16 |
Affected products
- clerk javascript
- @clerk shared
- @clerk backend
- @clerk nextjs
- @clerk clerk-react
- @clerk react
- @clerk vue
- @clerk astro
- @clerk nuxt
- @clerk clerk-expo
- @clerk expo
- @clerk react-router
- @clerk tanstack-react-start
- @clerk chrome-extension
- @clerk fastify
- @clerk express
- @clerk hono
Classification
- Weakness
- Technology feeds
References
-
github.com
/clerk/javascript/security/advisories/GHSA-w24r-5266-9c3c
exploit, web, mitigation, vendor-advisory
-
nvd.nist.gov
/vuln/detail/CVE-2026-42349
advisory
-
github.com
/clerk/javascript
package
Sources
- CVE List CVE-2026-42349
- GitHub Advisory GHSA-w24r-5266-9c3c
- NVD CVE-2026-42349
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.