[漏洞编号]
CAL_20100625-1
CAL_20100625-2
CAL_20100625-3
[影响版本]
sogou_pinyin_50f 或以前
[公告]
翰海源代码审计实验室在搜狗拼音输入法里发现多个高威胁的安全漏洞,可导致攻击者执行任意代码,并将此漏洞上报给搜狐搜安全部门。8月初搜狗拼音通过客户端推送的方法已修复此安全漏洞,我们现在发布相应公告。请未使用搜狗拼音推送更新版本的及时安装搜狗拼音新的版本以避免安全威胁。
[漏洞细节]
一个高危漏洞存在于搜狗拼音处理提交的词库文件,目前新版本搜狗拼音已经禁止客户端直接关联词库文件进行安装了。
另两个漏洞存在于皮肤处理上,其中一个高危漏洞来自于搜狗拼音对ZIP压缩格式的处理,搜狗拼音的皮肤是一个ZIP文件,对ZIP的uncompress len字段处理存在问题导致堆溢出,具体细节如下
出错点在 ZipLib.dll 文件中
解压数据时会将解压数据大小加一后进行分配内存
当解压数据的尺寸为0xffffffff时,则会出现分配长度为0的内存,之后再写入到内存时则会覆盖原来内存中的信息
1000C466 8B86 B0000000 mov eax, dword ptr [esi+B0] ; 解压后字节数
1000C46C 40 inc eax ; 出错点
1000C46D 50 push eax
1000C46E E8 08DB0000 call 10019F7B ; _malloc
1000C473 59 pop ecx
1000C474 8986 B4000000 mov dword ptr [esi+B4], eax
1000C47A 8986 B8000000 mov dword ptr [esi+B8], eax
10010E69 8B45 F4 mov eax, dword ptr [ebp-C]
10010E6C 8B8E BC000000 mov ecx, dword ptr [esi+BC]
10010E72 8A57 04 mov dl, byte ptr [edi+4]
10010E75 881408 mov byte ptr [eax+ecx], dl ; 写入解压后数据
10010E78 40 inc eax
10010E79 8945 F4 mov dword ptr [ebp-C], eax
10010E7C 3B86 AC000000 cmp eax, dword ptr [esi+AC]
[验证POC]
http://www.vdisk.cn/down/index/4801593A1932
皮肤ZIP压缩处理堆溢出漏洞POC
[老版本验证下载地址]
http://www.vdisk.cn/down/index/4801585A2645
该版本用于验证此安全漏洞
[搜狗拼音新版本下载地址]
我们检测到8月2号以后的搜狗拼音输入法版本已解决以上安全问题,最新的搜狗拼音输入法下载地址如下
http://ime.sogou.com/dl/sogou_pinyin_50s.exe
[感谢]
感谢搜狐对漏洞报告的重视和及时修复
[时间线]
6月15号:翰海源发现1个词库高危安全漏洞
6月20号:翰海源向SOHU安全中心提交词库高危安全漏洞
6月21号:翰海源发现1个皮肤高危安全漏洞,1个皮肤中危安全漏洞
6月25号:翰海源向SOHU安全中心提交皮肤安全漏洞
8月2号后: 我们检测到8月2号以后的搜狗拼音输入法版本已解决以上安全问题
8月21号: 翰海源公告
About Code Audit Labs:
=====================
Code Audit Labs是南京翰海源信息技术有限公司的代码审计部门,公司是由国际资深安全研究人员在中国南京创办一家提供专业的安全测试产品/服务/咨询培训 的安全公司.旨在为各家软硬件生产厂商,行业用户提供专业的高覆盖可度量的安全测试,帮助他们改进自身产品和系统的安全.
我们希望为信息产业在开发过程之中就打造起信息安全的基石,提供安全质量,并凭借着为企业带来的价值而成为国际最专业的安全测试产品和服务的提供商