Cisco Security Advisory
Cisco IOS and IOS XE Software SNMP Extended Named Access Control List Bypass Vulnerability
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N/E:X/RL:X/RC:X
-
A vulnerability in the implementation of the Simple Network Management Protocol (SNMP) IPv4 access control list (ACL) feature of Cisco IOS Software and Cisco IOS XE Software could allow an unauthenticated, remote attacker to perform SNMP polling of an affected device, even if it is configured to deny SNMP traffic.
This vulnerability exists because Cisco IOS Software and Cisco IOS XE Software do not support extended IPv4 ACLs for SNMP, but they do allow administrators to configure extended named IPv4 ACLs that are attached to the SNMP server configuration without a warning message. This can result in no ACL being applied to the SNMP listening process. An attacker could exploit this vulnerability by performing SNMP polling of an affected device. A successful exploit could allow the attacker to perform SNMP operations that should be denied. The attacker has no control of the SNMP ACL configuration and would still need a valid SNMP version 2c (SNMPv2c) community string or SNMP version 3 (SNMPv3) user credentials.
SNMP with IPv6 ACL configurations is not affected.
For more information, see the Details section of this advisory.
Cisco has released software updates that address this vulnerability. There are workarounds that address this vulnerability.
This advisory is available at the following link:
https://sec.cloudapps.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-snmp-uwBXfqww
-
Vulnerable Products
At the time of publication, this vulnerability affected Cisco IOS and IOS XE Software if the SNMP feature was enabled with an extended named ACL applied.
For information about which Cisco software releases were vulnerable at the time of publication, see the Fixed Software section of this advisory.
Determine the Device Configuration
Step 1. Determine Whether SNMPv2c Has a Named ACL Attached
To determine whether SNMPv2c is configured with an ACL attached, use the show running-config | include snmp-server command. If the command returns output, check for any of the following configuration items. Also, if an ACL is attached, note down the name of the ACL. The following output examples show a named ACL called ExtendedIPv4ACL attached:
snmp-server community public ro ExtendedIPv4ACL snmp-server tftp-server-list ExtendedIPv4ACL snmp-server file-transfer access-group ExtendedIPv4ACL snmp-server drop report access ExtendedIPv4ACL
Step 2. Determine Whether SNMPv3 Has a Named ACL Attached
To determine whether SNMPv3 group is configured with an ACL attached, use the show running-config | include snmp-server group command. If the command returns output, check for the keyword access followed by an ACL name. If an ACL is attached, note down the name of the ACL. The following output example shows a named ACL called ExtendedIPv4ACL:
snmp-server group SNMPV3_READ v3 priv read ALL write NONE notify NONE access ExtendedIPv4ACL
SNMPv3 also allows an ACL to be attached to the SNMPv3 user. To check if the ACL has been attached to the SNMPv3 user, use the show snmp user command. If any user has an ACL attached, it will show in the output. If there is an ACL attached, note down the name of the ACL. The following output example shows a named ACL called ExtendedIPv4ACL attached:
Router#show snmp user User name: spirit
Engine ID: 000000000000000000000000
storage-type: nonvolatile active access-list: ExtendedIPv4ACL
Authentication Protocol: MD5
Privacy Protocol: DES
Group-name: SNMPV3_READ Router#Step 3. Determine Whether the Named ACL Is an Extended ACL
A named IPv4 extended ACL has the format ip access-list extended <word>. Using each of the ACL names that were documented in the previous two steps, use the show running-config | include <access-list name> command. If the output includes a line that starts with ip access-list extended, then there is a named extended ACL attached to the SNMP configuration. The following output example shows how to check a named ACL that is called ExtendedIPv4ACL:
Router#show running-config | include ExtendedIPv4ACL
ip access-list extended ExtendedIPv4ACL
snmp-server group SNMPV3_READ v3 priv read ALL write NONE notify NONE access ExtendedIPv4ACL
snmp-server community public RO ExtendedIPv4ACL
Router#Repeat Step 3 for each ACL that is documented in Steps 1 and 2. If there are any configured extended named ACLs attached to the SNMP server feature, apply the workaround that is described the Workarounds section of this advisory.
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 the following Cisco products:
- IOS XR Software
- Meraki products
- NX-OS Software
-
The information in this section applies to SNMP when it is configured with an IPv4 ACL only. IPv6 ACL configurations when applied to SNMP are not affected.
SNMP configuration allows for standard numbered or named IPv4 ACLs only.
Standard ACLs can be either numbered or named. Numbered standard ACLs are numbered 1 to 99 and 1300 to 1999. Standard named ACLs are defined with the ip access-list standard
configuration command and will permit or deny packets based only on the source IPv4 address. Extended ACLs can be either numbered or named. Numbered extended ACLs are numbered 100 to 199 and 2000 to 2699. Extended named ACLs are defined with the ip access-list extended
configuration command and will permit or deny packets based on the source and destination IPv4 addresses, the protocol type, the source and destination TCP or UDP ports, and more. This vulnerability manifests itself in two ways:
Scenario 1
Device status: Running an affected release of Cisco IOS or IOS XE Software and configured with an extended named ACL against SNMP
Vulnerability manifestation: If an administrator tries to attach either an extended numbered ACL or extended expanded numbered ACL, the parser will reject the command. However, due to this vulnerability, if the administrator tries to attach an extended named ACL it will be accepted and shown in the configuration but it will not be processed when processing SNMP packets.
Scenario 2
Device status: Upgrading or downgrading from an affected release of Cisco IOS or IOS XE Software that was configured with an extended named ACL against SNMP
Vulnerability manifestation: If an administrator attached an extended named ACL, it will be accepted and shown in the configuration. When either upgrading to a fixed release or downgrading to a release that is not affected, any SNMP commands that have the extended name ACL will be removed from the configuration upon rebooting. For SNMPv3 users, the ACL will be removed and not shown in the output of the show snmp user command.
In both scenarios:
- To obtain information through SNMPv2c or earlier, the attacker must know the SNMP community string for the affected system.
- To obtain information through SNMPv3, the attacker must have user credentials for the affected system.
-
There is a workaround that addresses this vulnerability.
There is no support for extended IPv4 ACLs against SNMP. Only standard numbered and named IPv4 ACLs are supported.
The workaround is to change all extended named ACLs that are applied to SNMP configurations to standard named ACLs.
Note: Releases of Cisco IOS and IOS XE Software that include the fix for this vulnerability prevent the application of extended named ACLs. This workaround should be applied before upgrading.
While this workaround has been deployed and was proven successful in a test environment, customers should determine the applicability and effectiveness in their own environment and under their own use conditions. Customers should be aware that any workaround or mitigation that is implemented may negatively impact the functionality or performance of their network based on intrinsic customer deployment scenarios and limitations. Customers should not deploy any workarounds or mitigations before first evaluating the applicability to their own environment and any impact to such environment.
-
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.
Fixed Releases
Note: Customers are advised to implement the changes that are recommended in the Workarounds section of this advisory. Releases of Cisco IOS and IOS XE Software that include the fix for this vulnerability prevent the application of extended named ACLs against the SNMP feature.
Cisco IOS and IOS XE Software
To help customers determine their exposure to vulnerabilities in Cisco IOS and IOS XE Software, Cisco provides the Cisco Software Checker. This tool identifies any Cisco security advisories that impact a specific software release and the earliest release that fixes the vulnerabilities that are described in each advisory (“First Fixed”). If applicable, the tool also returns the earliest release that fixes all the vulnerabilities that are described in all the advisories that the Software Checker identifies (“Combined First Fixed”).
To use the tool, go to the Cisco Software Checker page and follow the instructions. Alternatively, use the following form to determine whether a release is affected by any Cisco Security Advisory. To use the form, follow these steps:
- Choose which advisories the tool will search-only this advisory, only advisories with a Critical or High Security Impact Rating (SIR), or all advisories.
- Enter a release number-for example, 15.9(3)M2 or 17.3.3.
- Click Check.
-
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 2024-APR-17
-
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.