影响版本:
FreeBSD 6.x漏洞描述:
FreeBSD是一款开放源代码的操作系统。
FreeBSD存在多个安全问题:
-Kqueues相关的pipe "close()"实现存在一个释放后使用错误,可导致可利用的Null指针漏洞,内核内存破坏和其他不可预测结果。成功利用漏洞可导致特权提升,内核数据破坏或崩溃。
-在多数结构中,FreeBSD把进程虚拟内存地址空间划分为用户和内核两块。当进程进入内核时通过避免全局地址控件切换来提升系统调用性能,并且提升内核访问用户内存的性能。
但是,在这个设计中,地址0是作为虚拟地址空间中用户可控部分来处理,如果内核由于一个内核错误而引用Null指针,恶意进程映射到地址0的代码或数据可操作内核行为。如恶意用户进程把代码或数据映射到地址0,内核错误可导致Null指针调用,内核可以以内核特权执行任意代码来代替内核崩溃。
<*参考
http://security.freebsd.org/advisories/FreeBSD-EN-09:05.null.asc
http://security.freebsd.org/advisories/FreeBSD-SA-09:13.pipe.asc
http://secunia.com/advisories/36955*>
安全建议:
FreeBSD:
pipe "close()"实现错误漏洞的用户可参考如下方法升级:
1) 将有漏洞的系统升级到6-STABLE或RELENG_6_4,或修改日期之后的RELENG_6_3安全版本。
2) 为当前系统打补丁:
以下补丁确认可应用于FreeBSD 6.3、6.4系统。
a) 从以下位置下载相关补丁,并使用PGP工具验证附带的PGP签名。
# fetch http://security.FreeBSD.org/patches/SA-09:13/pipe.patch
# fetch http://security.FreeBSD.org/patches/SA-09:13/pipe.patch.asc
b) 以root执行以下命令:
# cd /usr/src
# patch < /path/to/patch
c) 如<URL:http://www.FreeBSD.org/handbook/kernelconfig.html>所述重新编译内核并重启系统。
Null指针引用错误漏洞的用户可参考如下方法升级:
1) 将有漏洞的系统升级到6-STABLE, 7-STABLE或8-RC,或修改日期之后的RELENG_7_2, RELENG_7_1, RELENG_6_4或RELENG_6_3安全版本。
2) 为当前系统打补丁:
以下补丁确认可应用于FreeBSD 6.3、6.4、7.1和7.2系统。
a) 从以下位置下载相关补丁,并使用PGP工具验证附带的PGP签名。
[FreeBSD 7.x]
# fetch http://security.FreeBSD.org/patches/EN-09:05/null.patch
# fetch http://security.FreeBSD.org/patches/EN-09:05/null.patch.asc
[FreeBSD 6.x]
# fetch http://security.FreeBSD.org/patches/EN-09:05/null6.patch
# fetch http://security.FreeBSD.org/patches/EN-09:05/null6.patch.asc
注意:用于FreeBSD 7.x补丁可用于FreeBSD 8,但是默认不开启此功能。
b) 以root执行以下命令:
# cd /usr/src
# patch < /path/to/patch
c) 如<URL:http://www.FreeBSD.org/handbook/kernelconfig.html>所述重新编译内核并重启系统。
【编辑推荐】