Vulnerabilities > CVE-2001-0450 - Directory Traversal vulnerability in Broker FTP Server

047910
CVSS 6.4 - MEDIUM
Attack vector
NETWORK
Attack complexity
LOW
Privileges required
NONE
Confidentiality impact
PARTIAL
Integrity impact
PARTIAL
Availability impact
NONE
network
low complexity
transsoft
nessus

Summary

Directory traversal vulnerability in Transsoft FTP Broker before 5.5 allows attackers to (1) delete arbitrary files via DELETE, or (2) list arbitrary directories via LIST, via a .. (dot dot) in the file name.

Vulnerable Configurations

Part Description Count
Application
Transsoft
1

Nessus

NASL familyFTP
NASL idBROKER_FTP.NASL
descriptionBroker FTP appears to be running on the remote host. This version has a directory traversal vulnerability that allows a remote attacker to view and delete files outside of the FTP root directory.
last seen2020-06-01
modified2020-06-02
plugin id10556
published2000-11-24
reporterThis script is Copyright (C) 2000-2019 and is owned by Tenable, Inc. or an Affiliate thereof.
sourcehttps://www.tenable.com/plugins/nessus/10556
titleBroker FTP Multiple Command Arbitrary File/Directory Manipulation
code
#
# (C) Tenable Network Security, Inc.
#

include("compat.inc");

if (description)
{
 script_id(10556);
 script_version("1.43");
 script_cvs_date("Date: 2019/02/26  4:50:08");

 script_cve_id("CVE-2001-0450");
 script_bugtraq_id(301);

 script_name(english:"Broker FTP Multiple Command Arbitrary File/Directory Manipulation");
 script_summary(english:"Attempts to get the listing of the remote root dir");

 script_set_attribute(attribute:"synopsis", value:"The remote FTP server has a directory traversal vulnerability.");
 script_set_attribute(attribute:"description", value:
"Broker FTP appears to be running on the remote host. This version has
a directory traversal vulnerability that allows a remote attacker to
view and delete files outside of the FTP root directory.");
 script_set_attribute(attribute:"see_also", value:"https://seclists.org/bugtraq/2001/Mar/26");
 script_set_attribute(attribute:"solution", value:"Upgrade to the latest version of Broker FTP.");
  script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:P/I:P/A:P");
 script_set_cvss_temporal_vector("CVSS2#E:U/RL:OF/RC:C");
 script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L");
 script_set_cvss3_temporal_vector("CVSS:3.0/E:U/RL:O/RC:C");
  script_set_attribute(attribute:"cvss_score_source", value:"CVE-2001-0450");
 script_set_attribute(attribute:"exploitability_ease", value:"No known exploits are available");
 script_set_attribute(attribute:"exploit_available", value:"false");

 script_set_attribute(attribute:"vuln_publication_date", value:"2001/03/03");
 script_set_attribute(attribute:"plugin_publication_date", value:"2000/11/24");

 script_set_attribute(attribute:"potential_vulnerability", value:"true");
 script_set_attribute(attribute:"plugin_type", value:"remote");
 script_end_attributes();

 script_category(ACT_GATHER_INFO);
 script_family(english:"FTP");

  script_copyright(english:"This script is Copyright (C) 2000-2019 and is owned by Tenable, Inc. or an Affiliate thereof.");

 script_dependencies("ftpserver_detect_type_nd_version.nasl", "ftp_anonymous.nasl");
 script_require_keys("ftp/login", "Settings/ParanoidReport");
 script_exclude_keys("ftp/ncftpd", "ftp/msftpd");
 script_require_ports("Services/ftp", 21);

 exit(0);
}

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


if (report_paranoia < 2) audit(AUDIT_PARANOID);

port = get_ftp_port(default: 21);

soc = ftp_open_and_authenticate( user:"anonymous", pass:"[email protected]", port:port );
if(soc)
{
 p = ftp_pasv(socket:soc);
 soc2 = open_sock_tcp(p, transport:get_port_transport(port));
 if(soc2)
 {
  s = 'LIST /\r\n';
  send(socket:soc, data:s);
  r = ftp_recv_line(socket:soc);
  if(egrep(pattern:"^150 ", string:r))
  {
      listing1 = ftp_recv_listing(socket:soc2);
  }
  close(soc2);
  r = ftp_recv_line(socket:soc);

  p = ftp_pasv(socket:soc);
  soc2 = open_sock_tcp(p, transport:get_port_transport(port));
  if ( ! soc2 ) exit(1, "Cannot connect to TCP port "+p+".");


  s = 'LIST C:\\\r\n';
  send(socket:soc, data:s);
  r = ftp_recv_line(socket:soc);
  if(egrep(pattern:"^150 ", string:r))
  {
      r = ftp_recv_listing(socket:soc2);
      if(r && ( listing1 != r ) )
      {
	if("No such file or directory" >< r)exit(0);
      w = 'It was possible to get the listing of the remote root\n'+
'directory by issuing the command\n\n'+
'LIST C:\\\n'+
'Which displays :\n'+
string(r) + '\n';
  security_hole(port:port, extra:w);
     }
  }
 close(soc);
 close(soc2);
 }
}