FreeBSD内核pseudofs模块本地内存覆盖漏洞

2010-11-17T00:00:00
ID SSV:20254
Type seebug
Reporter Root
Modified 2010-11-17T00:00:00

Description

BUGTRAQ ID: 44782 CVE ID: CVE-2010-4210

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

FreeBSD的pseudofs模块中用于处理扩展属性的pfs_getextattr(9)函数尝试解锁之前尚未锁定的互斥体。在加载了使用 pseudofs的文件系统且允许空页面映射的系统上,攻击者可以以0覆盖内核中的任意内存位置,在某些情况下还可以在内核环境中执行任意代码。

在不允许空页面映射的系统上,攻击者可以导致FreeBSD内核忙碌。

FreeBSD FreeBSD 8.x FreeBSD FreeBSD 7.x 临时解决方法:

  • 卸载procfs(5)和linprocfs(5)。

厂商补丁:

FreeBSD

FreeBSD已经为此发布了一个安全公告(FreeBSD-SA-10:09)以及相应补丁: FreeBSD-SA-10:09:Spurious mutex unlock 链接:ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-10:09.pseudofs.asc

补丁下载:

执行以下步骤之一;

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

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

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

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

fetch http://security.FreeBSD.org/patches/SA-10:09/pseudofs.patch

fetch http://security.FreeBSD.org/patches/SA-10:09/pseudofs.patch.asc

b) 以root执行以下命令:

cd /usr/src

patch < /path/to/patch

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