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

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

缺陷编号:wooyun-2012-011599

漏洞标题:极点五笔输入法一处内存异常释放

相关厂商:极点五笔输入法

漏洞作者: xsjswt

提交时间:2012-08-31 14:33

修复时间:2012-08-31 14:33

公开时间:2012-08-31 14:33

漏洞类型:拒绝服务

危害等级:低

自评Rank:1

漏洞状态:未联系到厂商或者厂商积极忽略

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2012-08-31: 积极联系厂商并且等待厂商认领中,细节不对外公开
2012-08-31: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

极点五笔输入法一处内存异常释放导致宿主进程退出

详细说明:

极点五笔输入法存在一处内存异常释放,导致宿主进程退出的BUG。由于在调试机器上无法复现次问题,无法进一步分析是否能利用。(问题反复出现在老大秘书的机器上,但是秘书机器有各种秘密文件,我不能上去调试,只能如此了)
极点五笔输入法7.13会记录用户输入4个键根仍然未匹配上要打的字,然后紧接着按键,且能匹配上的词组,应该是用于分析输入的那4个键与紧接的词组关系,添加词库之类。
但是在老大秘书的电脑上,频繁出现崩溃的情况(具体体现为按键快,打错字的时候经常导致qq,word等崩溃的情况)。
抓了一个qq崩溃的dump回来看,发现是试图读取已经释放的内存,但是又木有SEH处理导致的崩溃。

漏洞证明:


创建匿名FileMap分配内存




将FileMap对象map进内存里来,在我的XP SP3上map base=0xbe0000



多次输入无效后,首个有效输入会被记录


对记录的输入进行分析。
在我的调试环境下,此处内存一直未被释放,怀疑为输入特定的字符会导致别处的线程进行Unmap操作,而分析线程仍然去读取数据导致的。
因为创建map的函数返回后会紧接着做出判断


故unmap操作只能理解为程序退出的析构。
如果特定的输入能导致线程做出退出之类的判断,怀疑也能做其他的事情,因为没有环境,无法进一步分析。要分析老大不让。

修复方案:

1. 仔细分析下用户输入和处理用户输入的逻辑是否存在问题
2. 进行内存读写操作前使用IsBadReadPtr/IsBadWritePtr进行判断,虽然按照MJ的说法,这两个API并不靠谱
3. try/catch or __try/__except

版权声明:转载请注明来源 xsjswt@乌云


漏洞回应

厂商回应:

未能联系到厂商或者厂商积极拒绝