CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-71303

CVE-2026-71303: Server-Side Request Forgery Bypass in Netflix Lemur Authority Updates

Amit Schendel
Amit Schendel
Senior Security Researcher

Aug 19, 2026·6 min read·2 visits

Executive Summary (TL;DR)

An incomplete patch in Netflix Lemur allows users with authority roles to bypass host allowlists. By submitting a crafted PUT request, attackers can overwrite the ACME directory URL with internal IP addresses, causing the Lemur backend to perform unauthorized outbound connections.

Netflix Lemur, an open-source TLS certificate management framework, is affected by a Server-Side Request Forgery (SSRF) vulnerability. This vulnerability arises from an incomplete patch for a previous security flaw, CVE-2026-55166. While Lemur version 1.9.2 validated the ACME directory URL against an allowlist during authority creation, it failed to perform the same checks when updating existing authorities. An authenticated user possessing an authority role can exploit this omission to replace the directory URL with internal or cloud metadata endpoints. During subsequent certificate issuance, the Lemur backend executes unauthorized requests, potentially leaking sensitive metadata or credentials.

Vulnerability Overview

Netflix Lemur functions as a TLS certificate orchestration framework designed to automate certificate generation and deployment. Within Lemur, certificate authorities are created and configured to interact with Automated Certificate Management Environment (ACME) endpoints. The platform relies on configuration directives to control external network operations, defining a strict allowlist of approved ACME directory destinations.

During previous security audits, CVE-2026-55166 was discovered and partially remediated in version 1.9.2. The initial fix implemented a validation routine that checked user-supplied ACME directory URLs against the ACME_DIRECTORY_HOST_ALLOWLIST configuration block. However, this defense-in-depth measure was only integrated into the creation workflow of new authorities, leaving the modification endpoints exposed.

This gap results in a Server-Side Request Forgery (SSRF) vulnerability designated as CVE-2026-71303. An authenticated attacker who holds authority modification privileges can manipulate existing parameters to point to internal services. Consequently, the Lemur backend can be coerced into connecting to restricted network entities, such as the cloud Instance Metadata Service.

Root Cause Analysis

The fundamental vulnerability lies in the logical separation between the creation and modification codepaths inside Lemur's authority management engine. When an administrator creates an authority, Lemur invokes the create_authority function. This function references a helper function named _validate_acme_url within the ACME plugin module to parse and verify the target hostname.

In contrast, the authority modification process utilizes a distinct service function inside lemur/authorities/service.py. When an authorized user issues an HTTP PUT request to /api/1/authorities/<id>, the request parameters are routed to the service's update() method. This method accepts the payload parameters, including the options dictionary block, and updates the database records directly.

Prior to version 1.9.3, the update() service method did not apply the validation checks built for the creation workflow. As a result, any modified ACME directory parameters bypass validation check cycles. The values are committed to the application database and subsequently read during normal cryptographic operations, triggering outbound calls to unauthorized destinations.

Code-Level Technical Review

Analyzing the code diff reveals how the validation functions were reorganized and integrated into the update routine. In the vulnerable implementation, the validation function was defined as a private method within the ACME plugin module.

