FreeBSD 的 Linux兼容模块中缓冲区溢出漏洞
发布日期:2000-09-01
更新日期:2000-09-01
受影响系统:FreeBSD FreeBSD 5.0
FreeBSD FreeBSD 4.1
FreeBSD FreeBSD 4.0
FreeBSD FreeBSD 3.5
FreeBSD FreeBSD 3.4
FreeBSD FreeBSD 3.3
FreeBSD FreeBSD 3.2
FreeBSD FreeBSD 3.1
FreeBSD FreeBSD 3.0
描述:
为做到与 Linux 兼容,FreeBSD 中有一个专门模块,叫 Linux 兼容模块。
版本3.x、4.x、5.x 的 FreeBSD 中, Linux兼容模块存在一个漏洞。早于
2000年7月23号发布的5.0版、早于2000年7月29号发布的4.1版、以及早于
2000年8月24号发布的3.5版,都被发现有这个漏洞。迟于这三个日期发布
对应的版本没有发现有这个漏洞。
Linux兼容模块实现了一个被称为"shadow"的文件系统。它罩在正规文件
系统上面影射正规文件,使得 Linux 可以透过它看到 FreeBSD 的文件。
如果一个用户在"shadow"文件系统上创建一个文件名很长的文件,并且
文件名包含机器可执行码,可以导致堆栈被覆盖,存放文件名的缓冲区
中的内容被执行。这仅发生在该模块被加载,或被直接编译进内核时。缺
省时并不这样做。
<* 来源:FreeBSD security advisory *>
建议:
1。到下面的站点下载补丁:
FreeBSD FreeBSD 5.0:
FreeBSD patch linux.patch
ftp://ftp.freebsd.org/pub/FreeBSD/CERT/patches/SA-00:42/linux.patch
FreeBSD FreeBSD 4.1
FreeBSD patch linux.patch
ftp://ftp.freebsd.org/pub/FreeBSD/CERT/patches/SA-00:42/linux.patch
FreeBSD FreeBSD 4.0:
FreeBSD patch linux.patch
ftp://ftp.freebsd.org/pub/FreeBSD/CERT/patches/SA-00:42/linux.patch
FreeBSD FreeBSD 3.5:
FreeBSD patch linux.patch
ftp://ftp.freebsd.org/pub/FreeBSD/CERT/patches/SA-00:42/linux.patch
2。卸去 Linux 兼容模块,为此先用如下命令检查是否加载了"linux.ko"
# kldstat
Id Refs Address Size Name
1 7 0xc0100000 270be0 kernel
2 1 0xc0371000 5540 vesa.ko
3 1 0xc0377000 10094 randomdev.ko
4 1 0xc0e17000 4e000 nfs.ko
5 1 0xc0e83000 11000 linux.ko
如果有 linux.ko 模块,执行如下命令:
# kldunload linux
3。如果没有被加载,检查是否被编译进内核。为此检查内核配置文件,查找
如下的行:
options COMPAT_LINUX
如果有这一行,删除它再重新编译内核。
浏览次数:5918
严重程度:0(网友投票)