首页 -> 安全研究

安全研究

绿盟月刊
绿盟安全月刊->第13期->最新漏洞
期刊号: 类型: 关键词:
FreeBSD 的 Linux兼容模块中缓冲区溢出漏洞

日期:2000-09-12

受影响的系统:  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

    如果有这一行,删除它再重新编译内核。

版权所有,未经许可,不得转载