High, CVSS 7.6npmAmendedPublished
Clerk has an authorization bypass when combining organization, billing, or reverification checks
CVE-2026-42349 · GHSA-w24r-5266-9c3c
- Affected
- npm @clerk/clerk-react >= 5.9.0, <= 5.61.5
- Fixed in
- 5.61.6· Vendor fix available
- Issue
- 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. Sessions are not compromised and no existing user can be impersonated. The bypass is limited to the authorization decision returned by the predicate. clerkMiddleware continues to authenticate requests correctly, auth() reflects the real authentication state, and token verification is unaffected. Who is affected All apps that combine more than one authorization dimension in a single has() or auth.protect() call should upgrade to the patched versions. Patches are drop-in with no API changes. The information below describes the scope of the bypass and helps developers understand whether their apps are potentially affected, but is not a reason to delay the…
Recommended action: Upgrade to 5.61.6 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.