当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2013-038943

漏洞标题:百度输入法调用CreateProcess函数漏洞

相关厂商:百度

漏洞作者: YY-2012

提交时间:2013-10-11 17:49

修复时间:2014-01-09 17:50

公开时间:2014-01-09 17:50

漏洞类型:设计错误/逻辑缺陷

危害等级:中

自评Rank:10

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2013-10-11: 细节已通知厂商并且等待厂商处理中
2013-10-11: 厂商已经确认,细节仅向厂商公开
2013-10-14: 细节向第三方安全合作伙伴开放
2013-12-05: 细节向核心白帽子及相关领域专家公开
2013-12-15: 细节向普通白帽子公开
2013-12-25: 细节向实习白帽子公开
2014-01-09: 细节向公众公开

简要描述:

测试版本:2.6.2.185

详细说明:

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的文件的话,就可能执行该文件而不是预期的应用程序。

百度输入法在启动进程baidupinyin.exe的时候用了CreateProcess函数 且未用引号包含路径 默认安装在program files目录下 如果在安装盘的根目录写入一个program.exe 则program.exe会被执行

漏洞证明:

1.jpg

修复方案:

对传入给CreateProcess函数的名称和参数用双引号””进行包含

版权声明:转载请注明来源 YY-2012@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:7

确认时间:2013-10-11 21:02

厂商回复:

感谢对百度安全的关注,安全组立即联系业务部门处理此问题。
--“百度,因你更安全”

最新状态:

暂无