漏洞概要 关注数(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标签: 无
漏洞详情
披露状态:
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的文件的话,就可能执行该文件而不是预期的应用程序。
漏洞证明:
修复方案:
对传入给CreateProcess函数的名称和参数用双引号””进行包含
版权声明:转载请注明来源 YY-2012@乌云
漏洞回应
厂商回应:
危害等级:中
漏洞Rank:7
确认时间:2013-10-11 21:02
厂商回复:
感谢对百度安全的关注,安全组立即联系业务部门处理此问题。
--“百度,因你更安全”
最新状态:
暂无