IIS FTP Server Buffer Overflow (Sep 3, 2009)

Microsoft Internet Information Server (IIS) is a collection of Internet service packages. The FTP server service of IIS provides functionality for exchanging and manipulating files over TCP.

One of the FTP commands supported by IIS is NLST (Name List). This command is used to transfer a directory listing from server to the FTP client. A typical NLST command looks like:


If the pathname is NULL, the current directory is used.

A buffer overflow vulnerability exists within IIS FTP server service. Specifically, when a FTP user sends a NLST command with an overly long pathname, the vulnerable code copies the pathname into a fixed-size stack buffer without performing boundary check. Successful exploitation would overwrite critical process data (such as function return addresses), result in code execution with the privileges of FTP server service. An unsuccessful attack would cause the service to crash, result in a denial of service condition.

This vulnerability has been assigned as CVE-2009-3023. It affects the following IIS versions:
IIS 5.0
IIS 5.1
IIS 6.0 (denial of service only)

SonicWALL has released an IPS signature to detect and block specific exploitation attempts targeting this vulnerability. The signature is listed below:

  • 2023 – NLST Command BO Attempt