漏洞描述
思科 IOS 和 IOS-XE 系统 Smart Install Client 代码中存在一个缓冲区堆栈溢出漏洞(CVE-2018-0171)。攻击者可以远程向 TCP 4786 端口发送一个恶意数据包,触发目标设备的栈溢出漏洞,造成设备拒绝服务(DoS)或在造成远程命令执行。攻击者可以利用这个漏洞导致设备重启或配置丢失,从而导致业务发生中断。
如果设备不启用Smart Install Client 功能将不受到影响。
可能受到影响的设备类型
- Catalyst 2960
- Catalyst 2960-C
- Catalyst 2960-CX
- Catalyst 2960-L
- Catalyst 2960-P
- Catalyst 2960-S
- Catalyst 2960-SF
- Catalyst 2960-X
- Catalyst 2960-XR
- Catalyst 2975
- Catalyst 3560
- Catalyst 3560-C
- Catalyst 3560-CX
- Catalyst 3560-E
- Catalyst 3560-X
- Catalyst 3650
- Catalyst 3750
- Catalyst 3750 Metro Series
- Catalyst 3750-E
- Catalyst 3750-X
- Catalyst 3850
- Catalyst 4500 Supervisor Engine, 6E, 6LE, 7E, 7LE, 8E, 8LE
- Catalyst 6500 Supervisor Engine 2T-10GE
- IE 2000
- IE 3000
- IE 3010
- IE 4000
- IE 4010
- IE 5000
- ME 3400E Series Ethernet Access
- ME 3400 Series Ethernet Access
- NME-16ES-1G-P
- SM-ES2 SKUs
- SM-ES3 SKUs
- SM-X-ES3 SKUs
不受影响系统及应用版本
- 手工关闭了Cisco Smart Install管理协议,或模式为Director模式的Cisco设备均不受影响。(注:所有相关产品在出厂时默认开启了该项功能)
- 具备以下软件版本的设备不在影响范围之内:
- Catalyst 2960系列交换机:15.2(2)E8,15.2(4)E6,15.2(6)E1及后续发布的IOS版本
- Catalyst 3560/3750系列交换机:15.2(4)E6及后续发布的IOS版本
- Catalyst 3650/3850系列交换机:16.3.6,3.6.8E及后续发布的IOS-XE版本
- Catalyst 4500系列交换机:3.6.8E及后续发布的IOS-XE版本
- Catalyst65 Supervisor Engine 2T-10GE:15.2(1)SY6及后续发布的IOS版本
- IE系列交换机:15.5(1)SY1及后续发布的IOS版本
- ME系列交换机:12.2(60)EZ12及后续发布的IOS版本
漏洞检测
对于可能存在“Cisco Smart Install远程命令执行”漏洞的设备,思科提供如下的检查方法,快速定位使用设备是否存在该项漏洞。
方法一:通过命令行命令确认Smart Install Client功能是否开启
在设备的命令行输入命令可以直接检查Smart Install Client功能是否开启,命令执行结果如下所示:
switch>show vstack config | inc Role
Role: Client (SmartInstall enabled)
方法二:通过命令行命令确认Smart Install Client所使用的TCP端口是否激活
对于部分软件版本过于陈旧的设备,命令行不支持“vstack”相关命令,但也可能存在该功能漏洞,可以通过直接检查TCP端口4786是否激活的方式,用于确认是否可能存在该漏洞,命令执行结果如下所示:
switch>show tcp brief all
TCB Local Address Foreign Address (state)
05FD9F98 0.0.0.0.4786 *.* LISTEN
0568FFFC 0.0.0.0.443 *.* LISTEN
0568F038 0.0.0.0.443 *.* LISTEN
0568E428 0.0.0.0.80 *.* LISTEN
0568D818 0.0.0.0.80 *.* LISTEN
通过以上两种方法,可以快速定位设备是否存在该项漏洞,或是Cisco Smart Install Client功能是否处于激活状态。
漏洞修复
对于可能存在“Cisco Smart Install远程命令执行”漏洞的设备,思科提供如下的技术手段,规避该漏洞所带来的风险。
方法一:将设备软件升级到最新软件版本
通过升级设备所使用的软件版本,可以修复设备的该漏洞,所需的软件版本,可在Cisco IOS Software Checker网站上进行查询,也可以联系思科代理商或是思科公司获取相关的软件。
方法二:关闭“Smart Install Client”功能
升级设备软件,会导致设备的重新启动,可能会影响到网络的使用,如果需要暂时性的规避该漏洞所带来的风险,可以采用手工关闭“Smart Install Client”的功能的方法,在线的规避风险,关闭该功能的命令及运行结果如下所示:
switch(config)#no vstack
switch#show vstack config | inc Role
Role: Client (SmartInstall disabled)
方法三:设备不支持“no vstack”命令
部分软件版本过于陈旧的设备,可能不支持“no vstack”命令,如果检查出该设备具有该漏洞,可以通过手工部署ACL的方法,规避风险。使用的命令如下所示:
ip access-list extended SMI_HARDENING_LIST
deny tcp any any eq 4786
permit ip any any
interface GigabitEthernet0/0
ip access-group SMI_HARDENING_LIST in
方法四:需要使用SMART Install Client功能场景,但无法升级软件版本
在部分场景,需要使用Smart Install Client的功能,但由于无法升级软件,可通过对TCP端口4786进行访问控制,仅允许Smart Install Director和Smart Install Client进行通信,避免恶意攻击。使用的命令如下所示:
ip access-list extended SMI_HARDENING_LIST
permit tcp host 10.10.10.1 host 10.10.10.200 eq 4786
deny tcp any any eq 4786
permit ip any any
interface GigabitEthernet0/0
ip access-group SMI_HARDENING_LIST in
以上方法均无法执行,可以联系思科公司