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>
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>