Microsoft Virtual PC内存管理绕过安全限制漏洞

受影响系统:

Microsoft Virtual PC 2007 SP1
Microsoft Virtual PC 2007
Microsoft Virtual Server 2005 R2 SP1
Microsoft Virtual Server 2005

描述:


BUGTRAQ  ID: 38764

Microsoft Virtual PC是流行的虚拟机工具,允许在同一台计算机上运行多个操作系统。

基于Windows NT技术的操作系统提供了扁平的32位虚拟地址空间为32位进程描述4G的虚拟内存,进程使用这个空间映射其可执行代码和运行时期间所使用的数据。出于性能和效率考虑进程地址空间通常拆分为两部分,其中的2GB可由用户态应用进程直接访问,另外的2GB用于映射操作系统的代码和数据,仅可由内核代码访问,试图从用户空间进程引用和使用2GB边界以上地址所映射的内存内容都会触发异常并终止进程。

在某些版本的32位Windows操作系统上,可以配置操作系统为应用提供3GB的扁平虚拟地址空间,但用户态进程仍无法访问剩余部分的空间。

在Microsoft Virtual PC和Windows Virtual PC上,虚拟机监控(VMM)负责调节虚拟化环境中所运行操作系统对硬件资源和设备的访问。如果要维持虚拟化和非虚拟化环境中同样的风险级别,直接运行在硬件上的Windows操作系统上的加固和反漏洞利用机制应与运行在虚拟化HW上的操作系统上的完全相同。但Virtual PC hypervisor中的漏洞破坏了这种假设,导致DEP、SafeSEH、ASLR等反漏洞利用机制无效。Virtual PC的VMM没有实现正确的内存管理,允许运行在Guest操作系统上的用户空间进程可以读写访问部分VMM worker内存。所泄露的内存页映射到了Guest操作系统中2GB上限之外的虚拟地址,而这部分地址是不允许用户空间程序访问的。

<*来源:Nicolas Economou
  
  链接:http://marc.info/?l=full-disclosure&m=126877085812775&w=2
*>

测试方法:


警 告

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

http://corelabs.coresecurity.com/index.php?module=Wiki&action=attachment&type=advisory&page=CORE-200
http://corelabs.coresecurity.com/index.php?module=Wiki&action=attachment&type=advisory&page=CORE-200

建议:


厂商补丁:

Microsoft
———
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

http://www.microsoft.com/technet/security/

发表评论?

0 条评论。

发表评论