安全研究

安全漏洞
多家厂商以不安全方式调用CreateProcess()函数漏洞

发布日期:2005-11-15
更新日期:2005-11-16

受影响系统:
Real Networks RealPlayer 10.5
VMWare VMWare Workstation 5.0.0 build-13124
Kaspersky Labs Kaspersky Antivirus for Windows File Servers 5.0
Apple iTunes 4.7.1.30
Microsoft Antispyware 1.0.509 (Beta 1)
描述:
BUGTRAQ  ID: 15448
CVE(CAN) ID: CVE-2005-2936,CVE-2005-2937,CVE-2005-2938,CVE-2005-2939,CVE-2005-2940

Microsoft Windows API使用CreateProcess()函数创建新的进程及其主线程。

CreateProcess()函数的格式如下:

BOOL CreateProcess(
  LPCTSTR lpApplicationName,
  LPTSTR lpCommandLine,
  LPSECURITY_ATTRIBUTES lpProcessAttributes,
  LPSECURITY_ATTRIBUTES lpThreadAttributes,
  BOOL bInheritHandles,
  DWORD dwCreationFlags,
  LPVOID lpEnvironment,
  LPCTSTR lpCurrentDirectory,
  LPSTARTUPINFO lpStartupInfo,
  LPPROCESS_INFORMATION lpProcessInformation
);

lpApplicationName变量包含有将要执行模块的名称,但可能是空值。在这种情况下,所执行的模块名称将会是lpCommandLine字符串中的第一个空白划定符。

如果lpApplicationName中包含有空值,lpCommandLine变量中的完整模块路径包含有空白且没有包含在引号中的话,就可能执行其他程序,如下所示:

   CreateProcess(
      NULL,
      c:\program files\sub dir\program.exe,
      ...
   );

在这种情况下,系统在解释文件路径时会扩展字符串,直到遇到执行模块。上面例子中的字符串可能被解释为:
   c:\program.exe files\sub dir\program name
   c:\program files\sub.exe dir\program name
   c:\program files\sub dir\program.exe

因此,如果c:\目录中存在名为program.exe的文件的话,就可能执行该文件而不是预期的应用程序。

<*来源:iDEFENSE
  
  链接:http://www.idefense.com/application/poi/display?id=340&type=vulnerabilities&flashstatus=true
*>

建议:
临时解决方法:

* 确保不要在可能遭到攻击的位置存储不需要的文件。

厂商补丁:

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

http://www.apple.com/itunes/download/

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