Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to Lemur with non-admin account
-
DeliveryPOST /api/1/authorities with type=subca and attacker-chosen parent ID
-
ExploitMissing AuthorityPermission check allows parent resolution
-
Executioncryptography-issuer signs new intermediate with root CA private key
-
PersistSub-CA issued and private key accessible to attacker
-
ImpactIssue arbitrary trusted certificates outside Lemur controls
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires three concurrent conditions: (1) the Lemur deployment must have ADMIN_ONLY_AUTHORITY_CREATION set to false - this is not the default configuration, making the population of vulnerable deployments a subset of all Lemur installations; (2) the attacker must hold a valid Lemur account that is not restricted to read-only access (PR:L per CVSS - any non-read-only authenticated user suffices, including self-service users); and (3) the targeted deployment must be running Lemur prior to version 1.9.3. What limits exploitation: deployments using the default ADMIN_ONLY_AUTHORITY_CREATION=true are fully protected by the existing admin-only gate; read-only Lemur accounts cannot trigger the vulnerable code path; and the resulting sub-CA, while able to issue trusted certificates, is visible in Lemur's audit trail, providing a forensic signal for defenders monitoring authority creation events. |
| Impact | The provided CVSS vector (AV:L/AC:L/PR:L/UI:N/S:C/C:N/I:H/A:N, score 6.5) assigns a local attack vector, which conflicts with the vulnerability's mechanism - exploitation is a direct authenticated HTTP POST to a REST API endpoint, a network-accessible surface. The scope change (S:C) is accurate and meaningful: a successfully created sub-CA can issue certificates trusted by systems that trust the parent root, extending impact beyond Lemur itself. Real-world risk is conditional on ADMIN_ONLY_AUTHORITY_CREATION being disabled (self-service mode), which is not the default; deployments running the default configuration are not exposed. Within affected deployments, exploitation requires only a valid Lemur account with non-read-only privileges - a low bar in organizations using self-service certificate issuance. EPSS data was not provided. No CISA KEV listing exists, and no public exploit code has been identified, suggesting this has not seen opportunistic exploitation. The primary real-world risk is insider threat or compromised non-admin accounts in PKI-sensitive environments. |
| Exploit ScenarioDerived | An attacker with a valid non-admin Lemur account in a deployment running ADMIN_ONLY_AUTHORITY_CREATION=false sends a crafted POST /api/1/authorities request specifying type=subca and a parent authority ID corresponding to an internal root CA for which they hold no role. Lemur resolves the parent authority, invokes cryptography-issuer without checking permissions, and signs the new intermediate using the root's private key. The attacker then uses the newly issued sub-CA to sign arbitrary end-entity certificates trusted by the organization's PKI, or exports the sub-CA private key for use in attacks entirely outside Lemur's visibility. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 18, 2026
Privilege escalation in Netflix Lemur's certificate authority API allows any authenticated non-read-only user to mint a sub-CA chained to an internal root CA they do not control, when the ADMIN_ONLY_AUTHORITY_CREATION flag is disabled. The POST /api/1/authorities endpoint (type=subca) failed to verify AuthorityPermission on the caller-supplied parent, allowing the caller to invoke cryptography-issuer which signed the new intermediate using the parent root's private key. The resulting sub-CA can issue trusted certificates outside normal issuance controls and its private key can be extracted and used entirely outside Lemur. No public exploit has been identified at time of analysis, and the fix is available in version 1.9.3.
RemediationAI
Upgrade Lemur to version 1.9.3 or later, available at https://github.com/Netflix/lemur/releases/tag/v1.9.3. The fix commit (https://github.com/Netflix/lemur/commit/8669011203ca3dd89d9e39bab9ef6850eca723f9) adds an AuthorityPermission check on the parent authority before any sub-CA creation proceeds. If immediate upgrade is not possible and ADMIN_ONLY_AUTHORITY_CREATION is currently set to false, re-enabling it (setting ADMIN_ONLY_AUTHORITY_CREATION = true) eliminates the vulnerable code path by restricting all authority creation to administrators only - the trade-off is that self-service sub-CA creation is disabled for regular users. Alternatively, restrict non-admin user accounts to read-only roles until patching is feasible, as the vulnerability requires a non-read-only authenticated session. Network-layer controls (firewalling the Lemur API to trusted operator hosts) reduce exposure but do not eliminate the risk from compromised internal accounts.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in pypi
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Lemur (github.com/Netflix/lemur) is a TLS certificate lifecycle management platform exposing a REST API for authority and certificate operations. The vulnerability resides in lemur/authorities/views.py at the POST /api/1/authorities handler. When type=subca is supplied, AssociatedAuthoritySchema resolved the caller-controlled parent field to a full authority object and passed it directly into the cryptography-issuer plugin, which used parent.authority_certificate.private_key to sign the new intermediate - without any authorization gate on the parent. CWE-862 (Missing Authorization) is the root cause: authentication (PR:L) was enforced, but the authorization check (AuthorityPermission) was only applied to creation rights, not to the parent relationship. The fix adds an explicit AuthorityPermission(parent.id, parent_roles).can() check before invoking the issuer, returning HTTP 403 if the caller does not hold the required role on the chosen parent authority.
Know when the next one hits your stack
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:L/AC:L/PR:L/UI:N/S:C/C:N/I:H/A:N
REST API exploitation is network-accessible (AV:N not AV:L); PR:L reflects required non-read-only authentication; S:C captures sub-CA trust propagating beyond Lemur to relying systems.
Primary rating from Vendor (github).
CVSS VectorVendor: github
Lifecycle Timeline
1DescriptionCVE.org
Lemur manages TLS certificate creation. Prior to 1.9.3, POST /api/1/authorities with type=subca did not require AuthorityPermission on the parent authority when ADMIN_ONLY_AUTHORITY_CREATION was false. AssociatedAuthoritySchema resolved the caller-supplied parent and passed it through authority creation to cryptography-issuer, which used the parent authority_certificate.private_key to sign a new intermediate. Any authenticated non-read-only user in that supported configuration could chain a sub-CA to an internal root for which the user held no role. The resulting intermediate could issue trusted certificates and its private key could be used outside Lemur, bypassing normal issuance controls. The fix checks AuthorityPermission on every supplied parent before invoking the issuer. This issue is fixed in version 1.9.3.
Blast Radius
ecosystem impact- 3 pypi packages depend on lemur (3 direct, 0 indirect)
Ecosystem-wide dependent count for version 1.9.3.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
EUVD-2026-61156
GHSA-g7p5-89mh-248h
NVD
CVE.org
EPSS
Exploit-DB