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上下文,然后通过触发异常导致内核栈返回到受控的地址,导致执行任意内核态代码。
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 7
Microsoft Windows 2000SP4
临时解决方法:
如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:
* 禁用NTVDM子系统。
1. 运行 gpedit.msc 程序
2. 展开“管理模板”,选择“Windows组件”
3. 点击“应用程序兼容性”
4. 在右边的条目显示框内双击“防止访问16位应用程序”
5. 设置标签页中选择“已启用”
6. 点击“确定”
厂商补丁:
Microsoft
---------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://www.microsoft.com/technet/security/advisory/979682.mspx
暂无评论