Skip to main content

Froxlor CVE-2026-121436

| EUVDEUVD-2026-115858 HIGH
Information Exposure (CWE-200)
2026-11-03 VulnCheck GHSA-2qgh-vqj2-gcjx
8.6
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate as reseller admin (customers_see_all, api_allowed)
  2. Delivery
    Open API keys listing page index.php?page=apikeys
  3. Exploit
    Unscoped WHERE 1 query returns all key rows
  4. Execution
    Read super-admin apikey and secret from detail modal
  5. Persist
    Replay credentials to /api.php via HTTP Basic auth
  6. Impact
    Gain full super-administrator control and customer impersonation

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V14 - Data Protection Data exposure prevention
MITRE ATT&CK

2 techniques across 2 tactics: Collection, Discovery

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires an authenticated Froxlor administrator account whose customers_see_all flag is set to 1 and api_allowed is 1 - for example a reseller - and does NOT require change_serversettings; the only gate on the page (api_keys.php:40-46) merely redirects when api_allowed==0. When that condition holds, the admin area listing takes the unscoped else branch (api_keys.php:171-177) that appends the literal predicate '1', returning every api_keys row including the super administrator's, and the detail modal renders the full apikey and secret verbatim with no truncation or owner/privilege check. The disclosed secret is directly replayable because ApiCommand::readUserData (lib/Froxlor/Api/ApiCommand.php:158) matches submitted apikey/secret verbatim with no owner check. Limiting factors: the attacker must first obtain a privileged multi-tenant admin account (PR:H), so single-super-admin installations with no lower-privileged admin have no one positioned to abuse the flaw; no user interaction or special platform is otherwise needed, and default behavior of the vulnerable branch is affected (no non-default configuration required beyond the privilege flags).

Impact

This is a credible, prioritize-this-week issue rather than a theoretical high-CVSS inflation, but its real-world urgency is tempered by a meaningful privilege prerequisite. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:H/UI:N, VC:H/VI:H/VA:H, base 8.6) shows a network-reachable, low-complexity attack with no user interaction, but PR:H confirms the attacker must already hold a privileged Froxlor admin account - specifically one with customers_see_all=1 and api_allowed=1 (e.g., a reseller). The genuine severity comes from the escalation: a limited reseller admin reads the super administrator's plaintext apikey and secret and replays them for full super-admin takeover, so the confidentiality/integrity/availability impacts are real and directly demonstrated by the advisory's end-to-end proof. Signals are largely consistent: vuln.today assigns a 'this_week' decision label and VulnCheck is the reporter, aligning with a serious-but-not-emergency posture. No CISA KEV listing and no EPSS score are present in the input, so there is no evidence of active, widespread exploitation - the risk is driven by exploit tractability and a published PoC, not by observed in-the-wild use. Net: elevated priority for any multi-admin/reseller Froxlor deployment, lower for single-super-admin installs where no lower-privileged admin exists to abuse the flaw.

Exploit ScenarioDerived

A reseller administrator (or any admin granted customers_see_all and api_allowed but not change_serversettings) logs into the Froxlor panel, opens index.php?page=apikeys, and the listing runs an unscoped 'WHERE 1' query that returns every account's API key row. The attacker opens the detail modal for the super administrator's key, reads the full plaintext apikey and secret from the rendered HTML, and replays them to /api.php via HTTP Basic auth to gain full super-administrator control and impersonate every customer. The advisory includes a PoC that reproduces the exact production query strings and the API authentication match, demonstrating the leak and the replay end to end.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Nov 03, 2026

Froxlor 2.3.8 through 2.3.14 renders every stored API key and secret - including the super administrator's - to any authenticated administrator whose customers_see_all flag is set and whose account has API access enabled, because the api_keys.php listing falls into an unscoped WHERE 1 branch and the per-row detail modal prints the credentials verbatim. The API layer compares submitted key and secret verbatim with no owner check, so a reseller-level admin can replay the super administrator's credentials against /api.php to gain full super administrator control and impersonate every customer, a capability their own role does not provide. Exploitation requires a pre-existing privileged multi-tenant admin account (CVSS PR:H, authenticated), a proof-of-concept reproduction is included in the upstream advisory, and no active exploitation has been confirmed (not in CISA KEV).

RemediationAI

Vendor-released patch: upgrade to Froxlor 2.3.15 or later, which closes the unscoped customers_see_all branch in api_keys.php; the fix is identified in the Composer package metadata as froxlor/froxlor 2.3.15 and detailed in the upstream advisory at https://github.com/froxlor/froxlor/security/advisories/GHSA-5fm2-8wxf-xc5v. Because the disclosed apikey and secret are stored in plaintext and are compared verbatim by ApiCommand::readUserData, upgrading does not undo prior exposure: rotate or delete every API key and secret after patching, especially the super administrator's, since a key disclosed before the update remains replayable against /api.php. Where upgrading cannot be done immediately, the evidence shows the page is gated only by the api_allowed flag (api_keys.php:40-46 redirects when api_allowed == 0) and the vulnerable branch is selected only when customers_see_all is non-zero, so clearing api_allowed or customers_see_all on all non-super-administrator accounts prevents reaching the unscoped listing - at the cost of removing API access or cross-customer visibility for those reseller-style admins until the patch is applied. The upstream advisory notes the code path was still present at 2.3.14 and that no security fix commit previously touched api_keys.php, so applying the 2.3.15 release is the only complete remediation.

Affected VersionsENISA

Froxlor 2.3.8 <2.3.15

Affected Packages

euvd froxlor fix: 2.3.15

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

