安全研究

安全漏洞
FreeBSD fw_ioctl()整数溢出内存信息泄露漏洞

发布日期:2006-11-16
更新日期:2006-11-20

受影响系统:
FreeBSD FreeBSD 5.5
描述:
CVE(CAN) ID: CVE-2006-6013

FreeBSD就是一种运行在Intel平台上、可以自由使用的开放源码Unix类系统。

FreeBSD dev/firewire/fwdev.c文件中的fw_ioctl()函数存在整数溢出漏洞,本地攻击者可能利用此漏洞获取敏感信息。

在dev/firewire/fwdev.c的以下代码段中:

    if (crom_buf->len < len)
        len = crom_buf->len;
    else
        crom_buf->len = len;

    err = copyout(ptr, crom_buf->ptr, len);

crom_buf->len是传送给ioctl的参数,如果能对其传送负值的话就可以绕过这个if语句。copyout函数中使用了攻击者的值,在这个copyout操作之前定义了ptr:

     if ( fwdev == NULL ) {
        ...
        ptr = malloc(CROMSIZE, M_FW, M_WAITOK);
        ...
     } else {
        ptr = (void *)&fwdev->csrrom[0];
        ...
    }

这个信息泄漏可能导致攻击者dump所有的系统内存。

<*来源:Filipe Balestra (filipe@balestra.com.br
        Rodrigo Rubira Branco (rodrigo@risesecurity.org
  
  链接:http://secunia.com/advisories/22917/
        http://marc.theaimsgroup.com/?l=bugtraq&m=116365626732455&q=p3
*>

建议:
厂商补丁:

FreeBSD
-------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

http://www.freebsd.org/security/index.html

浏览次数:3257
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障