漏洞概要
关注数(24)
关注此漏洞
漏洞标题:360压缩3.2.0.2030栈缓冲区溢出+空指针引用
提交时间:2014-12-03 23:32
修复时间:2015-03-03 23:34
公开时间:2015-03-03 23:34
漏洞类型:设计错误/逻辑缺陷
危害等级:高
自评Rank:14
漏洞状态:厂商已经确认
Tags标签:
无
漏洞详情
披露状态:
2014-12-03: 细节已通知厂商并且等待厂商处理中
2014-12-05: 厂商已经确认,细节仅向厂商公开
2014-12-08: 细节向第三方安全合作伙伴开放
2015-01-29: 细节向核心白帽子及相关领域专家公开
2015-02-08: 细节向普通白帽子公开
2015-02-18: 细节向实习白帽子公开
2015-03-03: 细节向公众公开
简要描述:
360压缩处理ZIP文件时数据连接不当导致栈缓冲区溢出PoC1 (BufferOverrun.zip,记得往下点两层)。另附一个空指针引用的PoC2 (NullPointerDef.zip,打开就崩了)。
(这么弄会掉粉的……- -)
0:000> k
ChildEBP RetAddr
WARNING: Stack unwind information not available. Following frames may be wrong.
001289e8 7c98d144 360zip+0x7127e
00128a50 00410041 ntdll!RtlDebugAllocateHeap+0x281
00128a60 00410041 360zip+0x10041
00128a64 0041005c 360zip+0x10041
00128a68 00410041 360zip+0x1005c
00128a6c 00410041 360zip+0x10041
00128a70 00410041 360zip+0x10041
00128a74 00410041 360zip+0x10041
00128a78 00410041 360zip+0x10041
00128a7c 00410041 360zip+0x10041
00128a80 00410041 360zip+0x10041
00128a84 00410041 360zip+0x10041
00128a88 00410041 360zip+0x10041
00128a8c 00410041 360zip+0x10041
详细说明:
虽然考虑了一层路径长度最大应该是MAX_PATH,但是完全没有考虑到上下两层文件夹的名字加起来那就不一定是这个数字了,所以在360zip+0x7124b 处两个字符串拷贝函数处扑街了,拷贝完以后发生栈缓冲区溢出。还好有Security Cookies罩着。
问题在:
上述有问题的函数整理如下(当是伪代码吧):
漏洞证明:
and。。poc2:
修复方案:
使用_s拷贝函数
或者好好校验要写入缓冲区的数据内容
漏洞回应
厂商回应:
危害等级:高
漏洞Rank:10
确认时间:2014-12-05 13:29
厂商回复:
感谢白帽子报告此问题,这是360压缩在处理畸形格式文件时发生的溢出漏洞,我们将尽快修复此漏洞。
最新状态:
暂无