GitHub Advisoryadvisory · Packagist
GHSA-33mp-8p67-xj7c Froxlor has Admin-to-Root Privilege Escalation via Input Validation Bypass + OS Command Injection
CRITICAL
Official page ↗
- Aliases
- CVE-2026-26279
- Ecosystem
- Packagist
- Packages
- froxlor/froxlor
- Severity
- Critical
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H
- Weaknesses
- CWE-482, CWE-78
- Reviewed
- 2026-03-03
Affected packages
• Packagist froxlor/froxlor: < 2.3.4 → fixed in 2.3.4
Description
Summary
A typo in Froxlor's input validation code (`==` instead of `=`) completely disables email format checking for all settings fields declared as email type. This allows an authenticated admin to store arbitrary strings — including shell metacharacters — in the `panel.adminmail` setting. This value is later concatenated into a shell command executed as root by a cron job, where the pipe character `|` is explicitly whitelisted. The result is full root-level Remote Code Execution.
---
Why This Is a Security Vulnerability (Not Just "Admin Using Admin Features")
Froxlor is a shared hosting control panel. In production deployments:
1. Admin panel access does not equal root access. Hosting providers assign the Froxlor admin role to staff who manage customer accounts, domains, and services through the web UI. These operators are not given SSH access or root shell on the underlying server. The boundary between "panel admin" and "OS root" is a deliberate security design.
2. Froxlor itself enforces this boundary. The `safe_exec()` function (FileDir.php:224-264) exists specifically to prevent shell injection — it blocks `;`, `|`, `&`, `>`, `/dev/null"
],
capture_output=True, text=True
)
stored_value = result.stdout.strip()
if payload in stored_value or stored_value == payload:
print(f" [VULN] CONFIRMED! Stored value: {stored_value}")
else:
print(f" [INFO] Stored value: {stored_value}")
print(f" [INFO] May need different form field names or approach")
# Restore original value
print("\n[*] Restoring original admin email...")
resp = session.get(f"{TARGET}/admin_settings.php?page=overview&part=all")
csrf_match = re.search(r'na…
Related
Alias · CVE (1)
- CVE-2026-26279 Froxlor is open source server administration software. vulnerability
References
- https://github.com/froxlor/Froxlor/security/advisories/GHSA-33mp-8p67-xj7c web
- https://nvd.nist.gov/vuln/detail/CVE-2026-26279 advisory
- https://github.com/froxlor/froxlor/commit/22249677107f8f39f8d4a238605641e87dab4343 web
- https://github.com/froxlor/froxlor package
- https://github.com/froxlor/froxlor/releases/tag/2.3.4 web