A decade after its initial discovery, the ProFTPD improper access control vulnerability tracked as CVE-2015-3306 remains one of the most persistently targeted remote code execution flaws on public-facing Linux infrastructure. With a measured EPSS probability score of 96.8%—placing it in the 99.9th percentile for active exploitation—automated scanners and opportunistic threat actors continuously probe internet-facing deployments for unpatched instances of ProFTPD 1.3.5.
The Exploit Path: How mod_copy Abuse Works
The vulnerability exists in ProFTPD’s mod_copy module, which is compiled and enabled by default in affected releases. mod_copy introduces custom FTP commands—specifically SITE CPFR (copy from) and SITE CPTO (copy to)—designed to allow local server-side file transfers without routing data back through the client.
The security failure lies in access control enforcement: mod_copy processes these SITE commands prior to user authentication. An unauthenticated remote attacker connecting to port 21 can execute file read and write operations across the filesystem under the security context of the ProFTPD process (typically the nobody or ftp service accounts).
While arbitrary file copy capabilities might seem limited at first glance, the CVSS 3.1 score of 10.0 reflects a Scope Change (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H) because the vulnerability allows attackers to impact components outside the FTP daemon itself. The classic attack sequence weaponizes mod_copy to achieve full remote code execution:
- Payload Staging: The attacker sends a crafted request containing PHP code or shell script commands to a service whose logs are predictable or accessible (such as a web server access log, or even directly into the FTP service connection string).
- Arbitrary Copy (
SITE CPFR): The attacker specifies the staged file or runtime memory file—such as/proc/self/cmdlineor/var/log/proftpd/proftpd.log—as the copy source usingSITE CPFR. - Webshell Delivery (
SITE CPTO): The attacker issuesSITE CPTO /var/www/html/shell.phpto drop the file directly into a web server’s document root. - Execution: Navigating to
http://<target>/shell.phpexecutes the webshell with the privileges of the web daemon, granting persistent interactive command access.
In environments where ProFTPD runs with misconfigured permissions or elevated root rights, attackers bypass webshell staging entirely by using SITE CPTO to overwrite system files such as /root/.ssh/authorized_keys or drop scripts into /etc/cron.d/.
Target Profile and Exploitation Context
Because ProFTPD was historically bundled into numerous web hosting control panels, network-attached storage (NAS) devices, and enterprise Linux distributions, vulnerable 1.3.5 installations frequently persist on legacy systems or unmanaged perimeter assets.
Because the flaw requires zero authentication (PR:N), low attack complexity (AC:L), and no user interaction (UI:N), it is regularly integrated into automated exploitation frameworks and botnet propagation scripts targeting Linux environments for cryptomining, DDoS recruitment, and initial access sales.
Remediation and Technical Guidance
To address CVE-2015-3306, administrators should immediately implement one of the following technical controls:
- Upgrade Software: Update ProFTPD to version 1.3.5a or later, where
mod_copyrequires proper client authentication before executing copy commands. - Disable mod_copy: If an immediate binary upgrade cannot be performed, disable the module by removing or commenting out
LoadModule mod_copy.cin/etc/proftpd/modules.conf(or/etc/proftpd.conf) and restart theproftpdservice. - Enforce Command Limits: If
mod_copymust remain active on an unpatched version, explicitly restrict access inproftpd.confusing a limit block:<Plugin mod_copy.c> <Limit SITE_COPYS> DenyAll </Limit> </Plugin> - Forensic Detection: Inspect public web roots (e.g.,
/var/www/) and log directories for newly created executable files owned by the FTP service account (nobodyorftp). Search ProFTPD logs for unauthenticated commands matchingSITE CPFRandSITE CPTO.
Related content
CVE-2015-5477: Dissecting the ISC BIND TKEY Denial of Service Vulnerability
AdvisoryCVE-2021-3199: Unauthenticated Remote Code Execution in ONLYOFFICE Docs
AdvisoryStrapi CVE-2023-22894: Query Filter Secrets Leak Enables RCE Chaining
AdvisoryApache Struts Command Injection Vulnerability (CVE-2016-3081): Technical Analysis
Found something similar in your stack?
Let's find out before it becomes an incident.
Book an advisory call