Lucene search

K
nessusThis script is Copyright (C) 2016-2019 and is owned by Tenable, Inc. or an Affiliate thereof.CISCO-SA-20150128-GHOST-NXOS.NASL
HistoryJul 19, 2016 - 12:00 a.m.

Cisco NX-OS GNU C Library (glibc) Buffer Overflow (GHOST)

2016-07-1900:00:00
This script is Copyright (C) 2016-2019 and is owned by Tenable, Inc. or an Affiliate thereof.
www.tenable.com
157

10 High

CVSS2

Attack Vector

NETWORK

Attack Complexity

LOW

Authentication

NONE

Confidentiality Impact

COMPLETE

Integrity Impact

COMPLETE

Availability Impact

COMPLETE

AV:N/AC:L/Au:N/C:C/I:C/A:C

0.975 High

EPSS

Percentile

100.0%

The version of Cisco NX-OS software running on the remote device is affected by a remote code execution vulnerability known as GHOST. A heap-based buffer overflow condition exists in the GNU C Library (glibc) due to improper validation of user-supplied input to the glibc functions __nss_hostname_digits_dots(), gethostbyname(), and gethostbyname2(). An unauthenticated, remote attacker can exploit this to cause a buffer overflow, resulting in a denial of service condition or the execution of arbitrary code.

#
# (C) Tenable Network Security, Inc.
#

include("compat.inc");

