Skip to main content
Vulnerability Database/CVE-2026-100708

CVE-2026-100708: Froxlor TLS Private Key Disclosure Flaw

CVE-2026-100708 is an information disclosure vulnerability in Froxlor that exposes TLS private keys through API responses, enabling domain impersonation and traffic decryption. This article covers technical details, affected versions, security impact, and mitigation steps.

Published:

CVE-2026-100708 Overview

CVE-2026-100708 is an information disclosure vulnerability in Froxlor server management panel versions before 2.3.13. The Certificates.get and Certificates.listing API commands return the ssl_key_file column verbatim in JSON responses, exposing raw PEM-encoded TLS private keys. Authenticated low-privileged customer API callers can retrieve the private keys of their own domains' certificates, including Let's Encrypt keys that Froxlor generates server-side and stores with root-only (0600) filesystem permissions. Reseller accounts and admins with customers_see_all can dump private keys belonging to other principals through the same sink [CWE-200].

Critical Impact

Disclosed private keys enable domain impersonation, passive decryption of captured TLS traffic, and active machine-in-the-middle attacks against users of affected certificates.

Affected Products

  • Froxlor server management panel versions prior to 2.3.13
  • Deployments exposing the Froxlor API to authenticated customer accounts
  • Multi-tenant Froxlor installations with reseller or customers_see_all admin principals

Discovery Timeline

  • 2026-09-26 - CVE-2026-100708 published to NVD
  • 2026-09-28 - Last updated in NVD database

Technical Details for CVE-2026-100708

Vulnerability Analysis

Froxlor's certificate management API exposes TLS private key material through two JSON endpoints. The Certificates.get and Certificates.listing commands execute domain_ssl_settings queries and pass the full row set to ApiCommand::response() without stripping sensitive columns.

The ssl_key_file column stores the raw PEM content of the associated private key. Because no allowlist filters the response, the key is serialized directly into the JSON body returned to the API caller. The disclosure bypasses the file system permissions model that Froxlor relies on for server-generated Let's Encrypt keys, which are written with mode 0600 and owned by root.

Root Cause

The vulnerability is a missing output filter on database rows before API serialization. Froxlor treats the domain_ssl_settings record as a single opaque unit and returns every column, including the key material, to any authenticated caller authorized to view the certificate metadata. The code path lacks a column allowlist and lacks a dedicated sensitive-field redaction routine.

Attack Vector

An authenticated customer calls Certificates.get or Certificates.listing against their own domain certificates and parses ssl_key_file from the JSON response. Reseller accounts and admins carrying the customers_see_all flag can enumerate certificates across other tenants and extract their private keys through the same API. The attack requires only valid API credentials and network access to the Froxlor instance.

See the GitHub Security Advisory GHSA-6q2v-jjq5-m2c8 and the VulnCheck Private Key Disclosure Advisory for additional technical context.

Detection Methods for CVE-2026-100708

Indicators of Compromise

  • API access logs showing Certificates.get or Certificates.listing calls followed by unusually large response bodies
  • Response payloads containing PEM markers such as -----BEGIN PRIVATE KEY----- or -----BEGIN RSA PRIVATE KEY-----
  • Reseller or customers_see_all admin accounts enumerating certificates across tenant boundaries
  • Unexpected TLS certificate reuse or impersonation observed in external monitoring

Detection Strategies

  • Inspect HTTP response bodies from the Froxlor API gateway for PEM private key patterns leaving the server
  • Alert on API callers that invoke Certificates.listing with wide scopes or iterate across customer identifiers
  • Correlate certificate API access with subsequent off-host TLS handshakes using the same keys

Monitoring Recommendations

  • Enable verbose API request and response logging on the Froxlor web tier and ship logs to a central analytics platform
  • Monitor for new or anomalous API clients authenticating against the Certificates endpoints
  • Track certificate transparency logs for unexpected reissuance of domains hosted on affected Froxlor instances

How to Mitigate CVE-2026-100708

Immediate Actions Required

  • Upgrade Froxlor to version 2.3.13 or later across all nodes exposing the API
  • Rotate every TLS private key and reissue certificates for domains managed by the affected installation
  • Audit API access logs for prior calls to Certificates.get and Certificates.listing and treat exposed keys as compromised
  • Revoke certificates whose keys may have been disclosed to limit impersonation and decryption risk

Patch Information

The fix is included in Froxlor 2.3.13. The upstream patch strips the ssl_key_file column (and related sensitive fields) from the response path for the affected API commands. Review the GitHub Security Advisory GHSA-6q2v-jjq5-m2c8 for commit references and upgrade guidance.

Workarounds

  • Restrict network access to the Froxlor API to trusted administrative networks until the patch is applied
  • Disable or suspend low-privileged customer API accounts that do not require certificate management
  • Remove the customers_see_all flag from admin accounts that do not need cross-tenant visibility
  • Place a reverse proxy or web application firewall rule in front of the Froxlor API to block responses containing PEM private key markers
bash
# Configuration example - verify installed Froxlor version and upgrade
dpkg -l | grep froxlor
# or, for source installations
cat /var/www/froxlor/lib/classes/output/class.Version.php | grep VERSION

# Upgrade to the fixed release
cd /var/www/froxlor
git fetch --tags
git checkout 2.3.13

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.