NetBSD重复调用TIOSCTTY IOCTL缓冲区溢出漏洞

漏洞信息详情

NetBSD重复调用TIOSCTTY IOCTL缓冲区溢出漏洞

漏洞简介

NetBSD是一款开放源代码的操作系统。
会话进程在调用TIOCSCTTY ioctl缺少正确处理,本地攻击者可以利用这个漏洞进行缓冲区溢出攻击,可以导致内核崩溃。
一个进程通过派生一个子进程并父进程退出来启动新的会话,新的子进程然后调用setsid(2)建立一个新的会话,因此成为会话发起者(session leader),子进程然后再调用TIOCSCTTY ioctl。
在多个进程之间共享的结构(如会话结构)一般包含一个计数器来跟踪一个结构有多少次被引用,典型的情况下,NetBSD中使用宏来增加/递减使用的计数器,然后当计数器归零的时候结构被释放。
通过多次重复调用TIOCSCTTY,当进程退出的时候可使整数计数器溢出,导致计数器归零,并且即使其他进程仍旧引用的情况下结构也被释放,根据内核选项,这可立即导致内存被垃圾数据覆盖,或者当内存分配给其他进程的时候被随机数据覆盖,可导致内核崩溃。
<*链接:ftp://ftp.netbsd.org/pub/NetBSD/security/advisories/NetBSD-SA2002-007.txt.asc
*>

漏洞公告

厂商补丁:
NetBSD
——
NetBSD已经为此发布了一个安全公告(NetBSD-SA2002-007)以及相应补丁:

NetBSD-SA2002-007:Repeated TIOCSCTTY ioctl can corrupt session hold counts

链接:ftp://ftp.netbsd.org/pub/NetBSD/security/advisories/NetBSD-SA2002-007.txt.asc

最新的NetBSD 1.6 release不存在此漏洞,建议用户升级到NetBSD 1.6版本。

否则你必须对内核源代码进行升级,重建和安装新的内核,一旦内核源代码更新后,安装如下指示进行内核重建和安装:

http://www.netbsd.org/Documentation/kernel/#how_to_build_a_kernel” target=”_blank”>
http://www.netbsd.org/Documentation/kernel/#how_to_build_a_kernel

* NetBSD-current:

系统运行在2002-07-21之前的NetBSD-current版本必须升级到2002-07-21 NetBSD-current版本或者之后的版本。

下面的目录必须从netbsd-current CVS branch (aka HEAD)升级:

src/sys/kern/

或者采用如下补丁:

ftp://ftp.netbsd.org/pub/NetBSD/security/patches/SA2002-007-tiocsctty.patch

对文件进行补丁修复:

# cd src/sys

# patch < /path/to/SA2002-007-tiocsctty.patch

按照如下方法配置,编译,安装和重新启动新内核:

http://www.netbsd.org/Documentation/kernel/#building_a_kernel” target=”_blank”>
http://www.netbsd.org/Documentation/kernel/#building_a_kernel

* NetBSD 1.6 beta:

系统运行NetBSD 1.6 BETAs和Release Candidates版本必须升级到NetBSD 1.6 release版本。

下面的目录必须从netbsd-1-6 CVS branch上升级:

src/sys/kern/

或者采用如下补丁:

ftp://ftp.netbsd.org/pub/NetBSD/security/patches/SA2002-007-tiocsctty.patch

对文件进行补丁修复:

# cd src/sys

# patch < /path/to/SA2002-007-tiocsctty.patch

按照如下方法配置,编译,安装和重新启动新内核:

http://www.netbsd.org/Documentation/kernel/#building_a_kernel ” target=”_blank”>
http://www.netbsd.org/Documentation/kernel/#building_a_kernel

* NetBSD 1.5, 1.5.1, 1.5.2, 1.5.3:

系统运行在2002-09-05之前的NNetBSD 1.5 branch版本必须升级到2002-09-05 NetBSD 1.5 branch版本或者之后的版本。

下面的目录必须从netbsd-1-5 CVS branch升级:

src/sys/kern/

或者采用如下补丁:

ftp://ftp.netbsd.org/pub/NetBSD/security/patches/SA2002-007-tiocsctty.patch

对文件进行补丁修复:

# cd src/sys

# patch < /path/to/SA2002-007-tiocsctty.patch

按照如下方法配置,编译,安装和重新启动新内核:

http://www.netbsd.org/Documentation/kernel/#building_a_kernel ” target=”_blank”>
http://www.netbsd.org/Documentation/kernel/#building_a_kernel

* NetBSD 1.4.x:

尚无

参考网址

来源: BID
名称: 5722
链接:http://www.securityfocus.com/bid/5722

来源: XF
名称: netbsd-tiocsctty-ioctl-bo(10115)
链接:http://www.iss.net/security_center/static/10115.php

来源: OSVDB
名称: 7566
链接:http://www.osvdb.org/7566

来源: NETBSD
名称: NetBSD-SA2002-007
链接:ftp://ftp.netbsd.org/pub/NetBSD/security/advisories/NetBSD-SA2002-007.txt.asc

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享