if (description)
{
  script_id(92412);
  script_version("1.10");
  script_cvs_date("Date: 2019/11/14");

  script_cve_id("CVE-2015-0235");
  script_bugtraq_id(72325);
  script_xref(name:"CISCO-BUG-ID", value:"CSCus71708");
  script_xref(name:"CISCO-BUG-ID", value:"CSCus68770");
  script_xref(name:"CISCO-BUG-ID", value:"CSCus69648");
  script_xref(name:"CISCO-BUG-ID", value:"CSCus68591");
  script_xref(name:"CISCO-BUG-ID", value:"CSCus68892");
  script_xref(name:"CISCO-SA", value:"cisco-sa-20150128-ghost");
  script_xref(name:"CERT", value:"967332");

  script_name(english:"Cisco NX-OS GNU C Library (glibc) Buffer Overflow (GHOST)");
  script_summary(english:"Checks the NX-OS version.");

  script_set_attribute(attribute:"synopsis", value:
"The remote device is affected by a remote code execution
vulnerability.");
  script_set_attribute(attribute:"description", value:
"The version of Cisco NX-OS software running on the remote device is
affected by a remote code execution vulnerability known as GHOST. A
heap-based buffer overflow condition exists in the GNU C Library
(glibc) due to improper validation of user-supplied input to the glibc
functions __nss_hostname_digits_dots(), gethostbyname(), and
gethostbyname2(). An unauthenticated, remote attacker can exploit this
to cause a buffer overflow, resulting in a denial of service condition
or the execution of arbitrary code.");
  # https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20150128-ghost
  script_set_attribute(attribute:"see_also", value:"http://www.nessus.org/u?fd2144f8");
  # https://www.qualys.com/research/security-advisories/GHOST-CVE-2015-0235.txt
  script_set_attribute(attribute:"see_also", value:"http://www.nessus.org/u?c7a6ddbd");
  script_set_attribute(attribute:"solution", value:
"Upgrade to the relevant fixed version referenced in the vendor
advisory.");
  script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:C/I:C/A:C");
  script_set_cvss_temporal_vector("CVSS2#E:H/RL:OF/RC:C");
  script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H");
  script_set_cvss3_temporal_vector("CVSS:3.0/E:H/RL:O/RC:C");
  script_set_attribute(attribute:"cvss_score_source", value:"CVE-2015-0235");

  script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available");
  script_set_attribute(attribute:"exploit_available", value:"true");
  script_set_attribute(attribute:"exploit_framework_core", value:"true");
  script_set_attribute(attribute:"exploited_by_malware", value:"true");
  script_set_attribute(attribute:"metasploit_name", value:'Exim GHOST (glibc gethostbyname) Buffer Overflow');
  script_set_attribute(attribute:"exploit_framework_metasploit", value:"true");
  script_set_attribute(attribute:"in_the_news", value:"true");

  script_set_attribute(attribute:"vuln_publication_date", value:"2015/01/27");
  script_set_attribute(attribute:"patch_publication_date", value:"2015/01/28");
  script_set_attribute(attribute:"plugin_publication_date", value:"2016/07/19");

  script_set_attribute(attribute:"plugin_type", value:"combined");
  script_set_attribute(attribute:"cpe", value:"cpe:/o:cisco:nx-os");
  script_end_attributes();

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

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

  script_dependencies("cisco_nxos_version.nasl");
  script_require_keys("Host/Cisco/NX-OS/Version", "Host/Cisco/NX-OS/Device", "Host/Cisco/NX-OS/Model");

  exit(0);
}

include("audit.inc");
include("cisco_func.inc");
include("cisco_kb_cmd_func.inc");

device = get_kb_item_or_exit("Host/Cisco/NX-OS/Device");
version = get_kb_item_or_exit("Host/Cisco/NX-OS/Version");
model = get_kb_item_or_exit("Host/Cisco/NX-OS/Model");

if (device != 'Nexus') audit(AUDIT_HOST_NOT, 'a Cisco Nexus device');

bug = NULL;
fix = NULL;
vuln = FALSE;
n7k = FALSE; # Used to distinguish Nexus 7000 Series models in version comparison

# Cisco Nexus 1000V
if (model =~ "^1000[vV]$")
{
  bug = "CSCus71708";
  fix = "5.2(1)SV3(1.4)";
}
# Cisco Nexus 3000
else if (model =~ "^3[0-9][0-9][0-9]([^0-9]|$)")
{
  bug = "CSCus68770";
  if (version =~ "^6\.0\(2\)A")
    fix = "6.0(2)A4(3.41)";
  else if (version =~ "^6\.0\(2\)U")
    fix = "6.0(2)U4(3.41)";
}
# Cisco Nexus 4000
else if (model =~ "^4[0-9][0-9][0-9]([^0-9]|$)" && version =~ "^4\.1([^0-9])")
{
  bug = "CSCus69648";
  fix = "4.1(2)E1(1o)";
}
# Cisco Nexus 5000 and Cisco Nexus 2000
else if (model =~ "^5[0-9][0-9][0-9]([^0-9]|$)" || model =~ "^2[0-9][0-9][0-9]([^0-9]|$)")
{
  bug = "CSCus68591";
  if (version =~ "^5\.") fix = "5.2(1).N1(9)";
  else if (version =~ "^6\.") fix = "6.0(2).N2(7)";
  else if (version =~ "^7\.0\(") fix = "7.0(6).N1(1)";
  else if (version =~ "^7\.1\(") fix = "7.1(1)N1(1)";
  else fix = NULL;
}
# Cisco Nexus 7000
else if (model =~ "^7[0-9][0-9][0-9]([^0-9]|$)")
{
  n7k = TRUE;
  bug = "CSCus68892";
  fix = "6.2(12)";
  if (
    # All versions in releases 4 and 5 affected
    version =~ "^[45]\." ||
    # All versions in 6.0 and 6.1 affected
    version =~ "^6\.[0-1]([^0-9]|$)" ||
    # Versions 6.2 < 6.2(12) affected
    version =~ "^6\.2$" || version =~ "^6\.2\(([0-9]|1[01])\)"
  ) vuln = TRUE;
}
else audit(AUDIT_HOST_NOT, "an affected Cisco Nexus model");

if (!n7k && !isnull(fix) && cisco_gen_ver_compare(a:version, b:fix) < 0) vuln = TRUE;

if (vuln)
{
  report =
    '\n  Cisco bug ID      : ' + bug +
    '\n  Installed release : ' + version +
    '\n  Fixed release     : ' + fix +
    '\n';
  security_report_v4(port:0, extra:report, severity:SECURITY_HOLE);
}
else audit(AUDIT_INST_VER_NOT_VULN, "Cisco NX-OS software", version);
VendorProductVersionCPE
cisconx-oscpe:/o:cisco:nx-os