CVE-2026-41236 is a high-severity security vulnerability in froxlor/froxlor (composer), affecting versions = 2.3.6. It is fixed in 2.3.7.
Summary Froxlor 2.3.6 contains a symlink-following flaw in the root-owned SSH key synchronization path used for customer FTP users. The provisioning code appends public keys to ~/.ssh/authorizedkeys under a customer-controlled home directory without verifying that the target path is not a symbolic link. If an attacker controls a shell-enabled customer account and can modify files inside the assigned home directory, the attacker can replace ~/.ssh/authorizedkeys with a symlink to /root/.ssh/authorizedkeys. When Froxlor's privileged cron task later synchronizes SSH keys, it appends the attacker-supplied key into root's authorized key file, resulting in root SSH access. Details The customer-facing SSH key workflow accepts an FTP user selection and an arbitrary public key from the authenticated session and forwards them into SshKeys::add(): On the server side, the add handler stores the public key and schedules an NSS rebuild as long as the customer has shell capability enabled at the customer level: Later, a root-owned cron path enters SshKeys::generateFiles() and derives the target path by simple string concatenation: The helper used here only normalizes the path string and does not resolve or reject symlinks: The root-owned sync code then appends attacker-controlled SSH key material to the derived path: Because Froxlor also grants the customer ownership of the home directory tree during account provisioning, the attacker can place a symbolic link at ~/.ssh/authorizedkeys before the privileged synchronization step runs. PoC An attacker needs an authenticated customer account with shell-enabled home-directory control. That prerequisite may exist by normal configuration, or it may be obtained first through the separate FTP shell-assignment authorization bypass described in the companion report. Relevant runtime prerequisites: the attacker controls a customer-owned home directory on the target host the attacking customer has shellallowed=1 the attacker can submit SSH keys through the Froxlor panel Froxlor's master cron runs with the intended root privileges Complete PoC flow: Obtain shell access as the customer-owned account and prepare a symlink in the home directory: From an authenticated Froxlor customer session, submit a new SSH public key for the relevant FTP user: Wait for Froxlor's master cron to process the queued REBUILDNSSUSERS task. Use the corresponding private key to authenticate as root: Result: the root-owned cron task follows the symlinked authorizedkeys path the submitted public key is appended to /root/.ssh/authorizedkeys SSH access as root succeeds with the attacker's key pair Impact This is a direct customer-to-root privilege escalation on the managed host. A successful attacker can obtain full operating-system control, read or modify all hosted customer data, persist at the highest privilege level, and tamper with every service administered by the server.
CVE-2026-41236 has a CVSS score of 8.8 (High). The vector is network-reachable, low privileges required, and no user interaction. A CVSS score reflects the worst-case severity of the vulnerability, not your specific exposure. Whether this affects your application depends on whether the vulnerable code is present and reachable in your environment.
A fixed version is available (2.3.7). Upgrading removes the vulnerable code path.
composer
froxlor/froxlor (= 2.3.6)froxlor/froxlor → 2.3.7 (composer)Severity tells you how bad this could be in the worst case. It does not tell you whether you are exposed. Exploitability and impact are functions of runtime truth: whether the vulnerable code is present, reachable, and actually executes in your application. A vulnerable package can sit in your dependency tree and never run.
Kodem, an Intelligent Application Security platform, uses runtime intelligence to reveal which vulnerabilities actually execute in production, so teams prioritize the ones that genuinely matter instead of chasing every advisory.
Kodem's runtime-powered SCA identifies whether CVE-2026-41236 is reachable in your applications. Explore open-source security for your team.
See if CVE-2026-41236 is reachable in your applications. Get a demo
Already deployed Kodem? See CVE-2026-41236 in your environment →Upgrade froxlor/froxlor to 2.3.7 or later to resolve this vulnerability.
Kodem Kai can prioritize this vulnerability in your dependency tree and generate a fix recommendation.
CVE-2026-41236 is a high-severity security vulnerability in froxlor/froxlor (composer), affecting versions = 2.3.6. It is fixed in 2.3.7.
CVE-2026-41236 has a CVSS score of 8.8 (High). This score reflects the worst-case severity of the vulnerability, not your specific exposure. Whether it represents real risk in your environment depends on whether the vulnerable code is present and reachable.
froxlor/froxlor (composer) versions = 2.3.6 is affected.
Yes. CVE-2026-41236 is fixed in 2.3.7. Upgrade to this version or later.
Whether CVE-2026-41236 is exploitable in your environment depends on whether the vulnerable code is present and reachable. A CVSS score is a worst-case rating; it does not account for your specific deployment, configuration, or usage patterns. Kodem, an Intelligent Application Security platform, uses runtime intelligence to show which vulnerabilities actually execute in production, so you can focus on the ones that represent real risk. Get a demo
Exploitability and impact are not fixed properties of a CVE. They depend on runtime truth: whether the vulnerable code is present, reachable, and actually executes in your application. A high CVSS score on a dependency that never runs is not the same as real risk. Kodem, an Intelligent Application Security platform, uses runtime intelligence to reveal which vulnerabilities actually execute in production, so teams prioritize the ones that genuinely matter.
Upgrade froxlor/froxlor to 2.3.7 or later.