Description
Froxlor before 2.3.13 returns the ssl_key_file column — which stores the raw PEM TLS private-key content — verbatim in the JSON responses of the Certificates.get and Certificates.listing API commands, because the results of the underlying domain_ssl_settings queries are passed through ApiCommand::response() without any field stripping or allowlist. A low-privileged authenticated customer API caller can retrieve the private keys of their own domains' certificates, including Let's Encrypt keys that Froxlor generates server-side and stores root-only (0600) and to which the customer otherwise has no filesystem access; reseller and customers_see_all admin accounts can dump the private keys of other principals through the same sink. Disclosed keys enable domain impersonation, passive decryption of captured TLS traffic, and active machine-in-the-middle attacks.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| froxlor | froxlor | < 2.3.13 | 2.3.13 |
Advisories 1
- WID-SEC-2026-3200 Froxlor: Mehrere Schwachstellen BSI CERT-Bund (WID) · Sep 27, 2026
References
- GitHub Security Advisory (GHSA-6q2v-jjq5-m2c8) vendor-advisory
- VulnCheck Advisory: Froxlor before 2.3.13 Private Key Disclosure via Certificates API third-party-advisory