首页 -> 安全研究

安全研究

绿盟月刊
绿盟安全月刊->第25期->最新漏洞
期刊号: 类型: 关键词:
NetBSD kernel semop 执行任意代码漏洞

日期:2001-09-10

受影响的系统:  
NetBSD NetBSD 1.5.1
NetBSD NetBSD 1.5
NetBSD NetBSD 1.4.3
NetBSD NetBSD 1.4.2
NetBSD NetBSD 1.4.1
NetBSD NetBSD 1.4
NetBSD NetBSD current pre20010805

不受影响系统:  
NetBSD NetBSD 1.5.2
描述:
--------------------------------------------------------------------------------


BUGTRAQ ID : 3298

NetBSD 内核中存在一个潜在的本地拒绝服务漏洞。

这个问题是用于内核函数sys_semop()(semop(2)系统调用的入口)浆一个无符号的参数
'nsops'保存到了一个有符号的本地变量中。因此,如果用户传递一个很大的'nsops'数
值(超过了最大整数),那么那个有符号的本地变量就变成了负值,这就绕过了函数的长度
检查。sys_semop()后面会使用这个变量来从用户内存中拷贝数据到内核空间的一个本地
缓冲区中,拷贝的数据长度为'nsops * sizeof(struct sembuf)',因此这可以从用户空
间中拷贝一段非常长的数据到内核空间,这将触发一个内核中的缓冲区溢出问题。这可能
被用来导致内核崩溃或者调用任意内核代码,也可能执行任意代码(如果堆栈内存是可以执
行的话)


<*来源:NetBSD Security Officer  (security-officer@netbsd.org))
  链接:NetBSD Security Advisory 2001-015 :
        http://archives.neohapsis.com/archives/bugtraq/2001-09/0022.html
*>




--------------------------------------------------------------------------------
建议:

厂商补丁:

* 升级到NetBSD 1.5.2或更高版本

* NetBSD-current:

   。升级到2001-08-06以后版本。
   。或者安装下列补丁:
     ftp://ftp.netbsd.org/pub/NetBSD/security/patches/SA2001-015-kernlen-current.patch
     然后执行下列命令:
     # cd src/sys
     # patch < /path/to/SA2001-015-kernlen-current.patch
     重新编译安装内核,重启系统

* NetBSD 1.5, 1.5.1:

    。升级到2001-08-17以后版本。
   。或者安装下列补丁:
     ftp://ftp.netbsd.org/pub/NetBSD/security/patches/SA2001-015-kernlen-1.5.patch
     然后执行下列命令:
     # cd src/sys
     # patch < /path/to/SA2001-015-kernlen-1.5.patch
     重新编译安装内核,重启系统
                 
* NetBSD 1.4, 1.4.1, 1.4.2, 1.4.3:

    暂时没有针对这一系列系统的补丁。

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