<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>@Clerk/Fastify — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/@clerk/fastify/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata — refreshed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Thu, 30 Apr 2026 18:20:02 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/@clerk/fastify/feed.xml" rel="self" type="application/rss+xml"/><item><title>Clerk Authorization Bypass Vulnerability</title><link>https://feed.craftedsignal.io/briefs/2026-04-clerk-auth-bypass/</link><pubDate>Thu, 30 Apr 2026 18:20:02 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-04-clerk-auth-bypass/</guid><description>Clerk has an authorization bypass vulnerability in multiple packages where the `has()` and `auth.protect()` predicates can incorrectly return true, potentially allowing unauthorized actions.</description><content:encoded><![CDATA[<p>A critical authorization bypass vulnerability has been identified in Clerk&rsquo;s authorization predicates (<code>has()</code> and <code>auth.protect()</code>) across multiple SDKs, including <code>@clerk/shared</code>, <code>@clerk/nextjs</code>, and <code>@clerk/backend</code>. This flaw, reported on April 18, 2026, and patched on April 22, 2026, can lead to incorrect authorization decisions when combining multiple authorization dimensions (e.g., reverification with role). Specifically, the predicates may return <code>true</code> even if the user does not satisfy all required conditions, potentially allowing unauthorized access to gated actions. A secondary bypass exists in <code>@clerk/nextjs</code>, where <code>auth.protect()</code> silently discards authorization parameters under certain conditions. The vulnerability affects applications using specific combinations of authorization checks, emphasizing the need for immediate patching.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An attacker identifies an application utilizing affected Clerk packages and vulnerable authorization checks.</li>
<li>The attacker targets an endpoint protected by a combined authorization check (e.g., requiring a specific role and reverification).</li>
<li>The attacker crafts a request that satisfies one, but not all, of the authorization conditions.</li>
<li>Due to the bypass vulnerability, the <code>has()</code> or <code>auth.protect()</code> predicate incorrectly returns <code>true</code>.</li>
<li>The application grants the attacker access to the protected resource or functionality.</li>
<li>In the case of the <code>@clerk/nextjs</code> bypass, the attacker might exploit the silent discarding of authorization parameters when <code>unauthenticatedUrl</code>, <code>unauthorizedUrl</code>, or <code>token</code> are also present in the <code>auth.protect()</code> call, effectively bypassing authorization.</li>
<li>The attacker performs unauthorized actions, such as modifying data or accessing restricted areas of the application.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of this vulnerability could lead to unauthorized access to sensitive resources and functionalities within applications using Clerk for authentication and authorization. This could result in data breaches, privilege escalation, and other security incidents. The vulnerability affects a wide range of Clerk packages, potentially impacting a significant number of applications relying on Clerk for access control. Immediate patching is crucial to mitigate the risk of exploitation.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade to the latest patch release of the consuming app&rsquo;s framework package as specified in the advisory to remediate CVE-2026-42349.</li>
<li>If immediate upgrade is not feasible, implement the suggested workaround of splitting combined <code>has()</code> or <code>auth.protect()</code> calls into sequential single-condition checks as described in the advisory.</li>
<li>Deploy the Sigma rule <code>ClerkAuthProtectBypass</code> to detect potential exploitation attempts by monitoring for calls to <code>auth.protect</code> that include <code>unauthenticatedUrl</code>, <code>unauthorizedUrl</code>, or <code>token</code> parameters.</li>
<li>Deploy the Sigma rule <code>ClerkCombinedAuthCheckBypass</code> to identify suspicious process creation events that may indicate unauthorized access due to the authorization bypass.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>authorization</category><category>bypass</category><category>clerk</category><category>cve-2026-42349</category></item></channel></rss>