| 网站首页 | 新闻中心 | 系统安全 | 网络安全 | 安全技术 | 下载中心 | 
课件制作网.
收藏本站
设为首页
安全365
OpenBSD systrace systrace_preprepl本地整数溢出漏洞
OpenBSD systrace systrace_preprepl本地整数溢出漏洞
作者:佚名 文章来源:不详 点击数: 更新时间:2007-1-26 15:05:09
2006-10-10 13:49:23

发布日期:2006-10-07
更新日期:2006-10-10

受影响系统:
OpenBSD OpenBSD 3.9
OpenBSD OpenBSD 3.8

描述:

BUGTRAQ  ID: 20392

OpenBSD是一款开放源代码Unix类操作系统,OpenBSD的systrace功能可以允许或拒绝被管理进程所执行的syscall。

systrace的内核组件中存在整数溢出漏洞,允许攻击者通过在systrace ioctl()中指定很大的整数值触发这个漏洞,导致绕过安全检查、向任意内核地址越界写入空字节或读取内核内存块。

漏洞代码在systrace_preprepl函数中:

for (i = 0, len = 0; i < repl->strr_nrepl; i++) {
len += repl->strr_offlen[i];
if (repl->strr_offlen[i] == 0)
continue;
if (repl->strr_offlen[i] + repl->strr_off[i] > len)
return (EINVAL);
}

/* Make sure that the length adds up */
if (repl->strr_len != len)
return (EINVAL);

/* Check against a maximum length */
if (repl->strr_len > 2048)
return (EINVAL);

这里strr_offlen[i] + strr_off[i]可能溢出,导致攻击者可以选择很大数值的strr_offlen或strr_off;len变量也存在整数溢出,轻易地满足strr_len <= 2048这个条件。然后在systrace_replace中就会使用攻击者所提供的超大值:

if (repl->strr_flags[i] & SYSTR_NOLINKS) {
ret = systrace_fname(strp, kdata, repl->strr_offlen[i]);

在systrace_fname中:

int
systrace_fname(struct str_process *strp, caddr_t kdata, size_t len)
{
if (strp->nfname >= SYSTR_MAXFNAME || len < 1)
return EINVAL;

strp->fname[strp->nfname] = kdata;
strp->fname[strp->nfname][len - 1] = '\0';
strp->nfname++;

return 0;
}

len是被攻击者随意控制的,导致向内核空间写入空字节。此外,在systrace_replace使用这个攻击者控制的长度拷贝出用户空间,可能导致窃取内核内存的内容:

if (copyout(kdata, udata, repl->strr_offlen[i])) {
ret = EINVAL;
goto out;
}

<*来源:Chris Evans (chris@ferret.lmh.ox.ac.uk)
        Damien Miller (djm@cvs.openbsd.org)
  
  链接:http://secunia.com/advisories/22324/
        http://scary.beasts.org/security/CESA-2006-003.html
*>

建议:

厂商补丁:

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

ftp://ftp.openbsd.org/pub/OpenBSD/patches/3.8/common/019_systrace.patch
ftp://ftp.openbsd.org/pub/OpenBSD/patches/3.9/common/014_systrace.patch

新闻录入:admin    责任编辑:admin 
  • 上一篇新闻:

  • 下一篇新闻:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
     
     
     
    GNU Tar GNUTYPE_NAMES远
    OpenSSL PKCS填充伪造RS
    OpenSSL公钥处理拒绝服务
    OpenSSL畸形ASN.1结构处
    OpenSSL SSL_get_shared
    Perl格式串处理整数溢出
    Adobe Reader/Acrobat A
    GnuPG OpenPGP畸形消息处
    OpenLDAP服务器Kerberos
    WFTPD Pro Server APPE命

    Copyright © 2006-2008 www.anquan365.com 安全365
    建议使用1024*768分辨率及第三方浏览器对本站进行浏览