Froxlor is a PHP-based multi-tenant server management panel distributed as the Composer package froxlor/froxlor; the flaw is tagged PHP / Information Disclosure and maps to CWE-200 (exposure of sensitive information), with the upstream advisory additionally classifying it as CWE-863 (incorrect authorization). The listing code in api_keys.php builds its owner predicate from three mutually exclusive branches: two are correctly scoped (ak.adminid = :adminid for an admin limited to their own customers, ak.customerid = :cid for the customer area), while the third - taken whenever the request is in the admin area and customers_see_all is not '0' - appends the literal constant 1, so no owner predicate constrains the result set and SELECT ak.* returns every api_keys row. The customers_see_all flag is intended only to widen visibility of customers an administrator manages, not to expose other administrators' or the super administrator's credentials, so the confidentiality boundary between administrators and tenants is violated; the detail modal callback reads the already-fetched row directly (no re-query, no truncation, no authorization check) and the api_key formfield embeds the raw apikey and secret in a readonly text field in the server-rendered HTML. The escalation is completed on the server side because ApiCommand::readUserData authenticates by matching the submitted apikey and secret verbatim against the stored row with no owner or privilege check. The vulnerable branch is identical in every inspected tag (2.3.8, 2.3.10, 2.3.13, 2.3.14); the lower boundary is recorded conservatively at the earliest inspectable tag because earlier 2.x tags were not available for review, so a wider pre-2.3.8 exposure is plausible but unverified.

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

Vendor (VulnCheck) PRIMARY 8.6 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
vuln.today AI 7.2 HIGH

Network-reachable panel page, low complexity, no UI; PR:H because a privileged reseller-type admin account (customers_see_all) is required; replayed super-admin keys yield full C/I/A impact.

3.1 AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
High
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Nov 03, 2026 - 16:17 EUVD
CVE Published
Nov 03, 2026 - 14:28 cve.org
HIGH 8.6

DescriptionCVE.org

Froxlor from 2.3.8 before 2.3.15 contains an information disclosure vulnerability that allows administrators with customers_see_all to view every account's API key and secret through an unscoped WHERE 1 query in api_keys.php. Attackers can read the super administrator's apikey and secret from the detail modal and replay them to the API to gain super administrator control.

Technical POC Analysis

CWE-200 (Exposure of Sensitive Information to an Unauthorized Actor), with the underlying defect being an authorization failure (CWE-863 as tagged in the advisory).

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

Froxlor versions 2.3.8 through 2.3.14 can expose super administrator API credentials to lower-privileged reseller administrators, allowing them to escalate to full platform control and impersonate every hosted customer. This undermines the tenant isolation model that multi-tenant hosting businesses rely on, and any provider running an affected release with reseller accounts should treat customer data confidentiality and platform integrity as at risk.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: revoke or disable API access for reseller-level administrators, clear the customers_see_all flag on non-super-admin accounts, rotate all API keys and secrets, and monitor /api.php for unauthorized key use.

Threat Intelligence Overview

Prevalence
Low
niche open-source web hosting control panel, limited enterprise footprint
Social Media
1
Sightings
Data Quality
3 sources
Confidence: Low

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS N/A
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

43
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +43
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

CVE-2023-0315 HIGH POC
8.8 Jan 16

Command Injection in GitHub repository froxlor/froxlor prior to 2.0.8. Rated high severity (CVSS 8.8), this vulnerabilit

CVE-2023-3173 CRITICAL POC
9.8 Jun 09

Improper Restriction of Excessive Authentication Attempts in GitHub repository froxlor/froxlor prior to 2.0.20. Rated cr

CVE-2023-1307 CRITICAL POC
9.8 Mar 10

Authentication Bypass by Primary Weakness in GitHub repository froxlor/froxlor prior to 2.0.13. Rated critical severity

CVE-2021-42325 CRITICAL POC
9.8 Oct 12

Froxlor through 0.10.29.1 allows SQL injection in Database/Manager/DbManagerMySQL.php via a custom DB name. Rated critic

CVE-2026-26279 CRITICAL POC
9.1 Mar 03

Command injection in Froxlor server admin before 2.3.4 due to typo (== instead of =) disabling input validation entirely

CVE-2023-6069 HIGH POC
8.8 Nov 10

Improper Link Resolution Before File Access in GitHub repository froxlor/froxlor prior to 2.1.0. Rated high severity (CV

CVE-2023-2034 HIGH POC
8.8 Apr 14

Unrestricted Upload of File with Dangerous Type in GitHub repository froxlor/froxlor prior to 2.0.14. Rated high severit

CVE-2023-1033 HIGH POC
8.8 Feb 25

Cross-Site Request Forgery (CSRF) in GitHub repository froxlor/froxlor prior to 2.0.11. Rated high severity (CVSS 8.8),

CVE-2023-0877 HIGH POC
8.8 Feb 17

Code Injection in GitHub repository froxlor/froxlor prior to 2.0.11. Rated high severity (CVSS 8.8), this vulnerability

CVE-2023-0671 HIGH POC
8.8 Feb 04

Code Injection in GitHub repository froxlor/froxlor prior to 2.0.10. Rated high severity (CVSS 8.8), this vulnerability

CVE-2020-10235 HIGH POC
8.8 Mar 09

An issue was discovered in Froxlor before 0.10.14. Rated high severity (CVSS 8.8), this vulnerability is remotely exploi

CVE-2023-50256 HIGH POC
7.5 Jan 03

Froxlor is open source server administration software. Rated high severity (CVSS 7.5), this vulnerability is remotely ex

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy