当前位置: 主页 > 漏洞公告 >

Sun Solaris CODE_GET_VERSION IOCTL本地拒绝服务漏洞

时间:2010-02-04  来源:绿盟科技   点击:
 

受影响系统:

    Sun Solaris 10.0_x86
    Sun OpenSolaris snv_69 - snv_133

描述:BUGTRAQ  ID: 38016
CVE ID: CVE-2010-0453

Solaris是一款由Sun开发和维护的商业UNIX操作系统。

Solaris的内核中负责处理UCODE_GET_VERSION IOCTL请求的代码中存在空指针引用漏洞,本地用户可以通过发送特制的IOCTL请求导致拒绝服务。以下是intel/io/ucode_drv.c中的有漏洞代码段:

[..]
static int
ucode_ioctl(dev_t dev, int cmd, intptr_t arg, int mode, cred_t *cr, int
            *rval)
{
..
   switch (cmd) {
   case UCODE_GET_VERSION: {
     int size;
     uint32_t *revp, *rev_array;
     ucode_errno_t rc = EM_OK;

     STRUCT_DECL(ucode_get_rev_struct, h);
     STRUCT_INIT(h, mode);
[1] if (ddi_copyin((void *)arg,
         STRUCT_BUF(h), STRUCT_SIZE(h), mode))
       return (EFAULT);

[2] if ((size = STRUCT_FGET(h, ugv_size)) > NCPU)
       return (EINVAL);

     if ((rev_array = STRUCT_FGETP(h, ugv_rev)) == NULL)
       return (EINVAL);

     size *= sizeof (uint32_t);

[3] revp = kmem_zalloc(size, KM_SLEEP);
     if (ddi_copyin((void *)rev_array, revp, size, mode) != 0) {
       kmem_free(revp, size);
       return (EINVAL);
     }

[4] rc = ucode_get_rev(revp);
[..]

[1] h结构填充了用户控制的IOCTL输入数据。
[2] 从用户控制的数据中获得了size值。
[3] 如果size值为0,kmem_zalloc()会返回NULL,导致revp指向NULL。
[4] revp用作了ucode_get_rev()的函数指针。

i86pc/os/microcode.c:

[..]
/*
* Returns microcode revision from the machcpu structure.
*/
ucode_errno_t
ucode_get_rev(uint32_t *revp)
{
   int i;

   ASSERT(ucode);
   ASSERT(revp);

   if (!ucode->capable(CPU))
     return (EM_NOTSUP);

   mutex_enter(&cpu_lock);
   for (i = 0; i < max_ncpus; i++) {
     cpu_t *cpu;

     if ((cpu = cpu_get(i)) == NULL)
       continue;

[5] revp[i] = cpu->cpu_m.mcpu_ucode_info->cui_rev;
[..]

[5] 这个分配导致了空指针引用,因为revp == NULL。

<*来源:Tobias Klein
 
  链接:http://marc.info/?l=bugtraq&m=126505373907787&q=p3
        http://tk-blog.blogspot.com/2010/01/kernel-null-pointer-dereference-in.html
        http://secunia.com/advisories/38452/
*>

建议:厂商补丁:

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

http://sunsolve.sun.com/search/document.do?assetkey=1-21-143913-01-1

[来源:服务器安全维护网 ServerSteam.com ->> 责任编辑:FuanAdmin]

更多相关

常见问题

服务项目

服务器安全维护:服务器安全技术服务!(服务器配置、服务器安全配置、服务器安全方案)

成功案例

联系我们

    安全应急响应中心:

  • 专家信箱:sec@serversteam.com
  • 专家热线:13542743816
  • 安全客服:0755-82894338
  • 应急传真:0755-82894338
  • 地址:深圳市福田区群星广场A座
首页 - 合作伙伴 - 服务条款 - 服务承诺 - 业务流程 - 漏洞公告 - 技术支持 - 常见问题 - 安全法规 - 百度新闻 - 联系我们
支持单位:深圳市雪鹿信息技术开发有限公司 服务器安全应急中心 服务器安全资讯网 中华人民共和国工业和信息化部备案许可证:[粤ICP备09049593号]
Copyright © 2004 -2010 Server Security Safeguard Site. &. ShenZhen XueLu Co,LTD All Rights Reserved. Record ICP No:GD No.09049593 Design By: Berlin