安全研究

安全漏洞
Microsoft Windows #GP陷阱处理器本地权限提升漏洞(MS10-015)

发布日期:2010-01-19
更新日期:2010-02-09

受影响系统:
Microsoft Windows XP SP3
Microsoft Windows XP SP2
Microsoft Windows Vista SP2
Microsoft Windows Vista SP1
Microsoft Windows Vista
Microsoft Windows Server 2008 SP2
Microsoft Windows Server 2008
Microsoft Windows Server 2003 SP2
Microsoft Windows 7
Microsoft Windows 2000SP4
描述:
BUGTRAQ  ID: 37864
CVE ID: CVE-2010-0232

Microsoft Windows是微软发布的非常流行的操作系统。

Windows的内核#GP陷井处理例程对执行的环境做了一些不正确的假设,本地普通用户权限的攻击者可以通过伪造执行环境中的数据使操作系统在ring0层执行指定的任意指令,从而取得对系统的完全控制。此漏洞影响几乎所有的x86 32位的Windows系统。

为了在老式的16位应用中支持BIOS服务例程,Windows NT内核支持Virtual-8086模式监控代码中的BIOS调用,分两个阶段实现。当#GP陷阱处理器(nt!KiTrap0D)检测到出错的cs:eip匹配了特定的magic value,内核就会过渡到第二阶段。一旦确认了真实性,过渡到第二阶段就会涉及到从出错的陷阱帧恢复之前所保存的执行上下文和调用栈。

由于这个验证依赖于以下错误的假设:

  - 创建VDM上下文需要SeTcbPrivilege
  - ring3代码无法安装任意代码段选择器
  - ring3代码无法伪造陷阱帧

本地攻击者可以创建伪造的VDM上下文,然后通过触发异常导致内核栈返回到受控的地址,导致执行任意内核态代码。

<*来源:Tavis Ormandy (taviso@gentoo.org
  
  链接:http://secunia.com/advisories/38265/
        http://www.microsoft.com/technet/security/advisory/979682.mspx?pf=true
        http://marc.info/?l=full-disclosure&m=126392889822726&w=2
        http://www.microsoft.com/technet/security/bulletin/MS10-015.mspx?pf=true
        http://www.us-cert.gov/cas/techalerts/TA10-040A.html
*>

测试方法:

警 告

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

http://lock.cmpxchg8b.com/c0af0967d904cef2ad4db766a00bc6af/KiTrap0D.zip

建议:
临时解决方法:

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

* 禁用NTVDM子系统。

  1. 运行 gpedit.msc 程序
  2. 展开“管理模板”,选择“Windows组件”
  3. 点击“应用程序兼容性”
  4. 在右边的条目显示框内双击“防止访问16位应用程序”
  5. 设置标签页中选择“已启用”
  6. 点击“确定”

厂商补丁:

Microsoft
---------
Microsoft已经为此发布了一个安全公告(MS10-015)以及相应补丁:
MS10-015:Vulnerabilities in Windows Kernel Could Allow Elevation of Privilege (977165)
链接:http://www.microsoft.com/technet/security/bulletin/MS10-015.mspx?pf=true

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