A vulnerability in the Cluster Management Protocol (CMP) processing code in Cisco IOS Software and Cisco IOS XE Software could allow an unauthenticated, adjacent attacker to trigger a denial of service (DoS) condition on an affected device.
The vulnerability is due to insufficient input validation when processing CMP management packets. An attacker could exploit this vulnerability by sending malicious CMP management packets to an affected device. A successful exploit could cause the switch to crash, resulting in a DoS condition. The switch will reload automatically.
Cisco has released software updates that address this vulnerability. There are no workarounds that address this vulnerability.
This advisory is available at the following link:
This advisory is part of the March 27, 2019, release of the Cisco IOS and IOS XE Software Security Advisory Bundled Publication, which includes 17 Cisco Security Advisories that describe 19 vulnerabilities. For a complete list of the advisories and links to them, see Cisco Event Response: March 2019 Semiannual Cisco IOS and IOS XE Software Security Advisory Bundled Publication.
This vulnerability affects Cisco Catalyst Switches that are running a vulnerable release of Cisco IOS or IOS XE Software when the switch meets all the following conditions:
- CMP is enabled. On some platforms, CMP is enabled by default.
- The switch is configured to be part of a cluster domain.
- The switch has a role of command switch or member switch.
For information about which Cisco IOS and IOS XE Software releases are vulnerable, see the Fixed Software section of this advisory.
Determining Whether the Switch Has a Vulnerable Configuration
There are two methods for determining whether the switch has a vulnerable configuration.
Option 1: Using the show cluster | include cluster Command
To determine the status of CMP on a device and verify that is configured to be part of a cluster domain, use the show cluster | include cluster privileged EXEC command on the device. The following example shows the output of the show cluster | include cluster command on a Cisco Catalyst Switch that has CMP enabled and that is also part of a cluster domain.
SWITCH#show cluster | include cluster
<ROLE> for cluster <CLUSTER_NAME>
If this command does not exist, or if it produces any other output, the device is not affected by the vulnerability described in this advisory.
Option 2: Using the show running-config [all] Command
To determine whether a device is configured with CMP enabled, use the show running-config all | include cluster run privileged EXEC command on the device. The following example shows the output of the show running-config all | include cluster run command on a switch that has CMP enabled:
SWITCH#show running-config all | include cluster run cluster run
To determine whether a device has been configured to be part of a cluster domain either as a command switch or as a member switch, use the show running-config | include cluster commander|cluster member privileged EXEC command. On a switch that is not a part of a cluster domain, this command will result in empty output.
The following example shows the output of the show running-config | include cluster commander|cluster member command on a device that is configured to be part of cluster domain with a role of command switch.
SWITCH#show running-config | include cluster commander|cluster member cluster member <NUMBER> mac-address <MAC-ADDRESS>
The following example shows the output of the show running-config | include cluster commander|cluster member command on a device that is configured to be part of cluster domain with a role of member switch.
SWITCH#show running-config | include cluster commander|cluster member cluster commander-address <MAC-ADDRESS> <CLUSTER-INFORMATION>
When Option 2 is used to assess the device, it is affected by the vulnerability described in this advisory only if both the following conditions are true:
- The output of the show running-config all | include cluster run command includes the following exact string:
- The show running-config | include cluster commander|cluster member command does not result in empty output.
Determining the Cisco IOS Software Release
To determine which Cisco IOS Software release is running on a device, administrators can log in to the device, use the show version command in the CLI, and then refer to the system banner that appears. If the device is running Cisco IOS Software, the system banner displays text similar to Cisco Internetwork Operating System Software or Cisco IOS Software. The banner also displays the installed image name in parentheses, followed by the Cisco IOS Software release number and release name. Some Cisco devices do not support the show version command or may provide different output.
The following example shows the output of the command for a device that is running Cisco IOS Software Release 15.5(2)T1 and has an installed image name of C2951-UNIVERSALK9-M:
Router> show version Cisco IOS Software, C2951 Software (C2951-UNIVERSALK9-M), Version 15.5(2)T1, RELEASE SOFTWARE (fc1) Technical Support: http://www.cisco.com/techsupport Copyright (c) 1986-2015 by Cisco Systems, Inc. Compiled Mon 22-Jun-15 09:32 by prod_rel_team . . .
For information about the naming and numbering conventions for Cisco IOS Software releases, see the Cisco IOS and NX-OS Software Reference Guide.
Determining the Cisco IOS XE Software Release
To determine which Cisco IOS XE Software release is running on a device, administrators can log in to the device, use the show version command in the CLI, and then refer to the system banner that appears. If the device is running Cisco IOS XE Software, the system banner displays Cisco IOS Software, Cisco IOS XE Software, or similar text.
The following example shows the output of the command for a device that is running Cisco IOS XE Software Release 16.2.1 and has an installed image name of CAT3K_CAA-UNIVERSALK9-M:
ios-xe-device# show version Cisco IOS Software, Catalyst L3 Switch Software (CAT3K_CAA-UNIVERSALK9-M), Version Denali 16.2.1, RELEASE SOFTWARE (fc1) Technical Support: http://www.cisco.com/techsupport Copyright (c) 1986-2016 by Cisco Systems, Inc. Compiled Sun 27-Mar-16 21:47 by mcpre . . .
For information about the naming and numbering conventions for Cisco IOS XE Software releases, see the Cisco IOS and NX-OS Software Reference Guide.
Products Confirmed Not Vulnerable
Only products listed in the Vulnerable Products section of this advisory are known to be affected by this vulnerability.
Cisco has confirmed that this vulnerability does not affect Cisco IOS XR Software or Cisco NX-OS Software.
CMP is a collection of underlying technologies that facilitate the management of a group of switches with use of a single IP address.
In each cluster, there is a master switch called the command switch, and the rest of the switches serve as member switches. The command switch provides the primary management interface for the entire cluster. Switches within a cluster domain use CMP to perform all signaling and configuration operations. CMP uses encapsulated Ethernet frames that contain a Subnetwork Access Protocol (SNAP) header with the Cisco Organizationally Unique Identifier (OUI) and CMP protocol identifier.
The vulnerability is due to insufficient input validation when processing CMP management packets. Due to the Layer 2 nature of CMP, only an attacker with access to the local network segment on which the targeted device resides could exploit the vulnerability described in this advisory. A successful exploit could cause the switch to crash, resulting in a DoS condition. The switch will reload automatically.
Exploitation of this vulnerability could cause the affected switch to generate error messages similar to the following:
Mar 22 2019 10:18:29.180 EST: %DATACORRUPTION-CLUSTER_MEMBER_2-1-DATAINCONSISTENCY: copy error, -PC= 0x2A9E20z
-Traceback= 463F74z 486D64z 2B8F2D8z 2A9E20z 2A7C74z 2A7EE8z 297DD08z 297A088z
Mar 22 2019 10:18:33.385 EST: %SYS-CLUSTER_MEMBER_2-3-TIMERNEG: Cannot start timer (0x48D3988) with negative offset (-805296368). -Process= "Cluster Base", ipl= 0, pid= 281
-Traceback= 463F74z 1F22304z 2A17DCz 297DD08z 297A088z Unexpected exception to CPU vector 1 (undefined instruction), PC = 2 -Traceback= 0x2z 0x31EC60z 0x1655CF4z
The values printed after the -Traceback= text are version dependent. Customers are advised to contact their support organization to review the error messages and determine whether the device has been compromised by exploitation of this vulnerability.
There are no workarounds that address this vulnerability.
Disabling CMP would eliminate the exploit vector. Administrators can disable CMP by using the no cluster run command in global configuration mode. This action may be a suitable mitigation until switches that are affected by this vulnerability can be upgraded.
Cisco has released free software updates that address the vulnerability described in this advisory. Customers may only install and expect support for software versions and feature sets for which they have purchased a license. By installing, downloading, accessing, or otherwise using such software upgrades, customers agree to follow the terms of the Cisco software license:
Additionally, customers may only download software for which they have a valid license, procured from Cisco directly, or through a Cisco authorized reseller or partner. In most cases this will be a maintenance upgrade to software that was previously purchased. Free security software updates do not entitle customers to a new software license, additional software feature sets, or major revision upgrades.
When considering software upgrades, customers are advised to regularly consult the advisories for Cisco products, which are available from the Cisco Security Advisories and Alerts page, to determine exposure and a complete upgrade solution.
In all cases, customers should ensure that the devices to be upgraded contain sufficient memory and confirm that current hardware and software configurations will continue to be supported properly by the new release. If the information is not clear, customers are advised to contact the Cisco Technical Assistance Center (TAC) or their contracted maintenance providers.
Customers Without Service Contracts
Customers who purchase directly from Cisco but do not hold a Cisco service contract and customers who make purchases through third-party vendors but are unsuccessful in obtaining fixed software through their point of sale should obtain upgrades by contacting the Cisco TAC:
Customers should have the product serial number available and be prepared to provide the URL of this advisory as evidence of entitlement to a free upgrade.
Cisco IOS and IOS XE Software
To help customers determine their exposure to vulnerabilities in Cisco IOS and IOS XE Software, Cisco provides a tool, the Cisco IOS Software Checker, that identifies any Cisco Security Advisories that impact a specific software release and the earliest release that fixes the vulnerabilities described in each advisory (“First Fixed”). If applicable, the tool also returns the earliest release that fixes all the vulnerabilities described in all the advisories identified (“Combined First Fixed”).
Customers can use this tool to perform the following tasks:
- Initiate a search by choosing one or more releases from a drop-down list or uploading a file from a local system for the tool to parse
- Enter the output of the show version command for the tool to parse
- Create a custom search by including all previously published Cisco Security Advisories, a specific advisory, or all advisories in the most recent bundled publication
To determine whether a release is affected by any published Cisco Security Advisory, use the Cisco IOS Software Checker on Cisco.com or enter a Cisco IOS or IOS XE Software release—for example, 15.1(4)M2 or 3.13.8S—in the following field:
By default, the Cisco IOS Software Checker includes results only for vulnerabilities that have a Critical or High Security Impact Rating (SIR). To include results for Medium SIR vulnerabilities, use the Cisco IOS Software Checker on Cisco.com and check the Medium check box in the Impact Rating drop-down list.
For a mapping of Cisco IOS XE Software releases to Cisco IOS Software releases, refer to the Cisco IOS XE 2 Release Notes, Cisco IOS XE 3S Release Notes, or Cisco IOS XE 3SG Release Notes, depending on the Cisco IOS XE Software release.Note: Starting with Cisco IOS XE Software Release 16.9.1, any upgrade will require Smart Licensing. Customers who plan to upgrade Cisco IOS XE to Release 16.9.1 or later are advised to consider the Smart Licensing requirement. The following documentation provides additional information: Smart Licensing.
The Cisco Product Security Incident Response Team (PSIRT) is not aware of any public announcements or malicious use of the vulnerability that is described in this advisory.
This vulnerability was found during the resolution of a Cisco TAC support case.
To learn about Cisco security vulnerability disclosure policies and publications, see the Security Vulnerability Policy. This document also contains instructions for obtaining fixed software and receiving security vulnerability information from Cisco.
Version Description Section Status Date 1.0 Initial public release. — Final 2019-March-27
THIS DOCUMENT IS PROVIDED ON AN "AS IS" BASIS AND DOES NOT IMPLY ANY KIND OF GUARANTEE OR WARRANTY, INCLUDING THE WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. YOUR USE OF THE INFORMATION ON THE DOCUMENT OR MATERIALS LINKED FROM THE DOCUMENT IS AT YOUR OWN RISK. CISCO RESERVES THE RIGHT TO CHANGE OR UPDATE THIS DOCUMENT AT ANY TIME.
A standalone copy or paraphrase of the text of this document that omits the distribution URL is an uncontrolled copy and may lack important information or contain factual errors. The information in this document is intended for end users of Cisco products.