首页 -> 安全研究

安全研究

安全漏洞
FreeBSD Ptrace/SPIgot信号验证不充分本地拒绝服务漏洞

发布日期:2003-08-11
更新日期:2003-08-18

受影响系统:
FreeBSD FreeBSD 5.1
FreeBSD FreeBSD 5.0
FreeBSD FreeBSD 4.8
FreeBSD FreeBSD 4.7
FreeBSD FreeBSD 4.6
FreeBSD FreeBSD 4.5
FreeBSD FreeBSD 4.4
FreeBSD FreeBSD 4.3
FreeBSD FreeBSD 4.2
描述:
BUGTRAQ  ID: 8387

信号是UNIX中用于处理异步事件如终端中断键(Ctrl-C)、作业控制、内存访问冲突、I/O竞争等 。每个信号分配一个正值。进程引起信号发生有多种机制引起,包括kill(2),系统调用或注册部分设备驱动。

部分引起信号发送的机制没有充分验证信号,本地攻击者可以利用这个漏洞允许内核尝试传递一个负或者超出范围的信号值。

在多数情况下,企图传递一个负或者超出范围的信号值会引起断言(assertion)失败或崩溃,引起系统崩溃。这些错误在ptrace(2)系统调用和'spigot'视频捕获设备驱动中会发生。ptrace(2)的错误在FreeBSD version 4.2-RELEASE中已经出现过。'spigot'设备驱动在FreeBSD 2.0.5中存在,不过这个设备驱动从来没有在内核默认安装过,除非在内核配置中增加'device spigot'选项。

不过在FreeBSD 5.x中,如果没有使用`INVARIANTS'内核选项对应(assertion)代码就不提供。在FreeBSD 5.0-RELEASE和5.1-RELEASE中,'INVARIANTS'默认没有启用,如果使用了这个配置,本地用户可以利用这个漏洞修改内核内存,导致权限提升。

<*来源:FreeBSD Security Advisory
  
  链接:ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-03:09.signal.asc
*>

建议:
临时解决方法:

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

* 注释内核配置文件中如下一行:

options       INVARIANTS              #Enable calls of extra sanity checking

重新编译内核。

厂商补丁:

FreeBSD
-------
FreeBSD已经为此发布了一个安全公告(FreeBSD-SA-03:09)以及相应补丁:
FreeBSD-SA-03:09:Insufficient range checking of signal numbers
链接:ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-03:09.signal.asc

补丁下载:

1) 将有漏洞的系统升级到4.8-STABLE,或RELENG_4_8(4.8-RELEASE-p2),RELENG_4_7
(4.7-RELEASE-p12)或RELENG_5_1(5.1-RELEASE-p1)各自修复日期后的安全版本。

2) 为当前系统打补丁:

a) 从以下位置下载相关补丁,并使用PGP工具验证附带的PGP签名。

[FreeBSD 5.1-RELEASE]

# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-03:09/signal51.patch
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-03:09/signal51.patch.asc

[FreeBSD 5.0-RELEASE]

# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-03:09/signal50.patch
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-03:09/signal50.patch.asc

[FreeBSD 4.8-RELEASE, 4.8-STABLE, 4.7-STABLE dated Jan 2 20:39:13 2003 UTC
or later]

# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-03:09/signal4s.patch
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-03:09/signal4s.patch.asc

[FreeBSD 4.3-RELEASE through 4.7-RELEASE, 4.7-STABLE dated before
Jan 2 20:39:13 2003 UTC]

# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-03:09/signal47.patch
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-03:09/signal47.patch.asc

b) 应用补丁。

# cd /usr/src
# patch < /path/to/patch

c) 按照<URL: http://www.freebsd.org/handbook/kernelconfig.html >重新编译kernel并重启系统。

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