TCPDump IEEE802.11打印程序远程单字节堆溢出漏洞
发布日期:2007-03-01
更新日期:2007-03-02
受影响系统:LBL tcpdump 3.9.5
描述:
BUGTRAQ ID:
22772
CVE(CAN) ID:
CVE-2004-0057
Tcpdump是一款免费的网络分析程序,适用于多种Unix操作系统。
Tcpdump在处理畸形的IEEE802.11报文时存在堆缓冲区溢出漏洞,远程攻击者可能利用此漏洞在系统上执行任意指令。
如果发送了特制的802.11帧的话,就会在IEEE 802.11打印程序中触发单字节堆溢出漏洞。在265行print-802_11.c中的parse_elements()函数检查帧中pbody->tim.length长度中的过小的值,但之后在267行的范围检查中使用了错误的变量。由于pbody->tim.length被定义为u_int8_t,因此可容纳最大值为255,然后将252字节拷贝到了仅有251字节的pbody->tim.bitmap。
253 case E_TIM:
254 /* Present, possibly truncated */
255 pbody->tim_status = TRUNCATED;
256 if (!TTEST2(*(p + offset), 2))
257 return;
258 memcpy(&pbody->tim, p + offset, 2);
259 offset += 2;
260 if (!TTEST2(*(p + offset), 3))
261 return;
262 memcpy(&pbody->tim.count, p + offset, 3);
263 offset += 3;
264
265 if (pbody->tim.length <= 3)
266 break;
267 if (pbody->rates.length > sizeof pbody->tim.bitmap)
268 return;
269 if (!TTEST2(*(p + offset), pbody->tim.length - 3))
270 return;
271 memcpy(pbody->tim.bitmap, p + (pbody->tim.length - 3),
272 (pbody->tim.length - 3))
<*来源:Moritz Jodeit (
moritz@jodeit.org)
链接:
http://marc.theaimsgroup.com/?l=full-disclosure&m=117275402813137&w=2
*>
建议:
厂商补丁:
LBL
---
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
http://cvs.tcpdump.org/cgi-bin/cvsweb/tcpdump/print-802_11.c?r1=1.42&r2=1.43浏览次数:2935
严重程度:0(网友投票)