What’s Vulnerable › Vulnerabilities

CVE-2026-42349: Clerk: Authorization bypass when combining organization, billing, or reverification checks

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

How to fix

Upgrade to a fixed version: @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. Check the vendor advisory for mitigations.

References

Get alerted when CVE-2026-42349 or the next vulnerability affects your stack