金山词霸缓冲区溢出漏洞 by Sowhat 2004.10.26 CN:http://secway.org/Advisory/Ad20041026CN.txt EN:http://secway.org/Advisory/Ad20041026EN.txt 厂商: 金山公司 受影响的产品: 金山词霸 2002 金山词霸 2003 金山词霸 2005 CVE:CAN-2004-1494 OSVDB ID: 11348 背景: 金山词霸是一款国内非常流行的翻译软件,很好用 :-) 更多信息请查看www.kingsoft.com 描述: 当金山词霸的屏幕取词功能打开以后,默认采用“鼠标取词”,即当用户的鼠标移动到 某个单词或句子时,金山词霸会自动匹配词库,显示翻译,如果没有找到与该词或句 子的相匹配的翻译,则显示类似“JUSTFORTEST 没找到”的提示信息。 当金山词霸检测到鼠标移动,指向某个单词时,会首先将这个单词copy到一个缓冲区, 由于缓冲区大小设置以及处理方式存在问题,所以当用户鼠标指向一个大于等于88个 字节的字符串时,xdict.exe的cpu占用率猛增到99% ,系统挂起,必须重起机器。 注意:根据朋友的测试,在Win2k Pro + 金山词霸2005的环境下,系统不会挂起, 在300多个'A'的情况下,金山词霸首先会自动关闭屏幕取词功能,加长字符串以后, 金山词霸会自动关闭。(我没有环境仔细测试,:) Exploit: 打开记事本,输入88个A AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 打开金山词霸及其“屏幕取词”功能,将鼠标指向这个字符串,系统就会挂掉。 精心构造的字符串或许可以执行任意命令 解决方法: 在厂商没有推出相应的补丁之前,建议用户将屏幕取词设置为通过CTRL键提取。 厂商回应: 2004.10.26 在金山网站在线提交 2004.10.27 金山公司回复已经交给相关人员进行测试 没有进一步的实质性的回复 :-) 后记:这个bug是我在无意中发现的,危害很小,但是挺有趣。 感谢MiaoDeyu对2005版的测试,感谢ITS的所有成员。