Description
Froxlor 2.0.0 through 2.3.10 is vulnerable to stored cross-site scripting. When a customer (the lowest-privileged authenticated role) uploads an SSL certificate for one of their own domains, the Certificates API add()/update() methods parse it with openssl_x509_parse() and store the issuer organization (issuer['O']) value verbatim without sanitization. Froxlor's table-listing renderer then emits scalar cells through Twig's `raw` filter, disabling HTML auto-escaping, so when an administrator or reseller opens Domains > SSL certificates the attacker-supplied issuer value executes as script in the privileged user's session. This crosses a privilege boundary from customer to admin and can result in full administrator account takeover; because a Froxlor admin controls webserver, DNS, and PHP configuration applied by a cron job running as root, the issue can be further escalated to command execution as root on the managed server. The issue is fixed in Froxlor 2.3.12.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| froxlor | froxlor | 2.0.0 – < 2.3.12 | 2.3.12 |
Advisories 1
- WID-SEC-2026-3200 Froxlor: Mehrere Schwachstellen BSI CERT-Bund (WID) · Sep 27, 2026
References
- GitHub Security Advisory (GHSA-89vj-gqqr-73p8) vendor-advisory
- VulnCheck Advisory: Froxlor before 2.3.12 Stored XSS via SSL certificate issuer third-party-advisory