CVSS2
Attack Vector
ADJACENT_NETWORK
Attack Complexity
MEDIUM
Authentication
NONE
Confidentiality Impact
COMPLETE
Integrity Impact
COMPLETE
Availability Impact
COMPLETE
AV:A/AC:M/Au:N/C:C/I:C/A:C
AI Score
Confidence
Low
EPSS
Percentile
57.3%
A vulnerability in DHCP code used with PowerOn Auto
Provisioning (POAP) of Cisco NX-OS could allow an unauthenticated, adjacent attacker to inject
arbitrary commands into the Cisco NX-OS device.
# Copyright (C) 2016 Greenbone Networks GmbH
# Some text descriptions might be excerpted from (a) referenced
# source(s), and are Copyright (C) by the respective right holder(s).
#
# SPDX-License-Identifier: GPL-2.0-or-later
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
CPE = "cpe:/o:cisco:nx-os";
if (description)
{
script_oid("1.3.6.1.4.1.25623.1.0.105708");
script_version("2022-12-26T10:12:01+0000");
script_tag(name:"last_modification", value:"2022-12-26 10:12:01 +0000 (Mon, 26 Dec 2022)");
script_tag(name:"creation_date", value:"2016-05-12 16:26:19 +0200 (Thu, 12 May 2016)");
script_tag(name:"cvss_base", value:"7.9");
script_tag(name:"cvss_base_vector", value:"AV:A/AC:M/Au:N/C:C/I:C/A:C");
script_cve_id("CVE-2015-0658");
script_tag(name:"qod_type", value:"remote_banner");
script_tag(name:"solution_type", value:"VendorFix");
script_name("Cisco NX-OS Software DHCP Options Command Injection Vulnerability (Cisco-SA-20150327-CVE-2015-0658)");
script_category(ACT_GATHER_INFO);
script_copyright("Copyright (C) 2016 Greenbone Networks GmbH");
script_family("CISCO");
script_dependencies("gb_cisco_nx_os_consolidation.nasl");
script_mandatory_keys("cisco/nx_os/detected", "cisco/nx_os/device", "cisco/nx_os/model");
script_tag(name:"summary", value:"A vulnerability in DHCP code used with PowerOn Auto
Provisioning (POAP) of Cisco NX-OS could allow an unauthenticated, adjacent attacker to inject
arbitrary commands into the Cisco NX-OS device.");
script_tag(name:"vuldetect", value:"Checks if a vulnerable version is present on the target host.");
script_tag(name:"insight", value:"The vulnerability is due to insufficient input validation of
the DHCP options returned as a result of POAP. An attacker could exploit this vulnerability by
responding to the initial DHCP request initiated as part of POAP with crafted DHCP packets.");
script_tag(name:"impact", value:"An exploit could allow the attacker to execute arbitrary
commands in the security context of the root user. The attack can occur during the POAP
initialization process.");
script_tag(name:"solution", value:"See the referenced vendor advisory for a solution.");
script_xref(name:"URL", value:"https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/Cisco-SA-20150327-CVE-2015-0658");
exit(0);
}
include("host_details.inc");
include("version_func.inc");
if( ! device = get_kb_item( "cisco/nx_os/device" ) )
exit( 0 );
if( "Nexus" >!< device )
exit( 0 );
if ( ! nx_model = get_kb_item( "cisco/nx_os/model" ) )
exit( 0 );
if( ! version = get_app_version( cpe:CPE, nofork:TRUE ) )
exit( 0 );
if( "1000V" >< nx_model ) {
affected = make_list("7.3(0)ZN(0.7)");
}
if( nx_model =~ "^C?3[0-9]+" ) {
affected = make_list(
"5.0(3)U3(1)",
"5.0(3)U3(2)",
"5.0(3)U3(2a)",
"5.0(3)U3(2b)",
"5.0(3)U4(1)",
"5.0(3)U5(1)",
"5.0(3)U5(1a)",
"5.0(3)U5(1b)",
"5.0(3)U5(1c)",
"5.0(3)U5(1d)",
"5.0(3)U5(1e)",
"5.0(3)U5(1f)",
"5.0(3)U5(1g)",
"5.0(3)U5(1h)",
"6.0(2)U1(1)",
"6.0(2)U1(1a)",
"6.0(2)U1(2)",
"6.0(2)U1(3)",
"6.0(2)U1(4)",
"6.0(2)U2(1)",
"6.0(2)U2(2)",
"6.0(2)U2(3)",
"6.0(2)U2(4)",
"6.0(2)U2(5)",
"6.0(2)U2(6)",
"6.0(2)U3(1)",
"6.0(2)U3(2)",
"6.0(2)U3(3)",
"6.0(2)U3(4)",
"6.0(2)U3(5)",
"6.0(2)U4(1)",
"6.0(2)U4(2)",
"6.0(2)U4(3)",
"6.0(2)U5(1)"
);
}
if( nx_model =~ "^C?5[0-9]+" ) {
affected = make_list(
"6.0(2)N1(1)",
"6.0(2)N1(2)",
"6.0(2)N1(2a)",
"6.0(2)N2(1)",
"6.0(2)N2(1b)",
"6.0(2)N2(2)",
"6.0(2)N2(3)",
"6.0(2)N2(4)",
"6.0(2)N2(5)",
"7.0(0)N1(1)",
"7.0(1)N1(1)",
"7.0(2)N1(1)",
"7.0(3)N1(1)",
"7.3(0.2)"
);
}
if( nx_model =~ "^C?6[0-9]+" ) {
affected = make_list(
"6.0(2)N1(2)",
"6.0(2)N1(2a)",
"6.0(2)N2(1)",
"6.0(2)N2(1b)",
"6.0(2)N2(2)",
"6.0(2)N2(3)",
"6.0(2)N2(4)",
"6.0(2)N2(5)",
"7.0(0)N1(1)",
"7.0(1)N1(1)",
"7.0(2)N1(1)",
"7.0(3)N1(1)"
);
}
if( nx_model =~ "^C?7[0-9]+" ) {
affected = make_list(
"6.1(2)",
"6.1(3)",
"6.1(4)",
"6.1(4a)",
"6.2(2)",
"6.2(2a)",
"6.2(6)",
"6.2(6b)",
"6.2(8)",
"6.2(8a)",
"6.2(8b)"
);
}
if( nx_model =~ "^C?9[0-9]{3}" ) {
affected = make_list(
"11.0(1b)",
"11.0(1c)",
"6.1(2)I2(1)",
"6.1(2)I2(2)",
"6.1(2)I2(2a)",
"6.1(2)I2(2b)",
"6.1(2)I2(3)",
"6.1(2)I3(1)",
"6.1(2)I3(2)",
"6.1(2)I3(3)",
"6.1(2)I3(3.78)",
"7.0(3)I1(2)"
);
}
foreach af ( affected ) {
if( version == af ) {
report = report_fixed_ver( installed_version:version, fixed_version: "See advisory" );
security_message( port:0, data:report );
exit( 0 );
}
}
exit( 99 );