Cyber Resilience

CVE-2026-41228

Froxlor ≤ 2.3.6

Public PoC
Published
23 April 2026
Modified
27 April 2026
Patch / advisory
CVSS Score v3.1 9.9
Click a component to see what it means
Raw vectorCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
EPSS Score 0.0052 42th percentile
Risk Priority 69 floored blend · peak EPSS

Summary

CVE-2026-41228 is a critical-severity PHP Remote File Inclusion (CWE-98) vulnerability in Froxlor Froxlor. Its CVSS base score is 9.9 (Critical).

Operationally, exploitation aligns with the MITRE ATT&CK technique Exploit Public-Facing Application (T1190); ranked at the 42th percentile by exploit likelihood (below the median); it is not currently listed in the CISA KEV catalog; a public proof-of-concept is referenced.

The strongest mitigations our analysis identified map to SA-11 (Developer Testing and Evaluation) and SI-10 (Information Input Validation) — see the control section below for these in your framework.

Deeper analysis AI-assisted summary

Synthesised by an AI model from the NVD description and linked references — a reading aid, not an authoritative source.

CVE-2026-41228 is a high-severity vulnerability (CVSS 9.9) in Froxlor, an open-source server administration software. Prior to version 2.3.6, the API endpoints `Customers.update` and `Admins.update` fail to validate the `def_language` parameter against available language files, enabling path traversal. A malicious input like `../../../../../var/customers/webs/customer1/evil` is stored in the database without sanitization. Subsequent requests trigger `Language::loadLanguage()` to construct a file path from this value and execute it via `require`, resulting in arbitrary PHP code execution as the web server user. The issue is classified under CWE-98 (Improper Control of Filename for Include/Require Statement in PHP Program).

An authenticated customer with low privileges (PR:L) can exploit this remotely (AV:N) with low complexity (AC:L) and no user interaction (UI:N), achieving scope change (S:C) for high confidentiality, integrity, and availability impact (C:I:A:H). By updating their `def_language` via the API, the attacker stores a traversal payload pointing to a malicious PHP file they control. When the language file is loaded on future requests—potentially by any user, including admins—the web server executes the attacker's code, allowing full server compromise under the web server's context.

Froxlor version 2.3.6 addresses the vulnerability by validating the `def_language` parameter against available language files. Security practitioners should upgrade immediately, as detailed in the GitHub security advisory (GHSA-w59f-67xm-rxx7), release notes for 2.3.6, and the fixing commit (bc5e6dbaa90e6f3573129da640595e8c770e1d0c). No workarounds are specified in the provided references.

OWASP Top 10 for Web (2025)

EU & UK References

Vulnerability Data

Froxlor is open source server administration software. Prior to version 2.3.6, the Froxlor API endpoint `Customers.update` (and `Admins.update`) does not validate the `def_language` parameter against the list of available language files. An authenticated customer can set `def_language` to a path…

more

traversal payload (e.g., `../../../../../var/customers/webs/customer1/evil`), which is stored in the database. On subsequent requests, `Language::loadLanguage()` constructs a file path using this value and executes it via `require`, achieving arbitrary PHP code execution as the web server user. Version 2.3.6 fixes the issue.

CWE(s)

Related Threats

MITRE ATT&CK Enterprise Techniques

T1190 Exploit Public-Facing Application Initial Access
Adversaries may attempt to exploit a weakness in an Internet-facing host or system to initially access a network.
Derived from this CVE’s CWE(s) via the direct CWE→ATT&CK cross-walk.

CVEs Like This One

CVE-2023-1033Same product: Froxlor Froxlor
CVE-2023-3172Same product: Froxlor Froxlor
CVE-2023-1307Same product: Froxlor Froxlor
CVE-2026-41230Same product: Froxlor Froxlor
CVE-2023-0316Same product: Froxlor Froxlor
CVE-2023-3668Same product: Froxlor Froxlor
CVE-2023-50256Same product: Froxlor Froxlor
CVE-2023-2034Same product: Froxlor Froxlor
CVE-2026-26279Same product: Froxlor Froxlor
CVE-2025-48958Same product: Froxlor Froxlor

Affected Assets

froxlor
froxlor
≤ 2.3.6

Mitigating Controls

Mitigating Controls (NIST 800-53 r5) AI

Developer testing and static analysis can discover missing filename restrictions before deployment.

Validating all inputs before they reach include/require statements directly stops untrusted filenames from being used.

Enforcing access authorizations on resources limits what an included file can reach even if a bad name is supplied.

Information-flow rules can block the loading of external or unauthorized files into the PHP process.

Mitigating Controls (NIST CSF 2.0) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→CSF cross-walk (authority under review) — links open the control.

PR.PS-06 mostly match
prevents

Secure SDLC practices such as input validation and allow-listing of include paths directly prevent the weakness.

PR.PS-01 partial match
prevents

Hardened runtime configuration (e.g., allow_url_include=off) directly blocks RFI even if code is flawed.

PR.PS-05 partial match
prevents

Execution restrictions can prevent the remote payload from running, while eliminating the weakness reduces the need for such controls.

Mitigating Controls (ISO/IEC 27001:2022 Annex A) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→ISO cross-walk (authority under review) — links open the control.

finds

Security testing can detect RFI but does not prevent the weakness by itself.

prevents

Secure development lifecycle mandates input validation and safe include/require patterns that directly prevent remote file inclusion.

prevents

Application security requirements explicitly call for controls against injection and unsafe file operations.

prevents

Secure architecture principles reduce attack surface but do not specifically address dynamic file inclusion.

prevents

Secure coding standards directly require whitelisting and sanitization of filenames used in include/require statements.

none

Information access restriction limits what files can be read but does not address dynamic inclusion logic.

References