首页 -> 安全研究

安全研究

安全漏洞
BSD内核exec()系统调用竞争条件漏洞

发布日期:2002-01-16
更新日期:2002-01-22

受影响系统:
OpenBSD OpenBSD kernel
    - OpenBSD 3.0
    - OpenBSD 2.9
    - OpenBSD 2.8
    - OpenBSD 2.7
    - OpenBSD 2.6
    - OpenBSD 2.5
    - OpenBSD 2.4
    - OpenBSD 2.3
    - OpenBSD 2.2
    - OpenBSD 2.1
    - OpenBSD 2.0
FreeBSD FreeBSD kernel
    - FreeBSD 4.4
    - FreeBSD 4.3
    - FreeBSD 4.2
    - FreeBSD 4.1.1
    - FreeBSD 4.1
    - FreeBSD 4.0
    - FreeBSD 3.x
NetBSD NetBSD kernel
    - NetBSD 1.5.2
    - NetBSD 1.5.1
    - NetBSD 1.5
    - NetBSD 1.4.3
    - NetBSD 1.4.2
    - NetBSD 1.4.1
    - NetBSD 1.4
    - NetBSD 1.3.3
    - NetBSD 1.3.2
    - NetBSD 1.3.1
    - NetBSD 1.3
描述:
BUGTRAQ  ID: 3891
CVE(CAN) ID: CVE-2002-2092

NetBSD内核在exec()系统调用的实现中存在竞争条件漏洞,允许本地攻击者提升权限。

exec()系统调用用于将可执行文件二进制映像加载到进程空间中。当进程调用exec()来加载一个setuid的二进制程序时,存在一个竞争条件漏洞。在被加载程序激活前的一个很短的时间段内,攻击者可能获取对它的ptrace控制,然后攻击者就可以修改该setuid进程的地址空间,从而提升自己的权限。如果系统中存在setuid root程序,攻击者就可能获取本地root权限。

其他BSD操作系统可能存在同样的安全问题。

<*来源:Tor Egge
  
  链接:ftp://ftp.netbsd.org/pub/NetBSD/security/advisories/NetBSD-SA2002-001.txt.asc
        ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:08.exec.asc
*>

建议:
临时解决方法:

如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:

* 禁止任何不可信用户访问系统。

厂商补丁:

NetBSD
------
NetBSD已经为此发布了一个安全公告(NetBSD-SA2002-001)以及相应补丁:
NetBSD-SA2002-001:Close-on-exec, SUID and ptrace(2)
链接:ftp://ftp.netbsd.org/pub/NetBSD/security/advisories/NetBSD-SA2002-001.txt.asc

补丁下载:

* NetBSD-current:

   正在运行NetBSD-current日期在2002-01-14之前的系统应该升级到2002-01-15或更新版本。
   您需要从netbsd-current CVS分支(aka HEAD)中进行升级您的内核代码:

                # cd src
                # cvs update -d -P sys/kern/kern_exec.c
                # cvs update -d -P sys/kern/sys_process.c
                # cvs update -d -P sys/sys/proc.h
                # cvs update -d -P sys/miscfs/procfs/procfs_ctl.c
                # cvs update -d -P sys/miscfs/procfs/procfs_mem.c
                # cvs update -d -P sys/miscfs/procfs/procfs_regs.c
                # cvs update -d -P sys/miscfs/procfs/procfs_vnops.c
    
    然后重建并安装新内核。  

* NetBSD 1.5, 1.5.1, 1.5.2:
  
   正在运行NetBSD 1.5-branch日期在2002-01-14之前的系统应该升级到2002-01-15或更新版本。
   您需要从netbsd-1-5 CVS分支(aka HEAD)中进行升级您的内核代码:

                # cd src
                # cvs update -d -P sys/kern/kern_exec.c
                # cvs update -d -P sys/kern/sys_process.c
                # cvs update -d -P sys/sys/proc.h
                # cvs update -d -P sys/miscfs/procfs/procfs_ctl.c
                # cvs update -d -P sys/miscfs/procfs/procfs_mem.c
                # cvs update -d -P sys/miscfs/procfs/procfs_regs.c
                # cvs update -d -P sys/miscfs/procfs/procfs_vnops.c
    
    然后重建并安装新内核。  
    
    您也可以从下列地址获取补丁:
    ftp://ftp.netbsd.org/pub/NetBSD/security/patches/SA2002-001-ptrace-1.5.patch

    然后安装补丁:

                # cd src
                # patch < /path/to/SA2002-001-ptrace-1.5.patch

    然后重建并安装新内核。  


* NetBSD 1.4, 1.4.1, 1.4.2, 1.4.3:

    您可以从下列地址获取补丁:
    ftp://ftp.netbsd.org/pub/NetBSD/security/patches/SA2002-001-ptrace-1.4.patch

    然后安装补丁:

                # cd src
                # patch < /path/to/SA2002-001-ptrace-1.4.patch

    然后重建并安装新内核。  


注:关于重建内核,您可以参考下列链接:
http://www.netbsd.org/Documentation/kernel/#how_to_build_a_kernel

浏览次数:3252
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障