漏洞概要
关注数(24)
关注此漏洞
漏洞标题:百度COM控件BaiduSetupAx存在远程栈溢出漏洞
相关厂商:百度
提交时间:2014-12-02 18:01
修复时间:2015-03-02 18:02
公开时间:2015-03-02 18:02
漏洞类型:拒绝服务
危害等级:中
自评Rank:6
漏洞状态:厂商已经确认
Tags标签:
无
漏洞详情
披露状态:
2014-12-02: 细节已通知厂商并且等待厂商处理中
2014-12-03: 厂商已经确认,细节仅向厂商公开
2014-12-06: 细节向第三方安全合作伙伴开放
2015-01-27: 细节向核心白帽子及相关领域专家公开
2015-02-06: 细节向普通白帽子公开
2015-02-16: 细节向实习白帽子公开
2015-03-02: 细节向公众公开
简要描述:
COM控件BaiduSetupAx 参数长度验证不完整,畸形参数可导致栈溢出。
详细说明:
这个控件会到http://%s.baidu.com:%d/%s 这样的一个地址下载程序安装运行,下载的文件文件会保存到本地缓存目录,而缓存文件的文件名是可以通过属性参数控制的,BaiduSetupAxPackageChannel这个属性指定缓存文件的名字。而属性参数是没有长度限制的,我们可以给PackageChannel赋值很长的串。
文件名属性参数 axBaiduSetupCtrl1.PackageChannel= AAAAAAAAAAAAAAAA.........这是一个长串
缓存文件路径 C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\Baidu\BaiduSetupAx\\
HTTP缓存文件名的格式 HTTP{97500BA6-87CA-420C-8889-BFFA3868D8A4}_{axBaiduSetupCtrl1.PackageChanne}.exe
P2P 缓存文件名的格式 P2P{0FF9FDCD-76A9-4E5B-903E-7A35FC302F4B}{axBaiduSetupCtrl1.PackageChanne}.exe
最后会组成这样的缓存文件字符串
接下来会使用循环把缓存文件名拷贝到堆栈。
问题就在这里,它会把源串全部完全拷贝,而没有检查目标地址的大小。
所用当axBaiduSetupCtrl1.PackageChannel的值足够大时就会发生堆栈溢出
最后 GS Cookie检查抛出异常
__security_check_cookie((unsigned int)&v61 ^ v69);
漏洞证明:
http://drops.wooyun.org/wp-content/uploads/2014/12/BaiduSetupAx_0.rar
附上原始ActiveX控件给伙伴们研究。
修复方案:
1. axBaiduSetupCtrl1.PackageChannel 参数长度限制
2. 内部拷贝代码,检查目标地址的大小
版权声明:转载请注明来源 路人甲@乌云
漏洞回应
厂商回应:
危害等级:中
漏洞Rank:6
确认时间:2014-12-03 12:13
厂商回复:
感谢提交,已通知业务部门处理
最新状态:
暂无
漏洞评价:
评论
-
2015-03-03 00:08 |
静默 ( 路人 | Rank:8 漏洞数:1 | 安全小白)
如果这个漏洞是cncert评分,rank可能能上10