Description
Lemur manages TLS certificate creation. Prior to 1.9.3, CertificateExport placed its CertificatePermission ownership check inside the plugin.requires_key branch for POST /api/1/certificates//export. A plugin declaring requires_key false bypassed that check, and the handler still passed cert.private_key as an argument and recorded a key_view audit event. The bundled JavaTruststoreExportPlugin ignored the key, so the immediate exposure was limited to public certificate material and misleading audit entries, but a future plugin could have consumed the supplied key. The fix passes no private key to plugins that do not require one and confines ownership checks and key_view logging to actual private-key exports. This issue is fixed in version 1.9.3.
Published: 2026-08-18
Score: 4.3 Medium
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability arises from a missing ownership verification on the POST /certificates/<id>/export route when a plugin declares requires_key=false. Under this configuration, the private key is still passed to the plugin and a key_view audit event is logged, allowing the plugin to potentially receive the private key even though it is not required. The current bundled JavaTruststoreExportPlugin ignores the key, so the immediate exposure is limited to public certificate material and misleading audit logs, but future plugins could exploit the supplied key, leading to disclosure of sensitive certificate secrets.

Affected Systems

Netflix Lemur deployments running any version prior to 1.9.3 are affected. The issue is present in all 1.0.0 through 1.9.2 releases and is fixed in release 1.9.3, which correctly constrains the private key export to plugins that explicitly require it.

Risk and Exploitability

The CVSS score of 4.3 indicates a moderate risk. With no EPSS data and the vulnerability not listed in KEV, the likelihood of immediate exploitation remains uncertain. However, an authenticated user who can trigger the export endpoint and who has a controllable plugin configured with requires_key=false could obtain the private key. The lack of an authentication check for the key export path or proper plugin authorization makes the attack vector likely via an internal API call rather than through the web UI.

Generated by OpenCVE AI on August 18, 2026 at 20:54 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Lemur to version 1.9.3 or newer, which removes the private key from plugins that do not require it.
  • Disable or remap any custom or third‑party plugin marked requires_key=false unless the plugin truly does not handle private keys.
  • Continuously audit key_view log entries to detect and investigate unexpected private key disclosures.

Generated by OpenCVE AI on August 18, 2026 at 20:54 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-4h97-p9wq-chqj Lemur: Missing authorization check on POST /certificates/<id>/export for plugins with requires_key = False
History

Tue, 18 Aug 2026 21:00:00 +0000

Type Values Removed Values Added
First Time appeared Netflix
Netflix lemur
Vendors & Products Netflix
Netflix lemur

Tue, 18 Aug 2026 19:30:00 +0000

Type Values Removed Values Added
Description Lemur manages TLS certificate creation. Prior to 1.9.3, CertificateExport placed its CertificatePermission ownership check inside the plugin.requires_key branch for POST /api/1/certificates//export. A plugin declaring requires_key false bypassed that check, and the handler still passed cert.private_key as an argument and recorded a key_view audit event. The bundled JavaTruststoreExportPlugin ignored the key, so the immediate exposure was limited to public certificate material and misleading audit entries, but a future plugin could have consumed the supplied key. The fix passes no private key to plugins that do not require one and confines ownership checks and key_view logging to actual private-key exports. This issue is fixed in version 1.9.3.
Title Lemur: Missing authorization check on POST /certificates/<id>/export for plugins with requires_key = False
Weaknesses CWE-862
References
Metrics cvssV3_1

{'score': 4.3, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-18T19:08:23.118Z

Reserved: 2026-08-05T18:14:42.065Z

Link: CVE-2026-71322

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-18T20:17:24.073

Modified: 2026-08-18T20:17:24.073

Link: CVE-2026-71322

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-18T21:00:04Z

Weaknesses