Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify logged-in Froxlor user
-
DeliverySend crafted 2FA-delete link
-
ExploitVictim clicks, session-carried GET fires
-
ExecutionCSRF middleware skips GET request
-
PersistVictim 2FA silently disabled
-
ImpactLog in with stolen password for takeover
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V3 - Web Frontend Security Anti-CSRF tokens, SameSite cookies
MITRE ATT&CK
1 technique across 1 tactic: Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires an authenticated Froxlor session to already exist in the victim's browser AND the victim to follow an attacker-supplied link (top-level navigation) - this is the UI:P/UI:R limiting factor; the attacker themselves is unauthenticated. Works against default configurations because the CSRF middleware only guards POST/PUT/PATCH/DELETE (not the GET delete action) and the session cookie uses SameSite=Lax, which permits cross-site top-level GET navigations to carry the cookie. Affects both customer and admin 2FA handlers. Standalone the attack only removes 2FA; full account takeover additionally requires the victim's password to already be compromised. |
| Impact | This is a genuine but modest-severity CSRF (CWE-352) affecting Froxlor's 2FA management. The vendor CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:P) correctly captures an unauthenticated network attacker who needs the victim to click a link - but the VC:H (high confidentiality) impact claim is questionable: silently disabling 2FA does not disclose data, it degrades an authentication control (an integrity impact on account security state). The real-world impact is LATENT - it only enables account takeover when chained with an already-compromised password, so a defense-in-depth layer is removed rather than access being directly granted. No EPSS score, no CISA KEV listing, and no public exploit code are present in the input, so there is no signal of active or automated exploitation. Net: a real, low-friction bug worth patching (trivially triggerable via a crafted link, no CSRF token, GET bypasses the POST/PUT/PATCH/DELETE-only middleware, SameSite=Lax permits the top-level navigation) but its standalone severity is Medium at most - the vendor's 7.1 overstates it via the VC:H choice. |
| Exploit ScenarioDerived | An attacker sends a logged-in Froxlor customer or admin a link (email, chat, or a redirect on a malicious page) pointing to /customer_index.php?page=2fa&action=delete. Because the cookie is SameSite=Lax and the GET request rides the victim's session with no CSRF token or confirmation prompt, the victim's 2FA is silently cleared on click. The attacker, having previously phished or leaked the victim's password, then logs in unimpeded. No public exploit code is identified in the provided data. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 26, 2026
Cross-site request forgery in the Froxlor hosting control panel through 2.3.10 lets an unauthenticated attacker silently strip a logged-in panel user's two-factor authentication by luring them into following a crafted GET link such as /customer_index.php?page=2fa&action=delete, with no confirmation prompt, re-authentication, or CSRF token required; both the customer and admin 2FA handlers are affected. The practical impact is bounded: the attack only removes the second factor, and full account takeover additionally requires the victim's password to already be compromised, so this is a genuine but modest-severity CSRF rather than a standalone authentication bypass. No public exploit code or confirmed active exploitation has been identified at time of analysis, and the vendor addressed the flaw in Froxlor 2.3.12.
RemediationAI
Upgrade Froxlor to 2.3.12, which is the vendor-released patch that closes this issue, and confirm the running version after the upgrade; the official guidance is in the GitHub Security Advisory GHSA-w582-7wqv-62mm and the VulnCheck advisory (https://www.vulncheck.com/advisories/froxlor-before-2.3.12-two-factor-authentication-bypass-via-csrf). Where an immediate upgrade is not possible, compensating controls can reduce exposure but each carries trade-offs: configure the Froxlor session cookie with SameSite=Strict so cross-site top-level navigations no longer carry the session, accepting that users arriving from external links or cross-site redirects will appear logged out until they navigate again; or add a reverse-proxy/WAF rule that blocks or challenges unauthenticated cross-site GET requests to the 2fa management endpoints (for example URLs containing page=2fa and action=delete), which risks breaking legitimate 2FA removal through the panel and must be tuned to avoid blocking normal admin workflows. Additional hardening includes shortening session lifetimes for privileged accounts so a stolen or driven session window is small, monitoring panel logs for unexpected hits to the 2FA delete action followed by logins, and - because the attack only strips the second factor - ensuring that panel passwords are unique, strong, and rotated so the residual password-only state cannot be chained into account takeover.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The root cause is CWE-352 (Cross-Site Request Forgery) combined with an unsafe HTTP method choice: Froxlor's 2FA management page performs the state-changing delete of the stored second-factor configuration (the type_2fa and data_2fa fields) in response to a plain GET request, while the application's global CSRF middleware only enforces token validation on POST, PUT, PATCH, and DELETE. Because no token is required for the GET action, the only remaining browser-side protection would be cookie scoping, but the Froxlor session cookie is issued with SameSite=Lax, which still permits the cookie to be attached to cross-site top-level navigations such as a clicked link or a redirect. An attacker who is themselves unauthenticated can therefore trigger the destructive action inside a victim's already-authenticated session, provided the victim follows the supplied URL; the CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:N/VA:N) reflects that no attacker privileges or special conditions are needed but that user interaction is, while our independent CVSS 3.1 assessment (AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N) treats the outcome as a low-integrity impact on the account's authentication configuration rather than a high-severity compromise. Froxlor is a PHP-based server management and hosting panel (CPE cpe:2.3:a:froxlor:froxlor:*:*:*:*:*:*:*:*) deployed as a web-facing administration interface, so the affected 2FA endpoints are reachable by any network client that can reach the panel, and the ENISA EUVD record EUVD-2026-87685 independently scopes the issue to Froxlor 0 through <2.3.12.
Know when Froxlor gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
Unauthenticated cross-site request (PR:N) needs a victim link click (UI:R); it modifies an account's 2FA security setting (I:L) with no data disclosure (C:N) or availability loss (A:N).
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
froxlor through 2.3.10 disables a user's two-factor authentication immediately upon an unauthenticated-triggerable GET request to the 2FA management page (e.g. /customer_index.php?page=2fa&action=delete), with no confirmation, re-authentication, or CSRF token. The global CSRF middleware only covers POST/PUT/PATCH/DELETE requests, and the session cookie is set to SameSite=Lax, so a cross-site top-level navigation (link click or redirect) carries the victim's session and silently clears type_2fa/data_2fa. Both the customer and admin 2FA handlers are affected. An attacker who lures a logged-in panel user into following a crafted link reduces that account to password-only authentication, which can be chained with a compromised password for account takeover. Fixed in 2.3.12.
Technical POC Analysis
CWE-352 (Cross-Site Request Forgery): a state-changing action is performed on a GET request, so it falls outside the application's CSRF protection.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Froxlor hosting control panels running versions through 2.3.10 are exposed to a cross-site request forgery flaw that allows a logged-in customer or administrator to be tricked into silently disabling their own two-factor authentication, weakening the strongest control protecting the panel. Because Froxlor administers websites, mail, DNS, and customer accounts, a weakened admin login is a credible stepping stone to broad downstream compromise - but only where the attacker has also already obtained that user's password, so this compounds an existing credential exposure rather than bypassing authentication outright. No public exploit code or confirmed active exploitation has been identified at time of analysis, and the vendor-released fix is available now, making prompt patching the decisive risk-reduction step.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Request Forgery exploits the automatic credential inclusion behavior of web browsers.
Command Injection in GitHub repository froxlor/froxlor prior to 2.0.8. Rated high severity (CVSS 8.8), this vulnerabilit
Improper Restriction of Excessive Authentication Attempts in GitHub repository froxlor/froxlor prior to 2.0.20. Rated cr
Authentication Bypass by Primary Weakness in GitHub repository froxlor/froxlor prior to 2.0.13. Rated critical severity
Froxlor through 0.10.29.1 allows SQL injection in Database/Manager/DbManagerMySQL.php via a custom DB name. Rated critic
Command injection in Froxlor server admin before 2.3.4 due to typo (== instead of =) disabling input validation entirely
Improper Link Resolution Before File Access in GitHub repository froxlor/froxlor prior to 2.1.0. Rated high severity (CV
Unrestricted Upload of File with Dangerous Type in GitHub repository froxlor/froxlor prior to 2.0.14. Rated high severit
Cross-Site Request Forgery (CSRF) in GitHub repository froxlor/froxlor prior to 2.0.11. Rated high severity (CVSS 8.8),
Code Injection in GitHub repository froxlor/froxlor prior to 2.0.11. Rated high severity (CVSS 8.8), this vulnerability
Code Injection in GitHub repository froxlor/froxlor prior to 2.0.10. Rated high severity (CVSS 8.8), this vulnerability
An issue was discovered in Froxlor before 0.10.14. Rated high severity (CVSS 8.8), this vulnerability is remotely exploi
Froxlor is open source server administration software. Rated high severity (CVSS 7.5), this vulnerability is remotely ex
EUVD-2026-87685
GHSA-c94r-x438-wxmw
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB