Lucene search

K
seebugRootSSV:2951
HistoryFeb 27, 2008 - 12:00 a.m.

VMware产品共享文件夹MultiByteToWideChar()变量目录遍历漏洞

2008-02-2700:00:00
Root
www.seebug.org
28

EPSS

0.001

Percentile

32.7%

BUGTRAQ ID: 27944
CVE(CAN) ID: CVE-2008-0923

VMWare是一款虚拟PC软件,允许在一台机器上同时运行两个或多个Windows、DOS、LINUX系统。

VMware的共享文件夹机制实现上存在目录遍历漏洞,运行于Guest系统上的程序可以利用此漏洞访问到Host系统的文件。

VMware的共享文件夹允许用户在Guest和Host系统之间传输数据,该机制允许Guest系统的用户读写任意部分的Host文件系统,包括系统文件夹和其他敏感文件。

该漏洞的起因是用于在Guest系统中提供共享文件夹功能的VMware API处理PathName参数的方式。在确认PathName参数不包含有0x2e0x2e(翻译为ASCII子字符“…”)字符串后,就会将其从多个字节字符串转换为宽字符字符串,然后将所生成的宽字符字符串传送给Host系统上的系统文件API。这个转换是使用Windows API的MultiByteToWideChar函数实现的。由于验证“…”字符串是在转换输入字符串之前执行的,因此Guest系统上的恶意程序或用户提供的PathName可以通过验证,但在调用MultiByteToWideChar之后仍可能映射为包含有Unicode UTF-16版本的“…”字符串。

VMWare VMWare Workstation 6.0.2
VMWare VMWare Workstation 5.5.4
VMWare ACE 2.0.2
VMWare ACE 1.0.2
VMWare Player 2.0.2
VMWare Player 1.0.4
临时解决方法:

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

  • 在全局设置中禁用共享文件夹:

从VMware产品菜单选择Edit > Preferences
在Workspace标签的Virtual Machines下,清除选择Enable复选框。

如果要对单个虚拟机设置禁用共享文件夹:

从VMware产品的菜单选择VM > Settings
在Options标签中,选择Shared Folders然后选择Disable。

厂商补丁:

VMWare

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

<a href=“http://www.vmware.com” target=“_blank”>http://www.vmware.com</a>


                                                /-----------

// mbtwc.c
#include &lt;windows.h&gt;;
int main(int argv, char *argc[]) {
~   unsigned int i, ans;
~   unsigned char buf[200];
~   for (i=1;i;i++) {
~     memset(buf, 0, 200);
~     ans = MultiByteToWideChar(CP_UTF8, 8, &amp;i, 4, buf, 100);
~     // 8 = MB_ERR_INVALID_CHARS
~     if (ans &amp;&amp; (buf[0] == '.') &amp;&amp;   (buf[1] == 0) &amp;&amp;
~        ((i &amp; 0xff) != '.'))
~       printf(&quot;%d %04x: %02x %02x %02x %02x\n&quot;, ans, i,
~             buf[0], buf[1], buf[2], buf[3]);
   }
~ }
- -----------/