{"answers":{"affected":"3 open source packages ship an affected version, including lemur.","exploited":"It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-71417 exists.","fix":"Upgrade lemur to 1.9.3 or later.","what":"CVE-2026-71417 is a high-severity missing authorization vulnerability in Netflix lemur, published on 18 Aug 2026. It can only be exploited from the same machine or local network, with no action from the victim."},"fix_prompt":"Check this codebase for CVE-2026-71417 and fix it if it is affected.\n\nWhat it is: CVE-2026-71417 is a high-severity missing authorization vulnerability in Netflix lemur, published on 18 Aug 2026. It can only be exploited from the same machine or local network, with no action from the victim.\nExploitation: It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-71417 exists.\n\nAffected packages and fixed versions:\n- lemur (PyPI): affected all versions; fixed in 1.9.3\n- lemur (PyPI): affected all versions; fixed in 1.9.3\n- lemur (PyPI): affected all versions; fixed in 1.9.3\n\nTask:\n1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.\n2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.\n3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.\n4. Run the tests and summarise what changed and why.\n5. If nothing in the project is affected, say so and change nothing.\n\nReference: https://insights.sbomify.com/CVE-2026-71417/ (Markdown: https://insights.sbomify.com/CVE-2026-71417/index.md)","id":"CVE-2026-71417","markdown":"https://insights.sbomify.com/CVE-2026-71417/index.md","name":"CVE-2026-71417","record":{"aliases":["GHSA-pxmc-2ffp-8j67","PYSEC-2026-3678"],"analysis":{"component_type":"web_application","fix_type":"upgrade","impacts":["denial_of_service","security_bypass"],"network_reachable":"adjacent_or_local","non_default_config":false,"product_category":"Certificate management tool","requires_auth":"low_privilege","summary":"An attacker can revoke arbitrary TLS certificates by uploading duplicates, causing fleet-wide denial of service in Lemur.","user_interaction":"not_required","vuln_class":"missing_authorization"},"analysis_generated_by":"qwen3.8-flash-next","assigner":"GitHub_M","cpe":[],"cvss":{"score":7.3,"severity":"high","source":"cna","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:N/I:L/A:H","version":"3.1"},"cwes":[{"id":"CWE-639","name":"Authorization Bypass Through User-Controlled Key"}],"description":"Lemur manages TLS certificate creation. Prior to 1.9.3, POST /api/1/certificates/upload allowed a non-read-only user to create a duplicate row using another certificate body, authority_id, serial, or external_id without requiring permission on the underlying authority. PUT /api/1/certificates//revoke authorized the caller against only the selected Lemur row, so the creator of the duplicate bypassed CertificatePermission. The duplicate had no cert.endpoints, which also bypassed the safeguard that prevents revocation of deployed certificates. Issuer plugins then revoked the real CA-side certificate using certificate.body or external_id under the stored authority credentials. An attacker could therefore revoke arbitrary managed certificates and cause fleet-wide TLS denial of service. The fix rejects duplicate authority_id and serial identities, requires authority access on upload, and checks every matching row during revocation. This issue is fixed in version 1.9.3.","ecosystems":["PyPI"],"exploits":{"exploitdb":0,"first_seen":null,"github_poc":0,"max_poc_stars":null,"metasploit":0,"nuclei":0,"refs":[],"tier":"weaponised"},"has_fix":true,"headline":"Lemur: Any user can revoke arbitrary certificates at the CA by uploading a duplicate record and revoking it","id":"CVE-2026-71417","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":"PyPI","product":null,"products":[],"type":"missing_authorization","year":"2026"},"n_packages":3,"n_references":3,"next":{"headline":"Suricata doh2: crafted HTTP/2 DATA frames can cause quadratic CPU consumption","id":"CVE-2026-71418"},"packages":[{"ecosystem":"PyPI","fixed":["1.9.3"],"introduced":["0"],"last_affected":[],"package":"lemur","purl":null,"source":"GHSA-pxmc-2ffp-8j67"},{"ecosystem":"PyPI","fixed":["1.9.3"],"introduced":["0"],"last_affected":[],"package":"lemur","purl":"pkg:pypi/lemur","source":"GHSA-pxmc-2ffp-8j67"},{"ecosystem":"PyPI","fixed":["1.9.3"],"introduced":["0"],"last_affected":[],"package":"lemur","purl":"pkg:pypi/lemur","source":"PYSEC-2026-3678"}],"prev":{"headline":"Headroom vulnerable to Cross-Site WebSocket Hijacking (CSWSH)","id":"CVE-2026-71416"},"products":["lemur"],"published":"2026-08-18","related":[],"sources":[{"class":"attribution","licence":"CVE Terms of Use (MITRE)","name":"CVE List","prefix":"CVE"},{"class":"attribution","licence":"CC BY 4.0","name":"GitHub Advisory Database","prefix":"GHSA"},{"class":"attribution","licence":"CC BY 4.0","name":"PyPA Advisory Database","prefix":"PYSEC"},{"class":"attribution","licence":"CWE Terms of Use","name":"CWE (MITRE)"},{"class":"attribution","licence":"FIRST CVSS licence","name":"CVSS (FIRST)"}],"ssvc":{"automatable":"no","exploitation":"poc","technical_impact":"partial"},"state":"PUBLISHED","updated":"2026-08-18","vendors":["Netflix"]},"summary":"An attacker can revoke arbitrary TLS certificates by uploading duplicates, causing fleet-wide denial of service in Lemur.","url":"https://insights.sbomify.com/CVE-2026-71417/"}