安全研究

安全漏洞
FreeBSD mount(2)和nmount(2)调用栈溢出漏洞

发布日期:2008-09-03
更新日期:2008-09-04

受影响系统:
FreeBSD FreeBSD 7.0
描述:
BUGTRAQ  ID: 31002
CVE(CAN) ID: CVE-2008-3531

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

基础系统中的各种工具都使用mount(2)和nmount(2)系统调用将文件系统树上的文件系统对象移动到指定的加载点。非特权用户可通过设置vfs.usermount sysctl(8)变量使用这些系统调用。

加载点、设备和加载选项等各种用户定义的输入作为nmount(2)参数传送给了内核。在某些出错的情况下,FreeBSD未经充分的边界检查便将用户定义的数据拷贝到了内核中所存储的栈分配缓冲区。如果系统配置为允许非特权用户加载文件系统的话,本地恶意用户就可以利用这个漏洞以内核环境执行代码。

<*来源:James Gritton
  
  链接:ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-08:08.nmount.asc
*>

建议:
临时解决方法:

* 可通过运行以下sysctl(8)命令,仅允许特权用户加载文件系统来临时解决这个漏洞:

# sysctl vfs.usermount=0

厂商补丁:

FreeBSD
-------
FreeBSD已经为此发布了一个安全公告(FreeBSD-SA-08:08)以及相应补丁:
FreeBSD-SA-08:08:nmount(2) local arbitrary code execution
链接:ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-08:08.nmount.asc

补丁下载:

1) 将有漏洞的系统升级到7-STABLE,或修改日期之后的RELENG_7_0安全版本。

2) 为当前系统打补丁:

以下补丁确认可应用于FreeBSD 7.0系统。

a) 从以下位置下载相关补丁,并使用PGP工具验证附带的PGP签名。

# fetch http://security.FreeBSD.org/patches/SA-08:08/nmount.patch
# fetch http://security.FreeBSD.org/patches/SA-08:08/nmount.patch.asc

b) 以root执行以下命令:

# cd /usr/src
# patch < /path/to/patch

c) 如<URL:http://www.FreeBSD.org/handbook/kernelconfig.html> 所述重新编译内核并重启系统。

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