Cisco Security Advisory
Cisco IOS XR Software DVMRP Memory Exhaustion Vulnerabilities
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:N/A:H/E:X/RL:X/RC:X
-
Multiple vulnerabilities in the Distance Vector Multicast Routing Protocol (DVMRP) feature of Cisco IOS XR Software could allow an unauthenticated, remote attacker to either immediately crash the Internet Group Management Protocol (IGMP) process or make it consume available memory and eventually crash. The memory consumption may negatively impact other processes that are running on the device.
These vulnerabilities are due to the incorrect handling of IGMP packets. An attacker could exploit these vulnerabilities by sending crafted IGMP traffic to an affected device. A successful exploit could allow the attacker to immediately crash the IGMP process or cause memory exhaustion, resulting in other processes becoming unstable. These processes may include, but are not limited to, interior and exterior routing protocols.
Cisco has released software updates that address these vulnerabilities. There are no workarounds that address these vulnerabilities. There are multiple mitigations available to customers depending on their needs.
This advisory is available at the following link:
https://sec.cloudapps.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-iosxr-dvmrp-memexh-dSmpdvfz
-
Vulnerable Products
These vulnerabilities affect any Cisco device that is running any release of Cisco IOS XR Software if an active interface is configured under multicast routing and it is receiving DVMRP traffic.
Determine Whether Multicast Routing Is Enabled
An administrator can determine whether multicast routing is enabled on a device by issuing the show igmp interface command. The following output shows a device with multicast routing enabled:
RP/0/0/CPU0:router# show igmp interface
Loopback0 is up, line protocol is up
Internet address is 10.144.144.144/32
IGMP is enabled on interface
Current IGMP version is 3
IGMP query interval is 60 seconds
IGMP querier timeout is 125 seconds
IGMP max query response time is 10 seconds
Last member query response interval is 1 seconds
IGMP activity: 3 joins, 0 leaves
IGMP querying router is 10.144.144.144 (this system)
TenGigE0/4/0/0 is up, line protocol is up
Internet address is 10.114.8.44/24
IGMP is enabled on interface
Current IGMP version is 3
IGMP query interval is 60 seconds
IGMP querier timeout is 125 seconds
IGMP max query response time is 10 seconds
Last member query response interval is 1 seconds
IGMP activity: 9 joins, 4 leaves
IGMP querying router is 10.114.8.11If the output of show igmp interface is empty, multicast routing is not enabled and the device is not affected by these vulnerabilities.
Determine Whether the Device Is Receiving DVMRP Traffic
An administrator can determine whether the device is receiving DVMRP traffic by issuing the show igmp traffic command. The following output shows a device that is receiving DVMRP traffic:
RP/0/0/CPU0:router#show igmp traffic
Fri Feb 13 12:00:00.000 UTC
IGMP Traffic Counters
Elapsed time since counters cleared: 01:09:27
Received Sent
Valid IGMP Packets 380220 301
Queries 0 143
Reports 0 158
Leaves 0 0
Mtrace packets 0 0
DVMRP packets 380220 0If the DVMRP packets entry contains values of zero in the first column, and the counters remain zero on subsequent execution of the command, the device is not receiving DVMRP traffic.
Products Confirmed Not Vulnerable
Only products listed in the Vulnerable Products section of this advisory are known to be affected by these vulnerabilities.
-
These vulnerabilities result in memory exhaustion, which can impact other processes on the device. It is possible to recover the memory consumed by the IGMP process by restarting the IGMP process with the process restart igmp command as follows:
RP/0/0/CPU0:router# process restart igmp
In the case of an immediate IGMP process crash, it is not necessary to manually restart the IGMP process because the system has already performed that action. This automated restart will recover the consumed memory.
When considering mitigations, it should be understood that for the memory exhaustion case, the rate limiter and the access control methods are effective. For the immediate IGMP process crash case, only the access control method is effective.
-
When a device is experiencing memory exhaustion based on exploitation of these vulnerabilities, the following messages may be seen in the system logs:
RP/0/RSP1/CPU0:Aug 28 03:46:10.375 UTC: raw_ip[399]: %PKT_INFRA-PQMON-6-QUEUE_DROP : Taildrop on XIPC queue 1 owned by igmp (jid=1175)
RP/0/RSP0/CPU0:Aug 28 03:46:10.380 UTC: raw_ip[399]: %PKT_INFRA-PQMON-6-QUEUE_DROP : Taildrop on XIPC queue 1 owned by igmp (jid=1175)
RP/0/RSP0/CPU0:Aug 28 03:49:22.850 UTC: dumper[61]: %OS-DUMPER-7-DUMP_REQUEST : Dump request for process pkg/bin/igmp
RP/0/RSP0/CPU0:Aug 28 03:49:22.851 UTC: dumper[61]: %OS-DUMPER-7-DUMP_ATTRIBUTE : Dump request with attribute 7 for process pkg/bin/igmp
RP/0/RSP0/CPU0:Aug 28 03:49:22.851 UTC: dumper[61]: %OS-DUMPER-4-SIGSEGV : Thread 9 received SIGSEGV - Segmentation FaultWhen a device has experienced a crash of the IGMP process, the following messages may be seen in the system logs:
RP/0/RSP0/CPU0:Aug 30 17:21:47.653 UTC: igmp[1169]: %HA-HA_WD_LIB-4-RLIMIT : wd_handle_sigxfsz: Reached 90% of RLIMIT_DATA
RP/0/RSP0/CPU0:Aug 30 17:21:47.653 UTC: igmp[1169]: %ROUTING-IPV4_IGMP-4-OOM_STATE_THROTTLE : Received Critical memory depletion warning, stop creating new igmp state
RP/0/RSP1/CPU0:Aug 30 17:23:50.442 UTC: sysmgr[94]: igmp(1) (jid 1169) (pid 121667828) (fail_count 2) abnormally terminated, restart scheduled
-
Although there are no workarounds for these vulnerabilities, there are multiple mitigations available to customers depending on their needs.
As a mitigation for the memory exhaustion case, it is recommended that customers implement a rate limiter. This will require that customers understand their current rate of IGMP traffic and set a rate lower than the current average rate. It is worth noting that there is a default limiter in place. In configuration mode, the customer can enter the lpts pifib hardware police flow igmp rate command as follows:
RP/0/0/CPU0:router(config)# lpts pifib hardware police flow igmp rate
This command will not remove the exploit vector. However, the command will reduce the traffic rate and increase the time necessary for successful exploitation. The customer can use this time to perform recovery actions.
As a mitigation for both the memory exhaustion case and the immediate IGMP process crash case, customers may implement an access control entry (ACE) to an existing interface access control list (ACL). Alternatively, the customer can create a new ACL for a specific interface that denies DVMRP traffic inbound on that interface. The following example creates an ACL and denies DVMRP traffic:
RP/0/0/CPU0:router(config)# ipv4 access-list
deny igmp any any dvmrp
-
Cisco has released free software updates that address the vulnerabilities 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:
https://www.cisco.com/c/en/us/products/end-user-license-agreement.htmlAdditionally, 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 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: https://www.cisco.com/c/en/us/support/web/tsd-cisco-worldwide-contacts.html
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.
Fixed Releases
Cisco has released Software Maintenance Upgrades (SMUs) to address these vulnerabilities. The following table describes which fixes are needed based on the Cisco IOS XR Software release:
Cisco IOS XR Software Release Fix Needed for CSCvv54838 Fix Needed for CSCvr86414 Notes Earlier than 6.6.3 Yes Yes Fixes are provided through bug CSCvv60110, which was created to combine the fixes for both CSCvv54838 and CSCvr86414.
SMU names include CSCvv60110.6.6.3 and later Yes No Fix needed for only CSCvv54838. Releases 6.6.3 and later already contain the fix for CSCvr86414.
SMU names include CSCvv54838.The following tables provide the SMU name for each release based on platform.
ASR9K-PX
Cisco IOS XR Software Release SMU Name 6.1.4 asr9k-px-6.1.4.CSCvv60110.pie 6.2.3 asr9k-px-6.2.3.CSCvv60110.pie 6.3.3 asr9k-px-6.3.3.CSCvv60110.pie 6.4.2 asr9k-px-6.4.2.CSCvv60110.pie 6.5.3 asr9k-px-6.5.3.CSCvv60110.pie 6.6.2 asr9k-px-6.6.2.CSCvv60110.pie 6.6.3 asr9k-px-6.6.3.CSCvv54838.pie ASR9K-X64
Cisco IOS XR Software Release SMU Name 6.1.4 asr9k-x64-6.1.4.CSCvv60110 6.2.3 asr9k-x64-6.2.3.CSCvv60110 6.4.2 asr9k-x64-6.4.2.CSCvv60110 6.6.2 asr9k-x64-6.6.2.CSCvv60110 6.6.3 asr9k-x64-6.6.3.CSCvv54838 7.0.2 asr9k-x64-7.0.2.CSCvv54838 7.1.15 asr9k-x64-7.1.15.CSCvv54838 7.1.2 asr9k-x64-7.1.2.CSCvv54838 CRS
Cisco IOS XR Software Release SMU Name 6.1.4 hfr-px-6.1.4.CSCvv60110.pie 6.4.2 hfr-px-6.4.2.CSCvv60110.pie 6.4.3 hfr-px-6.4.3.CSCvv60110.pie NCS5500
Cisco IOS XR Software Release SMU Name 6.5.2 ncs5500-6.5.2.CSCvv60110
-
On August 28, 2020, the Cisco Product Security Incident Response Team (PSIRT) became aware of attempted exploitation of these vulnerabilities in the wild. For affected products, Cisco recommends implementing a mitigation that is appropriate for the customer’s environment.
-
These vulnerabilities were 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 2.2 Added fixed software details. Summary, Fixed Software Final 2020-SEP-28 2.1 Clarified the potential of the IGMP process crashing. Added DVMRP traffic requirement. Updated the mitigations according to specific exploit outcome. Summary, Vulnerable Products, Details, Indicators of Compromise, and Workarounds Interim 2020-SEP-01 2.0 Added another Cisco bug ID and CVE ID. Updated wording throughout to reflect multiple vulnerabilities. Corrected a typo in the Determine Whether the Device Is Receiving DVMRP Traffic instructions. Removed an ineffective mitigation. Header, Vulnerable Products, and Workarounds Interim 2020-AUG-31 1.0 Initial public release. - Interim 2020-AUG-29
-
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.