# Vulnerable private method in lemur/plugins/lemur_acme/plugin.py
-def _validate_acme_url(url):
+def validate_acme_url(url):
     """Reject acme_url values that are not in the configured allowlist.
 
     Called at authority creation time only — existing authorities in the DB

By renaming _validate_acme_url to the public validate_acme_url, the development team made the verification logic accessible to external service components. Within lemur/authorities/service.py, the update function was subsequently refactored to catch unauthorized parameters on update:

# Patched implementation in lemur/authorities/service.py
 def update(authority_id, description, owner, active, roles, options: Optional[str] = None):
     authority.description = description
     authority.owner = owner
     if options:
+        # acme_url can be changed here too, so it must be re-validated against the
+        # allowlist the same way it is at authority creation time (GHSA-v5rc-cpwc-cfpr)
+        from lemur.plugins.lemur_acme.plugin import validate_acme_url
+
+        for option in json.loads(options):
+            if option.get("name") == "acme_url":
+                validate_acme_url(option.get("value", ""))
         authority.options = options

This ensures that whenever the update service method processes an options block, it deserializes the configuration list, searches for any parameter labeled acme_url, and passes its associated value to validate_acme_url. If the value fails the hostname validation, the process throws an exception, and the database transaction is aborted.

Attack Vector & Exploitation Flow

To exploit this vulnerability, an attacker must have an active user account associated with a role that is authorized to edit authority configurations. This represents a low-privilege requirement within the application's internal access model. The attack is executed over HTTP through a standard API interaction.

The attacker first identifies an existing ACME authority identifier and targets the update API endpoint: PUT /api/1/authorities/<id>. The payload consists of an options array designed to override the ACME directory URL. This parameter is changed from a standard certificate authority URL to an internal network address.

[
  {
    "name": "acme_url",
    "value": "http://169.254.169.254/latest/meta-data/"
  }
]

Once the database record is updated, the attacker initiates a certificate creation flow that utilizes this authority. The backend schedules the task and attempts to fetch ACME directory resources from the newly configured URL. The Lemur server makes a GET request to the local link-local address, retrieving internal cloud details or API resources and forwarding them through system responses.

Impact Assessment

The impact of this SSRF is evaluated with a CVSS base score of 7.7. The vulnerability receives a changed scope (S:C) designation because the security posture of resources external to Lemur is altered. Specifically, resources isolated within the internal cloud environment are exposed to requests initiated by the application.

In standard cloud architectures, instances running Lemur may have access to the AWS Instance Metadata Service (IMDS). If IMDSv1 is enabled or if IMDSv2 hop limits are misconfigured, requests targeting 169.254.169.254 can leak temporary security credentials assigned to the host. These credentials can be harvested to gain lateral access to other cloud services.

Additionally, the vulnerability exposes internal microservices, configuration servers, and database APIs that sit behind host perimeter firewalls. Because the outbound connection originates from Lemur's trusted host IP address, internal firewalls will permit the connections, bypassing network boundary protections.

Remediation and Fix Completeness

The primary remediation strategy is upgrading to Netflix Lemur version 1.9.3. This version applies correct verification checks to both create and update operations, eliminating the configuration validation bypass. If patching cannot be performed immediately, temporary operational controls should be established.

Administrators should configure host firewalls on the Lemur application servers to deny outbound connections to internal private IP spaces, specifically RFC 1918 subnets and the link-local metadata range. For environments deployed on Amazon Web Services, enforcing IMDSv2 with a maximum hop limit of 1 prevents unauthorized container or runtime interactions from retrieving host credentials.

While the code modifications in 1.9.3 address the direct route bypass, security teams must note that the validation continues to rely on domain-level checks. If the downstream HTTP library handles URL parsing differently from the Python standard library, parser differentials may allow bypasses. DNS rebinding also remains a theoretical vector if hostnames are verified at resolution time but resolved to local IPs during operational execution.

Fix Analysis (1)

Technical Appendix

CVSS Score
7.7/ 10
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N

Affected Systems

Netflix Lemur certificate management environments deployed prior to version 1.9.3

Affected Versions Detail

Product
Affected Versions
Fixed Version
Lemur
Netflix
< 1.9.31.9.3
AttributeDetail
CWE IDCWE-918
Attack VectorNetwork
CVSS Severity7.7 High
EPSS ScoreNot Calculated
ImpactServer-Side Request Forgery leading to unauthorized internal access or credential leakage
Exploit StatusNo public weaponized exploits available
KEV StatusNot listed in CISA KEV Catalog

MITRE ATT&CK Mapping

T1190Exploit Public-Facing Application
Initial Access
T1005Data from Local System
Collection
CWE-918
Server-Side Request Forgery (SSRF)

The web server receives a URL or similar vector from an upstream application and does not sufficiently ensure that the request is being sent to an expected, secure destination.

Vulnerability Timeline

Netflix releases Lemur version 1.9.2 to address the initial SSRF vulnerability (CVE-2026-55166).
2026-06-10
Security researchers identify the bypass mechanism on update. Code fix is written to address the vulnerability.
2026-07-01
Official CVE-2026-71303 entry is published by GitHub Security Advisories and synced to the NVD database.
2026-08-18

References & Sources

  • [1]GitHub Security Advisory GHSA-v5rc-cpwc-cfpr
  • [2]Netflix Lemur Fix Commit edca0390f930344d65ff4ca37a669c2320e3dfad
  • [3]Netflix Lemur Release Tag v1.9.3
  • [4]GitHub Security Advisory GHSA-v2wp-frmc-5q3v (CVE-2026-55166)
  • [5]CVE-2026-71303 Record on CVE.org
  • [6]NVD Vulnerability Details for CVE-2026-71303

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•25 minutes ago•CVE-2026-70667
6.3

CVE-2026-70667: Server-Side Request Forgery Bypass in Netflix Lemur Certificate Verification

A security vulnerability in Netflix Lemur, a TLS certificate management framework, allows authenticated operators to bypass Server-Side Request Forgery (SSRF) mitigations. The issue exists within the certificate revocation verification workflow, specifically inside the CRL and OCSP retrieval logic. By exploiting HTTP redirects or DNS rebinding (Time-of-Check Time-of-Use) mechanisms, an attacker can coerce the server into issuing arbitrary network requests to internal services, such as the cloud instance metadata service (IMDS) or loopback addresses. This bypass neutralizes previous network-boundary validation logic and allows blind read/write SSRF targeting internal infrastructure resources.

Amit Schendel
Amit Schendel
0 views•6 min read
•about 2 hours ago•CVE-2026-71307
7.7

CVE-2026-71307: Plaintext Credential Exposure in Netflix Lemur Destinations API

An authorization bypass and information disclosure vulnerability in Netflix Lemur before version 1.9.3 allows authenticated, low-privilege users to retrieve raw destination configurations, exposing plaintext credentials such as SFTP passwords and private key passphrases.

Amit Schendel
Amit Schendel
2 views•6 min read
•about 3 hours ago•CVE-2026-71308
8.1

CVE-2026-71308: Missing Authorization and Lifecycle Hijacking in Netflix Lemur

Netflix Lemur before 1.9.3 contains a missing authorization vulnerability (CWE-862, CWE-639) when handling certificate creation, upload, or modification. Authenticated non-read-only users can manipulate the replaces parameter to silence expiration notifications and hijack certificate rotation tasks for arbitrary targets, leading to unauthorized TLS certificate deployment and traffic interception.

Alon Barad
Alon Barad
8 views•7 min read
•about 4 hours ago•CVE-2026-71317
6.5

CVE-2026-71317: Missing Authorization in Netflix Lemur Allows Unauthorized Subordinate CA Creation

CVE-2026-71317 is a critical Broken Object-Level Authorization (BOLA) / Missing Authorization vulnerability in Netflix Lemur versions prior to 1.9.3. When the self-service authority creation option is enabled (ADMIN_ONLY_AUTHORITY_CREATION = False), Lemur allows authenticated non-read-only users to request the creation of a subordinate Certificate Authority (sub-CA) chained to any internal parent authority, even if the requesting user lacks administrative or usage permissions over that parent CA. This allows attackers to generate subordinate CAs signed by trusted root certificates, exposing private keys and compromising the organizational PKI trust chain.

Alon Barad
Alon Barad
4 views•7 min read
•about 5 hours ago•CVE-2026-71322
4.3

CVE-2026-71322: Missing Authorization Check in Netflix Lemur Certificate Export

Netflix Lemur, a TLS/SSL certificate management framework, contains a missing authorization check in its certificate export endpoint. Prior to version 1.9.3, the validation logic verifying whether a user had permission to export a certificate was incorrectly placed inside a block that executed only if the selected plugin required a private key. When an authenticated user attempted to export a certificate using a plugin that did not require the private key, the authorization check was bypassed, allowing unauthorized access to the public portions of the certificate and producing misleading audit logs.

Alon Barad
Alon Barad
3 views•6 min read
•about 6 hours ago•GHSA-JF24-8G2H-2WG7
7.2

GHSA-JF24-8G2H-2WG7: Remote Code Execution in LibreNMS AboutController via Binary Path Substitution

A critical security flaw in LibreNMS allows authenticated administrators to execute arbitrary commands by modifying the configured binary path for snmpget and accessing the About page. This occurs due to insufficient verification of the executable file's identity and integrity prior to executing it with shell_exec.

Amit Schendel
Amit Schendel
2 views•6 min read