<?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>Pac4j JWT Module — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/pac4j-jwt-module/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata. Fed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Sat, 30 May 2026 08:03:04 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/pac4j-jwt-module/feed.xml" rel="self" type="application/rss+xml"/><item><title>CVE-2026-29000: pac4j JWT Authentication Bypass Vulnerability</title><link>https://feed.craftedsignal.io/briefs/2026-05-cve-2026-29000-pac4j/</link><pubDate>Sat, 30 May 2026 08:03:04 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-05-cve-2026-29000-pac4j/</guid><description>A public exploit is available for CVE-2026-29000, a critical authentication bypass vulnerability in pac4j's JWT implementation, allowing attackers to forge admin tokens without a valid signature by exploiting flaws in the library's handling of unsigned tokens and JWE-wrapped tokens.</description><content:encoded><![CDATA[<p>A proof-of-concept exploit has been released for CVE-2026-29000, a critical authentication bypass vulnerability affecting the pac4j JWT implementation. This flaw allows attackers to forge administrative tokens without possessing a valid signature. The vulnerability stems from the library&rsquo;s acceptance of unsigned tokens with the <code>alg: &quot;none&quot;</code> header and its failure to properly validate the inner JWT signature when using JWE-wrapped tokens. An attacker can craft an unsigned JWT containing arbitrary claims such as <code>role: &quot;ROLE_ADMIN&quot;</code>, encrypt it using the server&rsquo;s public key, and subsequently gain unauthorized administrative access. This exploit poses a significant risk to applications utilizing vulnerable versions of pac4j, particularly those that rely on JWT-based authentication for access control.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>The attacker identifies a target application using pac4j for JWT authentication that exposes a JWKS endpoint (e.g., <code>/.well-known/jwks.json</code> or <code>/api/auth/jwks</code>).</li>
<li>The attacker retrieves the server&rsquo;s public key from the JWKS endpoint using <code>curl</code> or a similar tool.</li>
<li>The attacker crafts an unsigned JWT with the header <code>{&quot;alg&quot;: &quot;none&quot;, &quot;type&quot;: &quot;JWT&quot;}</code> and a payload containing malicious claims, such as <code>{&quot;sub&quot;: &quot;attacker&quot;, &quot;role&quot;: &quot;ROLE_ADMIN&quot;}</code>.</li>
<li>The attacker encrypts the unsigned JWT into a JWE token using the server&rsquo;s RSA public key and an encryption algorithm like RSA-OAEP-256 with A128GCM.</li>
<li>The attacker sends an HTTP request to a protected endpoint with the forged JWE token in the <code>Authorization</code> header (e.g., <code>Authorization: Bearer &lt;jwe_token&gt;</code>).</li>
<li>The vulnerable pac4j implementation on the server decrypts the JWE token.</li>
<li>Due to the lack of signature validation on the inner JWT, the server trusts the claims in the unsigned JWT, including the <code>ROLE_ADMIN</code> claim.</li>
<li>The attacker gains unauthorized administrative access to the application and its resources.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of CVE-2026-29000 allows an attacker to bypass authentication and gain administrative privileges on the affected application. This can lead to complete compromise of the application, including data theft, modification, and deletion, as well as potential lateral movement to other systems. The impact is particularly severe for applications that handle sensitive data or control critical infrastructure. The availability of a public exploit increases the likelihood of widespread exploitation.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Apply the recommended mitigation steps for developers using pac4j: enforce JWT signature verification, validate the JWT algorithm (rejecting <code>alg: &quot;none&quot;</code>), and update pac4j to the latest version.</li>
<li>For system administrators, restrict access to the JWKS endpoint (e.g., using Nginx configuration as described in the source content) to internal networks only to mitigate reconnaissance attempts.</li>
<li>Deploy the provided Sigma rule to detect the acceptance of JWT tokens with the <code>alg: none</code> header.</li>
<li>Monitor authentication logs for warnings about unsigned tokens being accepted, as detailed in the &ldquo;Detection and Indicators&rdquo; section.</li>
<li>Use the provided network indicators (URLs) to identify potential reconnaissance activity targeting JWKS endpoints.</li>
</ul>
]]></content:encoded><category domain="severity">critical</category><category domain="type">advisory</category><category>authentication-bypass</category><category>jwt</category><category>pac4j</category><category>cve-2026-29000</category></item></channel></rss>