FreeBSD I386_Set_LDT()多个本地拒绝服务漏洞

QQ空间 新浪微博 微信 QQ facebook twitter
漏洞ID 1193399 漏洞类型 缓冲区溢出
发布时间 2006-09-25 更新时间 2006-09-27
CVE编号 CVE-2006-4172 CNNVD-ID CNNVD-200609-441
漏洞平台 N/A CVSS评分 7.2
|漏洞来源
http://www.cnnvd.org.cn/web/xxk/ldxqById.tag?CNNVD=CNNVD-200609-441
|漏洞详情
FreeBSD就是一种运行在Intel平台上、可以自由使用的开放源码Unix类系统。FreeBSD中的i386_set_ldt()调用允许用户系统的程序动态管理每个进程的本地描述符表。由于使用了有符号的整数且缺少输入验证,内核中bzero可能会被要求处理很大的参数,漏洞代码如下:415interror=0,i;416intlargest_ld;..449largest_ld=uap->start+uap->num;450if(largest_ld>pldt->ldt_len)451largest_ld=pldt->ldt_len;452i=largest_ld-uap->start;453bzero(&((uniondescriptor*)(pldt->ldt_base))[uap->start],454sizeof(uniondescriptor)*i);在415和416行,"i"和"largest_ld"变量都是有符的整数。在449行,同时添加了uap->start和uap->num,这两个变量都是用户控制的且没有经过正确的检查。在452行,可以将"i"设置为很大的负值,导致在453行以很大的长度参数调用bzero。无效的内存访问会导致内核忙碌。i386_set_ldt()系统调用会在LDT中设置当前进程的i386描述符列表。该调用接受一个开始选择器数(start)、包含有将要设置描述符的内存数组(descs),以及将要设置的条目数(num)。用户在通过sysarch()调用i386_set_ldt()时,如果将start参数设置为很低的整数值、将descs设置为非空的值,并将num设置为很高的无符整数值,就会触发largest_ld和descs_size(533和540行)中的整数溢出,导致耗尽所有可用的系统资源(541行)。此外还可以将start参数设置为低整数值、descs设置为空、num设置为很高的无符整数值触发largest_ld(515行)中的整数溢出,导致删除系统中的敏感数据(519和520行)。有漏洞的函数如下:476staticint477i386_set_ldt(td,args)478structthread*td;479char*args;480{481interror=0,i;482intlargest_ld;483structmdpro
|参考资料

来源:IDEFENSE
名称:20060923FreeBSDi386_set_ldtIntegerOverflowVulnerability
链接:http://www.idefense.com/intelligence/vulnerabilities/display.php?id=414
来源:XF
名称:freebsd-i386setldt-overflow(29132)
链接:http://xforce.iss.net/xforce/xfdb/29132
来源:BID
名称:20158
链接:http://www.securityfocus.com/bid/20158
来源:BUGTRAQ
名称:20060925iDefenseSecurityAdvisory09.23.06:FreeBSDi386_set_ldtIntegerOverflowVulnerability
链接:http://www.securityfocus.com/archive/1/archive/1/446945/100/0/threaded
来源:SECTRACK
名称:1016928
链接:http://securitytracker.com/id?1016928
来源:SECTRACK
名称:1016926
链接:http://securitytracker.com/id?1016926
来源:SECUNIA
名称:22064
链接:http://secunia.com/advisories/22064
来源:BUGTRAQ
名称:20060923[RISE-2006002]FreeBSD5.xkerneli386_set_ldt()integeroverflowvulnerability
链接:http://archives.neohapsis.com/archives/bugtraq/2006-09/0376.html