Vulnerabilities > CVE-2001-0895 - Local Interface ARP Denial of Service vulnerability in Cisco

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

Summary

Multiple Cisco networking products allow remote attackers to cause a denial of service on the local network via a series of ARP packets sent to the router's interface that contains a different MAC address for the router, which eventually causes the router to overwrite the MAC address in its ARP table.

Nessus

  • NASL familyCISCO
    NASL idCISCO-SA-20011115-IOS-ARP-OVERWRITEHTTP.NASL
    descriptionIt is possible to send an Address Resolution Protocol (ARP) packet on a local broadcast interface (for example, Ethernet, cable, Token Ring, FDDI) which could cause a router or switch running specific versions of Cisco IOS Software Release to stop sending and receiving ARP packets on the local router interface. This will in a short time cause the router and local hosts to be unable to send packets to each other. ARP packets received by the router for the router\
    last seen2020-06-01
    modified2020-06-02
    plugin id48961
    published2010-09-01
    reporterThis script is (C) 2010-2018 Tenable Network Security, Inc.
    sourcehttps://www.tenable.com/plugins/nessus/48961
    titleCisco IOS ARP Table Overwrite Vulnerability - Cisco Systems
    code
    #
    # (C) Tenable Network Security, Inc.
    #
    # Security advisory is (C) CISCO, Inc.
    # See https://www.cisco.com/en/US/products/products_security_advisory09186a00800b113c.shtml
    
    if (NASL_LEVEL < 3000) exit(0);
    
    include("compat.inc");
    
    if (description)
    {
     script_id(48961);
     script_version("1.10");
     script_cve_id("CVE-2001-0895");
     script_bugtraq_id(3547);
     script_xref(name:"CERT", value:"399355");
     script_xref(name:"CISCO-BUG-ID", value:"CSCdu81936");
     script_xref(name:"CISCO-BUG-ID", value:"CSCdu85209");
     script_xref(name:"CISCO-BUG-ID", value:"CSCdv04366");
     script_xref(name:"CISCO-BUG-ID", value:"CSCdv63206");
     script_xref(name:"CISCO-BUG-ID", value:"CSCdv77220");
     script_xref(name:"CISCO-BUG-ID", value:"CSCdv77242");
     script_xref(name:"CISCO-BUG-ID", value:"CSCdv83509");
     script_xref(name:"CISCO-SA", value:"cisco-sa-20011115-ios-arp-overwrite");
    
     script_name(english:"Cisco IOS ARP Table Overwrite Vulnerability - Cisco Systems");
     script_set_attribute(attribute:"synopsis", value:
    "The remote device is missing a vendor-supplied security patch" );
     script_set_attribute(attribute:"description", value:
    'It is possible to send an Address Resolution Protocol (ARP) packet on a
    local broadcast interface (for example, Ethernet, cable, Token Ring,
    FDDI) which could cause a router or switch running specific versions of
    Cisco IOS Software Release to stop sending and receiving ARP packets
    on the local router interface. This will in a short time cause the
    router and local hosts to be unable to send packets to each other. ARP
    packets received by the router for the router\'s own interface address
    but a different Media Access Control (MAC) address will overwrite the
    router\'s MAC address in the ARP table with the one from the received
    ARP packet. This was demonstrated to attendees of the Black Hat
    conference and should be considered to be public knowledge. This attack
    is only successful against devices on the segment local to the attacker
    or attacking host. 
    This vulnerability is documented in Cisco Bug ID CSCdu81936, and a
    workaround is available. 
    ');
     # https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20011115-ios-arp-overwrite
     script_set_attribute(attribute:"see_also", value: "http://www.nessus.org/u?1c376185");
     # https://www.cisco.com/en/US/products/products_security_advisory09186a00800b113c.shtml
     script_set_attribute(attribute:"see_also", value: "http://www.nessus.org/u?40d7b236");
     script_set_attribute(attribute:"solution", value:
    "Apply the relevant patch referenced in Cisco Security Advisory 
    cisco-sa-20011115-ios-arp-overwrite.");
     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: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:"plugin_type", value: "local");
     script_set_attribute(attribute:"cpe", value: "cpe:/o:cisco:ios");
     script_set_attribute(attribute:"vuln_publication_date", value: "2001/11/15");
     script_set_attribute(attribute:"patch_publication_date", value: "2001/11/15");
     script_set_attribute(attribute:"plugin_publication_date", value: "2010/09/01");
     script_cvs_date("Date: 2018/11/15 20:50:20");
    
     script_end_attributes();
     script_summary(english:"Uses SNMP to determine if a flaw is present");
     script_category(ACT_GATHER_INFO);
     script_copyright(english:"This script is (C) 2010-2018 Tenable Network Security, Inc.");
     script_family(english:"CISCO");
     script_dependencie("cisco_ios_version.nasl");
     script_require_keys("Host/Cisco/IOS/Version");
     exit(0);
    }
    include("cisco_func.inc");
    
    #
    
    version = get_kb_item_or_exit("Host/Cisco/IOS/Version");
    
    # Affected: 11.1 and earlier, all variants
    if (
      version =~ "^[0-9]\." ||     # 0.x-9.x
      version =~ "^10\." ||        # 10.x
      version =~ "^11\.[01][^0-9]" # 11.0, 11.1
    )
    {
     security_warning(port:0, extra: '\nNo updates are scheduled for versions 11.1 and earlier. Upgrade to a supported version\n'); exit(0);
    }
    
    # the language for all 11.2 and 11.3 releases are ambiguous, e.g.,
    #   11.2: Not affected after 11.2(13)
    # talked to Cisco and they said this means 11.2(13) is the first non-vulnerable version
    
    # Affected: 11.2
    if (check_release(version: version,
                      patched: make_list("11.2(13)") )) {
     security_warning(port:0, extra: '\nUpdate to ' + patch_update + ' or later\n'); exit(0);
    }
    # Affected: 11.2P
    if (check_release(version: version,
                      patched: make_list("11.2(12)P") )) {
     security_warning(port:0, extra: '\nUpdate to ' + patch_update + ' or later\n'); exit(0);
    }
    # Affected: 11.3
    if (check_release(version: version,
                      patched: make_list("11.3(3)") )) {
     security_warning(port:0, extra: '\nUpdate to ' + patch_update + ' or later\n'); exit(0);
    }
    # Affected: 11.3T
    if (deprecated_version(version, "11.3T")) {
     security_warning(port:0, extra: '\nUpdate to 11.3(3) or later\n'); exit(0);
    }
    # Affected: 12.0
    if (check_release(version: version,
                      patched: make_list("12.0(19.6)") )) {
     security_warning(port:0, extra: '\nUpdate to ' + patch_update + ' or later\n'); exit(0);
    }
    # Affected: 12.0DA
    if (deprecated_version(version, "12.0DA")) {
     security_warning(port:0, extra: '\nUpgrade to 12.2DA\n'); exit(0);
    }
    # Affected: 12.0DB
    if (deprecated_version(version, "12.0DB")) {
     security_warning(port:0, extra: '\nUpdate to 12.2(4.2) or later\n'); exit(0);  # the advisory says to upgrade to 12.1T, but for 12.1T it says to upgrade to 12.2 (which says to upgrade to 12.2(4.2)
    }
    # Affected: 12.0DC
    if (deprecated_version(version, "12.0DC")) {
     security_warning(port:0, extra: '\nUpdate to 12.2(2)B or later\n'); exit(0);
    }
    # Affected: 12.0S
    if (check_release(version: version,
                      patched: make_list("12.0(21)S") )) {
     security_warning(port:0, extra: '\nUpdate to ' + patch_update + ' or later\n'); exit(0);
    }
    # Affected: 12.0SC
    if (deprecated_version(version, "12.0SC")) {
     security_warning(port:0, extra: '\nUpdate to 12.1(8.5)EC or later\n'); exit(0);
    }
    # Affected: 12.0SL
    if (deprecated_version(version, "12.0SL")) {
     security_warning(port:0, extra: '\nUpdate to 12.0(20)ST or later\n'); exit(0);
    }
    # Affected: 12.0SP
    if (check_release(version: version,
                      patched: make_list("12.0(20)SP") )) {
     security_warning(port:0, extra: '\nUpdate to ' + patch_update + ' or later\n'); exit(0);
    }
    # Affected: 12.0ST
    if (check_release(version: version,
                      patched: make_list("12.0(20)ST") )) {
     security_warning(port:0, extra: '\nUpdate to ' + patch_update + ' or later\n'); exit(0);
    }
    # Affected: 12.0T
    if (deprecated_version(version, "12.0T")) {
     security_warning(port:0, extra: '\nUpdate to 12.1(11) or later\n'); exit(0);
    }
    # Affected: 12.0W5
    if (
      version =~ 'W5' && # avoid flagging versions like W4, if such a thing exists
      check_release(version: version, patched: make_list("12.0(16)W5(21b)", "12.0(18)W5(22a)", "12.0(20)W5(24)") )) {
     security_warning(port:0, extra: '\nUpdate to ' + patch_update + ' or later\n'); exit(0);
    }
    # Affected: 12.0WC
    if (check_release(version: version,
                      patched: make_list("12.0(5)WC3") )) {
     security_warning(port:0, extra: '\nUpdate to ' + patch_update + ' or later\n'); exit(0);
    }
    # Affected: 12.0XA
    if (deprecated_version(version, "12.0XA")) {
     security_warning(port:0, extra: '\nUpdate to 12.1(11) or later\n'); exit(0);
    }
    # Affected: 12.0XB
    if (deprecated_version(version, "12.0XB")) {
     security_warning(port:0, extra: '\nUpdate to 12.1(11) or later\n'); exit(0);
    }
    # Affected: 12.0XC
    if (deprecated_version(version, "12.0XC")) {
     security_warning(port:0, extra: '\nUpdate to 12.1(11) or later\n'); exit(0);
    }
    # Affected: 12.0XD
    if (deprecated_version(version, "12.0XD")) {
     security_warning(port:0, extra: '\nUpdate to 12.1(11) or later\n'); exit(0);
    }
    # Affected: 12.0XE
    if (deprecated_version(version, "12.0XE")) {
     security_warning(port:0, extra: '\nUpdate to 12.1(11)E or later\n'); exit(0);
    }
    # Affected: 12.0XF
    if (deprecated_version(version, "12.0XF")) {
     security_warning(port:0, extra: '\nUpdate to 12.1(11) or later\n'); exit(0);
    }
    # Affected: 12.0XG
    if (deprecated_version(version, "12.0XG")) {
     security_warning(port:0, extra: '\nUpdate to 12.1(11) or later\n'); exit(0);
    }
    # Affected: 12.0XH
    if (deprecated_version(version, "12.0XH")) {
     security_warning(port:0, extra: '\nUpdate to 12.1(11) or later\n'); exit(0);
    }
    # Affected: 12.0XI
    if (deprecated_version(version, "12.0XI")) {
     security_warning(port:0, extra: '\nUpdate to 12.1(11) or later\n'); exit(0);
    }
    # Affected: 12.0XJ
    if (deprecated_version(version, "12.0XJ")) {
     security_warning(port:0, extra: '\nUpdate to 12.1(11) or later\n'); exit(0);
    }
    # Affected: 12.0XK
    if (deprecated_version(version, "12.0XK")) {
     security_warning(port:0, extra: '\nUpdate to 12.1(11) or later\n'); exit(0);
    }
    # Affected: 12.0XL
    if (deprecated_version(version, "12.0XL")) {
     security_warning(port:0, extra: '\nUpdate to 12.1(11) or later\n'); exit(0);
    }
    # Affected: 12.0XM
    if (deprecated_version(version, "12.0XM")) {
     security_warning(port:0, extra: '\nUpdate to 12.1(11) or later\n'); exit(0);
    }
    # Affected: 12.0XN
    if (deprecated_version(version, "12.0XN")) {
     security_warning(port:0, extra: '\nUpdate to 12.1(11) or later\n'); exit(0);
    }
    # Affected: 12.0XP
    if (deprecated_version(version, "12.0XP")) {
     security_warning(port:0, extra: '\nNo updates are scheduled for 12.0XP. Use the workaround or upgrade to a supported version\n'); exit(0);
    }
    # Affected: 12.0XQ
    if (deprecated_version(version, "12.0XQ")) {
     security_warning(port:0, extra: '\nUpdate to 12.1(11) or later\n'); exit(0);
    }
    # Affected: 12.0XR
    if (deprecated_version(version, "12.0XR")) {
     security_warning(port:0, extra: '\nUpdate to 12.1(11) or later\n'); exit(0);
    }
    # Affected: 12.0XS
    if (deprecated_version(version, "12.0XS")) {
     security_warning(port:0, extra: '\nUpdate to 12.1(11)E or later\n'); exit(0);
    }
    # Affected: 12.0XU
    if (deprecated_version(version, "12.0XU")) {
     security_warning(port:0, extra: '\nNo updates are scheduled for 12.0XU. Use the workaround or upgrade to a supported version\n'); exit(0);
    }
    # Affected: 12.0XV
    if (deprecated_version(version, "12.0XV")) {
     security_warning(port:0, extra: '\nUpdate to 12.2(4)2 or later\n'); exit(0);
    }
    # Affected: 12.1
    if (check_release(version: version,
                      patched: make_list("12.1(10.3)", "12.1(11)"))) {
     security_warning(port:0, extra: '\nUpdate to ' + patch_update + ' or later\n'); exit(0);
    }
    # Affected: 12.1AA
    if (check_release(version: version,
                      patched: make_list("12.1(10)AA") )) {
     security_warning(port:0, extra: '\nUpdate to ' + patch_update + ' or later\n'); exit(0);
    }
    # Affected: 12.1DA
    if (deprecated_version(version, "12.1DA")) {
     security_warning(port:0, extra: '\nUpdate to 12.2(7)T or later\n'); exit(0);
    }
    # Affected: 12.1DB
    if (deprecated_version(version, "12.1DB")) {
     security_warning(port:0, extra: '\nUpdate to 12.2(2)B or later\n'); exit(0);
    }
    # Affected: 12.1DC
    if (deprecated_version(version, "12.1DC")) {
     security_warning(port:0, extra: '\nUpdate to 12.2(2)B or later\n'); exit(0);
    }
    # Affected: 12.1E
    if (check_release(version: version,
                      patched: make_list("12.1(8a)E5") )) {  # advisory lists this as 12.1(08a)E05
     security_warning(port:0, extra: '\nUpdate to ' + patch_update + ' or later\n'); exit(0);
    }
    # Affected: 12.1EA
    if (check_release(version: version,
                      patched: make_list("12.1(6)EA1a") )) {
     security_warning(port:0, extra: '\nUpdate to ' + patch_update + ' or later\n'); exit(0);
    }
    # Affected: 12.1EC
    if (check_release(version: version,
                      patched: make_list("12.1(8.5)EC", "12.1(9)EC"))) {
     security_warning(port:0, extra: '\nUpdate to ' + patch_update + ' or later\n'); exit(0);
    }
    # Affected: 12.1EX
    if (deprecated_version(version, "12.1EX")) {
     security_warning(port:0, extra: '\nUpdate to 12.1(11)E or later\n'); exit(0);
    }
    # Affected: 12.1EZ
    if (check_release(version: version,
                      patched: make_list("12.1(6)EZ4"))) {
     security_warning(port:0, extra: '\nUpdate to ' + patch_update + ' or later\n'); exit(0);
    }
    # Affected: 12.1T
    if (deprecated_version(version, "12.1T")) {
     security_warning(port:0, extra: '\nUpdate to 12.2(4)2 or later\n'); exit(0);
    }
    # Affected: 12.1XA
    if (deprecated_version(version, "12.1XA")) {
     security_warning(port:0, extra: '\nUpdate to 12.2(4)2 or later\n'); exit(0);
    }
    # Affected: 12.1XB
    if (deprecated_version(version, "12.1XB")) {
     security_warning(port:0, extra: '\nUpdate to 12.2(4)2 or later\n'); exit(0);
    }
    # Affected: 12.1XC
    if (deprecated_version(version, "12.1XC")) {
     security_warning(port:0, extra: '\nUpdate to 12.2(4)2 or later\n'); exit(0);
    }
    # Affected: 12.1XD
    if (deprecated_version(version, "12.1XD")) {
     security_warning(port:0, extra: '\nUpdate to 12.2(4)2 or later\n'); exit(0);
    }
    # Affected: 12.1XE
    if (deprecated_version(version, "12.1XE")) {
     security_warning(port:0, extra: '\nUpdate to 12.2(4)2 or later\n'); exit(0);
    }
    # Affected: 12.1XF
    if (check_release(version: version,
                      patched: make_list("12.1(2)XF5") )) {
     security_warning(port:0, extra: '\nUpdate to ' + patch_update + ' or later\n'); exit(0);
    }
    # Affected: 12.1XG
    if (check_release(version: version,
                      patched: make_list("12.1(3)XG6") )) {
     security_warning(port:0, extra: '\nUpdate to ' + patch_update + ' or later\n'); exit(0);
    }
    # Affected: 12.1XH
    if (deprecated_version(version, "12.1XH")) {
     security_warning(port:0, extra: '\nUpdate to 12.2(4)2 or later\n'); exit(0);
    }
    # Affected: 12.1XI
    if (deprecated_version(version, "12.1XI")) {
     security_warning(port:0, extra: '\nUpdate to 12.2(4)2 or later\n'); exit(0);
    }
    # Affected: 12.1XJ
    if (deprecated_version(version, "12.1XJ")) {
     security_warning(port:0, extra: '\nUpdate to 12.2(4)2 or later\n'); exit(0);
    }
    # Affected: 12.1XK
    if (deprecated_version(version, "12.1XK")) {
     security_warning(port:0, extra: '\nUpdate to 12.2(4)2 or later\n'); exit(0);
    }
    # Affected: 12.1XL
    if (deprecated_version(version, "12.1XL")) {
     security_warning(port:0, extra: '\nUpdate to 12.2(4)2 or later\n'); exit(0);
    }
    # Affected: 12.1XM
    if (check_release(version: version,
                      patched: make_list("12.1(5)XM6") )) {
     security_warning(port:0, extra: '\nUpdate to ' + patch_update + ' or later\n'); exit(0);
    }
    # Affected: 12.1XP
    if (deprecated_version(version, "12.1XP")) {
     security_warning(port:0, extra: '\nUpdate to 12.2(2)T or later\n'); exit(0);
    }
    # Affected: 12.1XQ
    if (deprecated_version(version, "12.1XQ")) {
     security_warning(port:0, extra: '\nUpdate to 12.2(2)T or later\n'); exit(0);
    }
    # Affected: 12.1XR
    if (deprecated_version(version, "12.1XR")) {
     security_warning(port:0, extra: '\nUpdate to 12.2(7)T or later\n'); exit(0);
    }
    # Affected: 12.1XS
    if (deprecated_version(version, "12.1XS")) {
     security_warning(port:0, extra: '\nUpdate to 12.2(2)XC1 or later\n'); exit(0);
    }
    # Affected: 12.1XT
    if (deprecated_version(version, "12.1XT")) {
     security_warning(port:0, extra: '\nUpdate to 12.2(7)T or later\n'); exit(0);
    }
    # Affected: 12.1XV
    if (deprecated_version(version, "12.1XV")) {
     security_warning(port:0, extra: '\nUpdate to 12.2(2)XB2 or later\n'); exit(0);
    }
    # Affected: 12.1XW
    if (deprecated_version(version, "12.1XW")) {
     security_warning(port:0, extra: '\nUpdate to 12.1(11) or later\n'); exit(0);
    }
    # Affected: 12.1XX
    if (deprecated_version(version, "12.1XX")) {
     security_warning(port:0, extra: '\nUpdate to 12.1(11) or later\n'); exit(0);
    }
    # Affected: 12.1YA
    if (deprecated_version(version, "12.1YA")) {
     security_warning(port:0, extra: '\nUpdate to 12.2(2)XB or later\n'); exit(0);
    }
    # Affected: 12.1YB
    if (check_release(version: version,
                      patched: make_list("12.1(5)YB5") )) {
     security_warning(port:0, extra: '\nUpdate to ' + patch_update + ' or later\n'); exit(0);
    }
    # Affected: 12.1YC
    if (check_release(version: version,
                      patched: make_list("12.1(5)YC2") )) {
     security_warning(port:0, extra: '\nUpdate to ' + patch_update + ' or later\n'); exit(0);
    }
    # Affected: 12.1YD
    if (deprecated_version(version, "12.1YD")) {
     security_warning(port:0, extra: '\nUpdate to 12.2(7)T or later\n'); exit(0);
    }
    # Affected: 12.1YE
    if (check_release(version: version,
                      patched: make_list("12.1(5)YE4") )) {
     security_warning(port:0, extra: '\nUpdate to ' + patch_update + ' or later\n'); exit(0);
    }
    # Affected: 12.1YF
    if (check_release(version: version,
                      patched: make_list("12.1(5)YF3") )) {
     security_warning(port:0, extra: '\nUpdate to ' + patch_update + ' or later\n'); exit(0);
    }
    # Affected: 12.2
    if (check_release(version: version,
                      patched: make_list("12.2(4.2)", "12.2(5)"))) {
     security_warning(port:0, extra: '\nUpdate to ' + patch_update + ' or later\n'); exit(0);
    }
    # Affected: 12.2DD
    if (check_release(version: version,
                      patched: make_list("12.2(2)DD1"))) {
     security_warning(port:0, extra: '\nUpdate to ' + patch_update + ' or later\n'); exit(0);
    }
    # Affected: 12.2T
    if (check_release(version: version,
                      patched: make_list("12.2(7)T") )) {
     security_warning(port:0, extra: '\nUpdate to ' + patch_update + ' or later\n'); exit(0);
    }
    # Affected: 12.2XA
    if (check_release(version: version,
                      patched: make_list("12.2(2)XA4") )) {
     security_warning(port:0, extra: '\nUpdate to ' + patch_update + ' or later\n'); exit(0);
    }
    # Affected: 12.2XB
    if (check_release(version: version,
                      patched: make_list("12.2(2)XB2") )) {
     security_warning(port:0, extra: '\nUpdate to ' + patch_update + ' or later\n'); exit(0);
    }
    # Affected: 12.2XC
    if (check_release(version: version,
                      patched: make_list("12.2(2)XC1") )) {
     security_warning(port:0, extra: '\nUpdate to ' + patch_update + ' or later\n'); exit(0);
    }
    # Affected: 12.2XD
    if (check_release(version: version,
                      patched: make_list("12.2(1)XD3") )) {
     security_warning(port:0, extra: '\nUpdate to ' + patch_update + ' or later\n'); exit(0);
    }
    # Affected: 12.2XE
    if (check_release(version: version,
                      patched: make_list("12.2(1)XE2") )) {
     security_warning(port:0, extra: '\nUpdate to ' + patch_update + ' or later\n'); exit(0);
    }
    # Affected: 12.2XG
    if (check_release(version: version,
                      patched: make_list("12.2(2)XG1") )) {
     security_warning(port:0, extra: '\nUpdate to ' + patch_update + ' or later\n'); exit(0);
    }
    # Affected: 12.2XH
    if (check_release(version: version,
                      patched: make_list("12.2(2)XH2") )) {
     security_warning(port:0, extra: '\nUpdate to ' + patch_update + ' or later\n'); exit(0);
    }
    # Affected: 12.2XJ
    if (check_release(version: version,
                      patched: make_list("12.2(2)XJ2") )) {
     security_warning(port:0, extra: '\nUpdate to ' + patch_update + ' or later\n'); exit(0);
    }
    # Affected: 12.2XK
    if (check_release(version: version,
                      patched: make_list("12.2(2)XK5") )) {
     security_warning(port:0, extra: '\nUpdate to ' + patch_update + ' or later\n'); exit(0);
    }
    # Affected: 12.2XQ
    if (check_release(version: version,
                      patched: make_list("12.2(2)XQ2") )) {
     security_warning(port:0, extra: '\nUpdate to ' + patch_update + ' or later\n'); exit(0);
    }
    
    exit(0, "The remote host is not affected");
    
  • NASL familyCISCO
    NASL idCSCDU81936.NASL
    descriptionIt is possible to send an Address Resolution Protocol (ARP) packet on a local broadcast interface (for example, Ethernet, cable, Token Ring, FDDI) which could cause a router or switch running specific versions of Cisco IOS Software Release to stop sending and receiving ARP packets on the local router interface. This will, in a short time, cause the router and local hosts to be unable to send packets to each other. ARP packets received by the router for the router
    last seen2020-06-01
    modified2020-06-02
    plugin id10984
    published2002-06-05
    reporterThis script is (C) 2002-2018 Tenable Network Security, Inc.
    sourcehttps://www.tenable.com/plugins/nessus/10984
    titleCisco IOS ARP Table Overwrite DoS (CSCdu81936)
    code
    #
    # (C) Tenable Network Security, Inc.
    #
    
    # Script audit and contributions from Carmichael Security
    #      Erik Anderson <[email protected]> (nb: domain no longer exists)
    #      No vuln in SecurityFocus.  SecurityFocus assigned new BugtraqID.  Added BugtraqID
    #
    
    include("compat.inc");
    
    if(description)
    {
     script_id(10984);
     script_version("1.22");
     script_cve_id("CVE-2001-0895");
     script_bugtraq_id(3547);
    
     script_name(english:"Cisco IOS ARP Table Overwrite DoS (CSCdu81936)");
    
     script_set_attribute(attribute:"synopsis", value:
    "The remote device is missing a vendor-supplied security patch." );
     script_set_attribute(attribute:"description", value:
    "It is possible to send an Address Resolution Protocol (ARP) packet on 
    a local broadcast interface (for example, Ethernet, cable, Token 
    Ring, FDDI) which could cause a router or switch running specific 
    versions of Cisco IOS Software Release to stop sending and receiving 
    ARP packets on the local router interface.  This will, in a short time, 
    cause the router and local hosts to be unable to send packets to each 
    other. ARP packets received by the router for the router's own 
    interface address but a different Media Access Control (MAC) address 
    will overwrite the router's MAC address in the ARP table with the one 
    from the received ARP packet.  This was demonstrated to attendees of  
    the Black Hat conference and should be considered to be public 
    knowledge.  This attack is only successful against devices on the 
    segment local to the attacker or attacking host.
    This vulnerability is documented in Cisco Bug ID CSCdu81936.
    
    A local attacker may use this flaw to prevent your network from
    working properly." );
     script_set_attribute(attribute:"solution", value:
    "http://www.nessus.org/u?fb24d347" );
     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: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:"plugin_publication_date", value: "2002/06/05");
     script_cvs_date("Date: 2018/06/27 18:42:25");
     script_set_attribute(attribute:"vuln_publication_date", value: "2001/11/15");
     script_set_attribute(attribute:"plugin_type", value:"local");
     script_set_attribute(attribute:"cpe", value: "cpe:/o:cisco:ios");
     script_end_attributes();
    
     script_summary(english:"Uses SNMP to determine if a flaw is present");
     script_category(ACT_GATHER_INFO);
     script_copyright(english:"This script is (C) 2002-2018 Tenable Network Security, Inc.");
     script_family(english:"CISCO");
     script_dependencie("snmp_sysDesc.nasl", "snmp_cisco_type.nasl");
     script_require_keys("SNMP/community", "SNMP/sysDesc", "CISCO/model");
     exit(0);
    }
    
    # The code starts here
    
    ok=0;
    os = get_kb_item("SNMP/sysDesc"); if(!os)exit(0);
    hardware = get_kb_item("CISCO/model"); if(!hardware)exit(0);
    
    
    
    
    # Check for the required hardware...
    #----------------------------------------------------------------
    # cisco800
    if(ereg(string:hardware, pattern:"^cisco80[0-9]$"))ok=1;
    
    # ciscoUBR900
    if(ereg(string:hardware, pattern:"^ciscoUBR90[0-9]$"))ok=1;
    
    # cisco1000
    if(ereg(string:hardware, pattern:"^cisco10[0-9][0-9]$"))ok=1;
    
    # cisco1400
    if(ereg(string:hardware, pattern:"^cisco14[0-9][0-9]$"))ok=1;
    
    # cisco1500
    if(ereg(string:hardware, pattern:"^cisco15[0-9][0-9]$"))ok=1;
    
    # cisco1600
    if(ereg(string:hardware, pattern:"^cisco16[0-9][0-9]$"))ok=1;
    
    # cisco1700
    if(ereg(string:hardware, pattern:"^cisco17[0-9][0-9]$"))ok=1;
    
    # cisco2500
    if(ereg(string:hardware, pattern:"^cisco25[0-9][0-9]$"))ok=1;
    
    # cisco2600
    if(ereg(string:hardware, pattern:"^cisco26[0-9][0-9]$"))ok=1;
    
    # cisco3000
    if(ereg(string:hardware, pattern:"^cisco30[0-9][0-9]$"))ok=1;
    
    # cisco3600
    if(ereg(string:hardware, pattern:"^cisco36[0-9][0-9]$"))ok=1;
    
    # cisco3800
    if(ereg(string:hardware, pattern:"^cisco38[0-9][0-9]$"))ok=1;
    
    # cisco4000
    if(ereg(string:hardware, pattern:"^cisco40[0-9][0-9]$"))ok=1;
    
    # cisco4500
    if(ereg(string:hardware, pattern:"^cisco45[0-9][0-9]$"))ok=1;
    
    # cisco4700
    if(ereg(string:hardware, pattern:"^cisco47[0-9][0-9]$"))ok=1;
    
    # ciscoAS5200
    if(ereg(string:hardware, pattern:"^ciscoAS52[0-9][0-9]$"))ok=1;
    
    # ciscoAS5300
    if(ereg(string:hardware, pattern:"^ciscoAS53[0-9][0-9]$"))ok=1;
    
    # ciscoAS5800
    if(ereg(string:hardware, pattern:"^ciscoAS58[0-9][0-9]$"))ok=1;
    
    # cisco6400
    if(ereg(string:hardware, pattern:"^cisco64[0-9][0-9]$"))ok=1;
    
    # cisco7000
    if(ereg(string:hardware, pattern:"^cisco70[0-9][0-9]$"))ok=1;
    
    # ciscoUBR7200
    if(ereg(string:hardware, pattern:"^ciscoUBR72[0-9][0-9]$"))ok=1;
    
    # cisco7500
    if(ereg(string:hardware, pattern:"^cisco75[0-9][0-9]$"))ok=1;
    
    # cisco12000
    if(ereg(string:hardware, pattern:"^cisco12[0-9][0-9][0-9]$"))ok=1;
    
    # ciscoLS1010
    if(ereg(string:hardware, pattern:"^ciscoLS101[0-9]$"))ok=1;
    
    # catalyst29[0-9][0-9][^0-9]*
    if(ereg(string:hardware, pattern:"^catalyst29[0-9][0-9][^0-9]*$"))ok=1;
    
    # catalyst35[0-9][0-9][^0-9]*
    if(ereg(string:hardware, pattern:"^catalyst35[0-9][0-9][^0-9]*$"))ok=1;
    
    # catalyst4kGateway
    if(ereg(string:hardware, pattern:"^catalyst4kGateway$"))ok=1;
    
    # catalyst5kRsfc
    if(ereg(string:hardware, pattern:"^catalyst5kRsfc$"))ok=1;
    
    # catalyst6kMsfc
    if(ereg(string:hardware, pattern:"^catalyst6kMsfc$"))ok=1;
    
    # catalyst6kMsfc2
    if(ereg(string:hardware, pattern:"^catalyst6kMsfc2$"))ok=1;
    
    # catalyst85[0-9][0-9][^0-9]*
    if(ereg(string:hardware, pattern:"^catalyst85[0-9][0-9][^0-9]*$"))ok=1;
    
    if(!ok)exit(0);
    ok = 0;
    
    
    # Check for the required operating system...
    #----------------------------------------------------------------
    # Is this IOS ?
    if(!egrep(pattern:".*(Internetwork Operating|IOS).*", string:os))exit(0);
    # 11.1
    if(egrep(string:os, pattern:"(11\.1\([0-9]*\)|11\.1),"))ok=1;
    
    # 11.2
    if(egrep(string:os, pattern:"(11\.2\(([0-9]|1[0-2])\)|11\.2),"))ok=1;
    
    # 11.2P
    if(egrep(string:os, pattern:"(11\.2\(([0-9]|1[0-1])\)|11\.2)P[0-9]*,"))ok=1;
    
    # 11.3
    if(egrep(string:os, pattern:"(11\.3\([0-2]\)|11\.3),"))ok=1;
    
    # 11.3T
    if(egrep(string:os, pattern:"(11\.3\([0-2]\)|11\.3)T[0-9]*,"))ok=1;
    
    # 12.0
    if(egrep(string:os, pattern:"(12\.0\(([0-9]|1[0-9])\)|12\.0),"))ok=1;
    
    # 12.0DA
    if(egrep(string:os, pattern:"(12\.0\([0-9]*\)|12\.0)DA[0-9]*,"))ok=1;
    
    # 12.0DB
    if(egrep(string:os, pattern:"(12\.0\([0-9]*\)|12\.0)DB[0-9]*,"))ok=1;
    
    # 12.0DC
    if(egrep(string:os, pattern:"(12\.0\([0-9]*\)|12\.0)DC[0-9]*,"))ok=1;
    
    # 12.0S
    if(egrep(string:os, pattern:"(12\.0\(([0-9]|[1-1][0-9]|2[0-0])\)|12\.0)S[0-9]*,"))ok=1;
    
    # 12.0SC
    if(egrep(string:os, pattern:"(12\.0\([0-9]*\)|12\.0)SC[0-9]*,"))ok=1;
    
    # 12.0SL
    if(egrep(string:os, pattern:"(12\.0\([0-9]*\)|12\.0)SL[0-9]*,"))ok=1;
    
    # 12.0SP
    if(egrep(string:os, pattern:"(12\.0\(([0-9]|1[0-9])\)|12\.0)SP[0-9]*,"))ok=1;
    
    # 12.0ST
    if(egrep(string:os, pattern:"(12\.0\(([0-9]|1[0-9])\)|12\.0)ST[0-9]*,"))ok=1;
    
    # 12.0T
    if(egrep(string:os, pattern:"(12\.0\([0-9]*\)|12\.0)T[0-9]*,"))ok=1;
    
    # 12.0W5
    if(egrep(string:os, pattern:"(12\.0\(([0-9]|1[0-9])\)|12\.0)W5[0-9]*,"))ok=1;
    
    # 12.0WC
    if(egrep(string:os, pattern:"((12\.0\([0-4]\)|12\.0)WC[0-9]*|12\.0\(5\)WC[0-2]),"))ok=1;
    
    # 12.0XA
    if(egrep(string:os, pattern:"(12\.0\([0-9]*\)|12\.0)XA[0-9]*,"))ok=1;
    
    # 12.0XB
    if(egrep(string:os, pattern:"(12\.0\([0-9]*\)|12\.0)XB[0-9]*,"))ok=1;
    
    # 12.0XC
    if(egrep(string:os, pattern:"(12\.0\([0-9]*\)|12\.0)XC[0-9]*,"))ok=1;
    
    # 12.0XD
    if(egrep(string:os, pattern:"(12\.0\([0-9]*\)|12\.0)XD[0-9]*,"))ok=1;
    
    # 12.0XE
    if(egrep(string:os, pattern:"(12\.0\([0-9]*\)|12\.0)XE[0-9]*,"))ok=1;
    
    # 12.0XF
    if(egrep(string:os, pattern:"(12\.0\([0-9]*\)|12\.0)XF[0-9]*,"))ok=1;
    
    # 12.0XG
    if(egrep(string:os, pattern:"(12\.0\([0-9]*\)|12\.0)XG[0-9]*,"))ok=1;
    
    # 12.0XH
    if(egrep(string:os, pattern:"(12\.0\([0-9]*\)|12\.0)XH[0-9]*,"))ok=1;
    
    # 12.0XI
    if(egrep(string:os, pattern:"(12\.0\([0-9]*\)|12\.0)XI[0-9]*,"))ok=1;
    
    # 12.0XJ
    if(egrep(string:os, pattern:"(12\.0\([0-9]*\)|12\.0)XJ[0-9]*,"))ok=1;
    
    # 12.0XK
    if(egrep(string:os, pattern:"(12\.0\([0-9]*\)|12\.0)XK[0-9]*,"))ok=1;
    
    # 12.0XL
    if(egrep(string:os, pattern:"(12\.0\([0-9]*\)|12\.0)XL[0-9]*,"))ok=1;
    
    # 12.0XM
    if(egrep(string:os, pattern:"(12\.0\([0-9]*\)|12\.0)XM[0-9]*,"))ok=1;
    
    # 12.0XN
    if(egrep(string:os, pattern:"(12\.0\([0-9]*\)|12\.0)XN[0-9]*,"))ok=1;
    
    # 12.0XP
    if(egrep(string:os, pattern:"(12\.0\([0-9]*\)|12\.0)XP[0-9]*,"))ok=1;
    
    # 12.0XQ
    if(egrep(string:os, pattern:"(12\.0\([0-9]*\)|12\.0)XQ[0-9]*,"))ok=1;
    
    # 12.0XR
    if(egrep(string:os, pattern:"(12\.0\([0-9]*\)|12\.0)XR[0-9]*,"))ok=1;
    
    # 12.0XS
    if(egrep(string:os, pattern:"(12\.0\([0-9]*\)|12\.0)XS[0-9]*,"))ok=1;
    
    # 12.0XU
    if(egrep(string:os, pattern:"(12\.0\([0-9]*\)|12\.0)XU[0-9]*,"))ok=1;
    
    # 12.0XV
    if(egrep(string:os, pattern:"(12\.0\([0-9]*\)|12\.0)XV[0-9]*,"))ok=1;
    
    # 12.1
    if(egrep(string:os, pattern:"(12\.1\(([0-9]|1[0-0])\)|12\.1),"))ok=1;
    
    # 12.1AA
    if(egrep(string:os, pattern:"(12\.1\([0-9]\)|12\.1)AA[0-9]*,"))ok=1;
    
    # 12.1DA
    if(egrep(string:os, pattern:"(12\.1\([0-9]*\)|12\.1)DA[0-9]*,"))ok=1;
    
    # 12.1DB
    if(egrep(string:os, pattern:"(12\.1\([0-9]*\)|12\.1)DB[0-9]*,"))ok=1;
    
    # 12.1DC
    if(egrep(string:os, pattern:"(12\.1\([0-9]*\)|12\.1)DC[0-9]*,"))ok=1;
    
    # 12.1E
    if(egrep(string:os, pattern:"(12\.1\(([0-9]|1[0-0])\)|12\.1)E[0-9]*,"))ok=1;
    
    # 12.1EC
    if(egrep(string:os, pattern:"(12\.1\([0-8]\)|12\.1)EC[0-9]*,"))ok=1;
    
    # 12.1EX
    if(egrep(string:os, pattern:"(12\.1\([0-9]*\)|12\.1)EX[0-9]*,"))ok=1;
    
    # 12.1EY
    if(egrep(string:os, pattern:"(12\.1\([0-9]*\)|12\.1)EY[0-9]*,"))ok=1;
    
    # 12.1EZ
    if(egrep(string:os, pattern:"(12\.1\([0-5]\)|12\.1)EZ[0-9]*,"))ok=1;
    
    # 12.1T
    if(egrep(string:os, pattern:"(12\.1\([0-9]*\)|12\.1)T[0-9]*,"))ok=1;
    
    # 12.1XA
    if(egrep(string:os, pattern:"(12\.1\([0-9]*\)|12\.1)XA[0-9]*,"))ok=1;
    
    # 12.1XB
    if(egrep(string:os, pattern:"((12\.1\([0-1]\)|12\.1)XB[0-9]*|12\.1\(2\)XB[0-1]),"))ok=1;
    
    # 12.1XC
    if(egrep(string:os, pattern:"(12\.1\([0-9]*\)|12\.1)XC[0-9]*,"))ok=1;
    
    # 12.1XD
    if(egrep(string:os, pattern:"(12\.1\([0-9]*\)|12\.1)XD[0-9]*,"))ok=1;
    
    # 12.1XE
    if(egrep(string:os, pattern:"(12\.1\([0-9]*\)|12\.1)XE[0-9]*,"))ok=1;
    
    # 12.1XF
    if(egrep(string:os, pattern:"((12\.1\([0-1]\)|12\.1)XF[0-9]*|12\.1\(2\)XF[0-4]),"))ok=1;
    
    # 12.1XG
    if(egrep(string:os, pattern:"((12\.1\([0-2]\)|12\.1)XG[0-9]*|12\.1\(3\)XG[0-5]),"))ok=1;
    
    # 12.1XH
    if(egrep(string:os, pattern:"(12\.1\([0-9]*\)|12\.1)XH[0-9]*,"))ok=1;
    
    # 12.1XI
    if(egrep(string:os, pattern:"(12\.1\([0-9]*\)|12\.1)XI[0-9]*,"))ok=1;
    
    # 12.1XJ
    if(egrep(string:os, pattern:"(12\.1\([0-9]*\)|12\.1)XJ[0-9]*,"))ok=1;
    
    # 12.1XK
    if(egrep(string:os, pattern:"(12\.1\([0-9]*\)|12\.1)XK[0-9]*,"))ok=1;
    
    # 12.1XL
    if(egrep(string:os, pattern:"(12\.1\([0-9]*\)|12\.1)XL[0-9]*,"))ok=1;
    
    # 12.1XM
    if(egrep(string:os, pattern:"((12\.1\([0-4]\)|12\.1)XM[0-9]*|12\.1\(5\)XM[0-5]),"))ok=1;
    
    # 12.1XP
    if(egrep(string:os, pattern:"(12\.1\([0-9]*\)|12\.1)XP[0-9]*,"))ok=1;
    
    # 12.1XQ
    if(egrep(string:os, pattern:"(12\.1\([0-9]*\)|12\.1)XQ[0-9]*,"))ok=1;
    
    # 12.1XR
    if(egrep(string:os, pattern:"(12\.1\([0-9]*\)|12\.1)XR[0-9]*,"))ok=1;
    
    # 12.1XS
    if(egrep(string:os, pattern:"(12\.1\([0-9]*\)|12\.1)XS[0-9]*,"))ok=1;
    
    # 12.1XT
    if(egrep(string:os, pattern:"(12\.1\([0-9]*\)|12\.1)XT[0-9]*,"))ok=1;
    
    # 12.1XU
    if(egrep(string:os, pattern:"(12\.1\([0-9]*\)|12\.1)XU[0-9]*,"))ok=1;
    
    # 12.1XV
    if(egrep(string:os, pattern:"(12\.1\([0-9]*\)|12\.1)XV[0-9]*,"))ok=1;
    
    # 12.1XW
    if(egrep(string:os, pattern:"(12\.1\([0-9]*\)|12\.1)XW[0-9]*,"))ok=1;
    
    # 12.1XX
    if(egrep(string:os, pattern:"(12\.1\([0-9]*\)|12\.1)XX[0-9]*,"))ok=1;
    
    # 12.1YA
    if(egrep(string:os, pattern:"(12\.1\([0-9]*\)|12\.1)YA[0-9]*,"))ok=1;
    
    # 12.1YB
    if(egrep(string:os, pattern:"((12\.1\([0-4]\)|12\.1)YB[0-9]*|12\.1\(5\)YB[0-4]),"))ok=1;
    
    # 12.1YC
    if(egrep(string:os, pattern:"((12\.1\([0-4]\)|12\.1)YC[0-9]*|12\.1\(5\)YC[0-1]),"))ok=1;
    
    # 12.1YD
    if(egrep(string:os, pattern:"(12\.1\([0-9]*\)|12\.1)YD[0-9]*,"))ok=1;
    
    # 12.1YE
    if(egrep(string:os, pattern:"((12\.1\([0-4]\)|12\.1)YE[0-9]*|12\.1\(5\)YE[0-3]),"))ok=1;
    
    # 12.1YF
    if(egrep(string:os, pattern:"((12\.1\([0-4]\)|12\.1)YF[0-9]*|12\.1\(5\)YF[0-2]),"))ok=1;
    
    # 12.2
    if(egrep(string:os, pattern:"(12\.2\([0-4]\)|12\.2),"))ok=1;
    
    # 12.2DD
    if(egrep(string:os, pattern:"((12\.2\([0-1]\)|12\.2)DD[0-9]*|12\.2\(2\)DD[0-0]),"))ok=1;
    
    # 12.2T
    if(egrep(string:os, pattern:"(12\.2\([0-6]\)|12\.2)T[0-9]*,"))ok=1;
    
    # 12.2XA
    if(egrep(string:os, pattern:"((12\.2\([0-1]\)|12\.2)XA[0-9]*|12\.2\(2\)XA[0-3]),"))ok=1;
    
    # 12.2XB
    if(egrep(string:os, pattern:"((12\.2\([0-1]\)|12\.2)XB[0-9]*|12\.2\(2\)XB[0-1]),"))ok=1;
    
    # 12.2XC
    if(egrep(string:os, pattern:"((12\.2\([0-1]\)|12\.2)XC[0-9]*|12\.2\(2\)XC[0-0]),"))ok=1;
    
    # 12.2XD
    if(egrep(string:os, pattern:"((12\.2\([0-0]\)|12\.2)XD[0-9]*|12\.2\(1\)XD[0-2]),"))ok=1;
    
    # 12.2XE
    if(egrep(string:os, pattern:"((12\.2\([0-0]\)|12\.2)XE[0-9]*|12\.2\(1\)XE[0-1]),"))ok=1;
    
    # 12.2XG
    if(egrep(string:os, pattern:"((12\.2\([0-1]\)|12\.2)XG[0-9]*|12\.2\(2\)XG[0-0]),"))ok=1;
    
    # 12.2XH
    if(egrep(string:os, pattern:"((12\.2\([0-1]\)|12\.2)XH[0-9]*|12\.2\(2\)XH[0-1]),"))ok=1;
    
    # 12.2XI
    if(egrep(string:os, pattern:"((12\.2\([0-1]\)|12\.2)XI[0-9]*|12\.2\(2\)XI[0-0]),"))ok=1;
    
    # 12.2XJ
    if(egrep(string:os, pattern:"((12\.2\([0-1]\)|12\.2)XJ[0-9]*|12\.2\(2\)XJ[0-1]),"))ok=1;
    
    # 12.2XK
    if(egrep(string:os, pattern:"((12\.2\([0-1]\)|12\.2)XK[0-9]*|12\.2\(2\)XK[0-4]),"))ok=1;
    
    # 12.2XQ
    if(egrep(string:os, pattern:"((12\.2\([0-1]\)|12\.2)XQ[0-9]*|12\.2\(2\)XQ[0-1]),"))ok=1;
    
    
    #----------------------------------------------
    
    if(ok)security_warning(port:161, proto:"udp");