Lucene search

K
seebugRootSSV:539
HistoryNov 21, 2006 - 12:00 a.m.

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

2006-11-2100:00:00
Root
www.seebug.org
10

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所有的系统内存。

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

<a href=“http://www.freebsd.org/security/index.html” target=“_blank”>http://www.freebsd.org/security/index.html</a>