<?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/" xmlns:webfeeds="http://webfeeds.org/rss/1.0"><channel><title>Lemur (&gt;= 0.5.0, &lt;= 1.9.2) - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/lemur--0.5.0--1.9.2/</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>Tue, 18 Aug 2026 20:56:29 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/lemur--0.5.0--1.9.2/feed.xml" rel="self" type="application/rss+xml"/><image><url>https://feed.craftedsignal.io/favicon-32x32.png</url><title>CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/</link><width>32</width><height>32</height></image><webfeeds:icon>https://feed.craftedsignal.io/favicon.svg</webfeeds:icon><item><title>Authorization Bypass in Lemur Leading to Unauthorized Certificate Revocation</title><link>https://feed.craftedsignal.io/briefs/2026-08-lemur-cert-revocation/</link><pubDate>Tue, 18 Aug 2026 20:56:29 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-08-lemur-cert-revocation/</guid><description>An authorization bypass vulnerability in Lemur allows authenticated users to revoke arbitrary certificates by creating duplicate certificate records and bypassing ownership and endpoint-attached safeguards.</description><content:encoded><![CDATA[<p>Lemur (&lt;= 1.9.2) contains a critical authorization bypass vulnerability, identified as CVE-2026-71417, which permits any authenticated user with non-read-only permissions to revoke production certificates. The vulnerability stems from an insecure certificate upload workflow that allows users to supply external identifiers (like <code>body</code> or <code>external_id</code>) without validating <code>AuthorityPermission</code>.</p>
<p>Because the Lemur database lacks uniqueness constraints on these identifiers, an attacker can create a duplicate certificate record for a target production certificate. When the attacker initiates a revocation on this newly created, attacker-owned duplicate, the application's authorization logic bypasses the ownership check. Furthermore, because the duplicate record has no associated endpoints in the Lemur database, the safety mechanism designed to prevent the revocation of active production certificates is entirely bypassed. This allows an attacker to interact with the issuing CA using the CA's stored credentials to revoke legitimate, live certificates, facilitating mass denial-of-service (DoS) of TLS-protected infrastructure.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>The attacker queries the API (e.g., <code>GET /api/1/certificates/&lt;ID&gt;</code>) to obtain the <code>body</code>, <code>authority.id</code>, and <code>external_id</code> of a target production certificate.</li>
<li>The attacker uses the <code>POST /api/1/certificates/upload</code> endpoint to create a new certificate record in the Lemur database.</li>
<li>The attacker provides the target's stolen metadata in the upload request; Lemur accepts this as a new record because it lacks uniqueness constraints on <code>body</code> or <code>external_id</code>.</li>
<li>The attacker is now the creator/owner of the new, duplicate database record, which satisfies the <code>g.current_user != cert.user</code> authorization check in <code>views.py</code>.</li>
<li>The attacker calls <code>PUT /api/1/certificates/&lt;DUP_ID&gt;/revoke</code> on the duplicate certificate record.</li>
<li>The system checks for existing endpoints associated with the record; since the duplicate record has none, the safety check is bypassed.</li>
<li>The Lemur issuer plugin retrieves the CA credentials and invokes the CA's revocation API using the <code>body</code> or <code>external_id</code> provided by the attacker.</li>
<li>The issuing CA processes the revocation, rendering the target production certificate invalid.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation allows a low-privileged authenticated user to perform fleet-wide revocation of TLS certificates. This results in an immediate denial-of-service for all services using the revoked certificates. Given the ability to iterate through available certificate IDs via the API, the impact can extend to entire organizations, affecting both internal and external-facing TLS-secured endpoints.</p>
<h2 id="recommendation">Recommendation</h2>
<p>Prioritize patching the Lemur instance to a version containing the remediation for CVE-2026-71417. Detection teams should monitor for anomalous usage of the certificate upload and revocation endpoints.</p>
<ul>
<li>Upgrade the Lemur package to a version beyond 1.9.2 immediately.</li>
<li>Implement a database-level uniqueness constraint on the <code>(authority_id, serial)</code> or <code>body</code> fields for certificate records to prevent duplicate aliasing.</li>
<li>Audit access logs for users performing rapid sequences of certificate uploads followed by revocation calls.</li>
<li>Restrict the <code>POST /api/1/certificates/upload</code> and <code>PUT /api/1/certificates/&lt;ID&gt;/revoke</code> endpoints to ensure that <code>AuthorityPermission</code> is validated regardless of row ownership.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>certificate-management</category><category>authorization-bypass</category><category>cve-2026-71417</category><category>cloud</category><category>ssrf</category><category>vulnerability</category><category>cve-2026-70666</category></item></channel></rss>