FreeBSD mbuf本地权限提升漏洞

发布时间:2010-07-13
影响版本:

FreeBSD FreeBSD 8.1
FreeBSD FreeBSD 8.0
FreeBSD FreeBSD 7.3
FreeBSD FreeBSD 7.1

漏洞描述:

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

mbuf是FreeBSD内核进程间通讯和联网子系统中的基础内存管理单元。网络报文和套接字缓冲区依赖于mbuf进行存储。

在复制mbuf缓冲区引用时没有正确地拷贝只读标志,如果使用sendfile(2)系统调用在回环接口上传输数据,就可能导致修改所传送数据的后端内存页,造成数据破坏。本地攻击者可以通过精心控制系统文件的破坏情况来利用这种数据破坏提升权限。请注意攻击者可以破坏任意可读访问的文件。

<*参考

http://secunia.com/advisories/40567/
http://security.freebsd.org/advisories/FreeBSD-SA-10:07.mbuf.asc

*>
安全建议:

厂商补丁:

FreeBSD
-------
FreeBSD已经为此发布了一个安全公告(FreeBSD-SA-10:07)以及相应补丁:
FreeBSD-SA-10:07:Lost mbuf flag resulting in data corruption
链接:http://security.freebsd.org/advisories/FreeBSD-SA-10:07.mbuf.asc

补丁下载:

执行以下步骤之一;

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

2) 如果要通过源码路径升级有漏洞的系统:

以下补丁确认可应用于FreeBSD 7.1、7.3、8.0和8.1系统。

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

# fetch http://security.FreeBSD.org/patches/SA-10:07/mbuf.patch
# fetch http://security.FreeBSD.org/patches/SA-10:07/mbuf.patch.asc

b) 以root执行以下命令:

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

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