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浏览次数:2906
严重程度:0(网友投票)