CVE-2026-100714
Froxlor before 2.3.12 Command Injection via letsencryptchallengepath
- State
- Published
- Severity
- 9.4 Critical
- Published
- Sep 26, 2026
- Updated
- Sep 26, 2026
- Reserved
- Sep 26, 2026
Description
Froxlor before 2.3.12 does not restrict or escape the system.letsencryptchallengepath setting: unlike sibling settings hardened in GHSA-33mp, the field has no string_regexp or required_otp guard, and its value is concatenated unescaped into the acme.sh command line built in lib/Froxlor/Cron/Http/LetsEncrypt/AcmeSh.php and executed by the root cron via FileDir::safe_exec. Because safe_exec only blacklists shell metacharacters such as ; | & > < \ $ ~ ?, spaces and quotes survive and the value is word-split into additional acme.sh arguments. An administrator, or any actor able to write settings (for example through the settings-import API), can therefore inject acme.sh options such as --renew-hook, --pre-hook or --post-hook to obtain arbitrary command execution as root at the next Let's Encrypt cron run, or use --config-home/--cert-home for arbitrary file writes. Versions up to and including 2.3.10 are affected; the issue is fixed in 2.3.12.
Scores
| CVSS | Score | Vector | Source |
|---|---|---|---|
| 4.0 | 9.4 Critical | CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H | VulnCheck |
| 3.1 | 9.1 Critical | CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H | VulnCheck |
Weaknesses
- CWE-88 Improper Neutralization of Argument Delimiters in a Command ('Argument Injection')
Affected Products
| Product | Versions |
|---|---|
froxlorfroxlor |
|
References
- GitHub Security Advisory (GHSA-3w4g-cmpj-rj42)vendor-advisory
- VulnCheck Advisory: Froxlor before 2.3.12 Command Injection via letsencryptchallengepaththird-party-advisory
Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.