Cyber Posture

CVE-2026-41228

CriticalPublic PoC

Published: 23 April 2026

Published
23 April 2026
Modified
27 April 2026
KEV Added
Patch
CVSS Score 9.9 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
EPSS Score 0.0007 22.2th percentile
Risk Priority 20 60% EPSS · 20% KEV · 20% CVSS

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 22.2th 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 are NIST 800-53 SI-10 (Information Input Validation) and SI-2 (Flaw Remediation).

Threat & Defense at a Glance

What attackers do: exploitation maps to Exploit Public-Facing Application (T1190) and 1 other technique. What defenders deploy: see the NIST 800-53 controls recommended below.
Threat & Defense Details

Mitigating Controls (NIST 800-53 r5)AI

prevent

Directly requires validation of the def_language parameter against available language files, preventing path traversal payloads from being stored and executed.

prevent

Mandates timely flaw remediation by applying the Froxlor 2.3.6 patch that adds the missing input validation for API update endpoints.

prevent

Enforces restrictions on def_language inputs to only permitted language identifiers, blocking traversal strings like ../../evil before database storage.

MITRE ATT&CK Enterprise TechniquesAI

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.
T1068 Exploitation for Privilege Escalation Privilege Escalation
Adversaries may exploit software vulnerabilities in an attempt to elevate privileges.
Why these techniques?

Path traversal in API parameter enables arbitrary PHP code execution via unsanitized file include in web app, directly facilitating exploitation of public-facing applications (T1190) and privilege escalation from low-priv authenticated accounts to full server compromise (T1068).

Confidence: HIGH · MITRE ATT&CK Enterprise v18.1

NVD Description

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.

Deeper analysisAI

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.

Details

CWE(s)

Affected Products

froxlor
froxlor
≤ 2.3.6

CVEs Like This One

CVE-2026-30932Same product: Froxlor Froxlor
CVE-2026-41230Same product: Froxlor Froxlor
CVE-2026-41229Same product: Froxlor Froxlor
CVE-2026-41231Same product: Froxlor Froxlor
CVE-2026-26279Same product: Froxlor Froxlor
CVE-2025-29773Same product: Froxlor Froxlor
CVE-2026-22464Shared CWE-98
CVE-2025-23945Shared CWE-98
CVE-2026-24390Shared CWE-98
CVE-2026-1463Shared CWE-98

References