多家厂商以不安全方式调用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(网友投票)