首页    新闻    下载    文档    论坛     最新漏洞    黑客教程    数据库    搜索    小榕软件实验室怀旧版    星际争霸WEB版    最新IP准确查询   
名称: 密码:      忘记密码  马上注册
漏洞公告 :: 最新漏洞公告

BlueZ SDP负载处理多个缓冲区溢出漏洞


http://www.gipsky.com/
BlueZ SDP负载处理多个缓冲区溢出漏洞

发布日期:2008-06-16

更新日期:2008-07-08



受影响系统:



BlueZ BlueZ 3.34



不受影响系统:



BlueZ BlueZ 3.35



描述:BUGTRAQ ID: 30105

CVE(CAN) ID: CVE-2008-2374



BlueZ是官方的Linux蓝牙协议栈。







BlueZ的SDP解析代码盲目地信任了入站SDP报文中的字符串长度字段,如果远程攻击者向SDP查询发送了恶意响应的话,就可以触发缓冲区溢出,导致拒绝服务或执行任意代码。







以下是bluez-libs-3.30/src/sdp.c文件中的漏洞代码段:







972 static sdp_data_t *extract_str(const void *p, int *len)



973 {



974 char *s;



975 int n;



976 sdp_data_t *d = malloc(sizeof(sdp_data_t));



977



978 memset(d, 0, sizeof(sdp_data_t));



979 d->dtd = *(uint8_t *) p;



980 p += sizeof(uint8_t);



981 *len += sizeof(uint8_t);



982



983 switch (d->dtd) {



984 case SDP_TEXT_STR8:



985 case SDP_URL_STR8:



986 n = *(uint8_t *) p; // <-- from the incoming packet



987 p += sizeof(uint8_t);



988 *len += sizeof(uint8_t) + n; // <-- blindly



trusted here, may advance parser past end of packet



989 break;



990 case SDP_TEXT_STR16:



991 case SDP_URL_STR16:



992 n = ntohs(bt_get_unaligned[1]; //



<-- from the incoming packet



993 p += sizeof(uint16_t);



994 *len += sizeof(uint16_t) + n; // <-- blindly



trusted here, may advance parser past end of packet



995 break;



996 default:



997 SDPERR("Sizeof text string > UINT16_MAX\n");



998 free(d);



999 return 0;



1000 }



1001



1002 s = malloc(n + 1); // <-- really blindly trusted here,



also no NULL checking



1003 memset(s, 0, n + 1);



1004 memcpy(s, p, n);



1005



1006 SDPDBG("Len : %d\n", n);



1007 SDPDBG("Str : %s\n", s);



1008



1009 d->val.str = s;



1010 d->unitSize = n + sizeof(uint8_t); // <-- more blind trust



1011 return d;



1012 }







漏洞的起因在1125行,sdp_extract_pdu()函数没有对长度字段执行正确的检查,导致了上述漏洞。



<*来源:Glenn Durfee (gdurfee@google.com



链接:http://secunia.com/advisories/30957/

http://article.gmane.org/gmane.linux.bluez.devel/15809/

*>



建议:厂商补丁:



BlueZ

-----

目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:







http://www.bluez.org/
附注
  1. uint16_t *) p
<< 1024 CMS多个文件包含漏洞 Microsoft Access快照查看器ActiveX控件任意文件下载漏洞 >>
评分
10987654321
API:
gipsky.com & 安信网络

系统导航

 

Copyright © 2001-2010 安信网络. All Rights Reserved
京ICP备05056747号