安全研究

安全漏洞
WinRAR文件名处理溢出漏洞

发布日期:2005-12-21
更新日期:2005-12-21

受影响系统:
WinRar WinRar 3.51
描述:
BUGTRAQ  ID: 15999

WinRAR是一款非常流行的压缩/解压工具。

WinRAR在处理畸形文件名时存在漏洞,攻击者可能利用此漏洞在客户机上执行任意指令。

在通过鼠标右键的“Add to archive”命令创建压缩文件时,如果所要压缩文件的文件名中包含有非默认代码页和非ANSI字符的话,就会导致缓冲区溢出,具体如下:

[1]: %eax应为filename-base和strlen的和,但在上述环境中%eax会出现错误。[2]: WideCharToMultiByte API会覆盖[1]所引用的指针。

0048CFAE mov edx,dword ptr ds:[4a330c]
0048CFB4 mov eax, edx
0048D028 mov ecx, [eax]           ; [1]
0048D08B mov [edx+ecx], ebx

004A330C  2C AF A0 00

00A0AEEC  43 3A 5C 44 6F 63 75 6D 65 6E 74 73 20 61 6E 64
00A0AEFC  20 53 65 74 74 69 6E 67 73 5C 41 64 6D 69 6E 69
00A0AF0C  73 74 72 61 74 6F 72 5C B9 D9 C5 C1 20 C8 AD B8
00A0AF1C  E9 5C 3F E9 A9 3F 3F 3F D9 A5 3F 3F 3F 3F DB F5
00A0AF2C  2E 64 6F 63

----------------------

0040ACC4 mov ecx, 10000000h            ; cbMultiByte
0040ACC9 mov edx, [ebp+lpMultiByteStr] ; lpMultiByteStr
0040ACCF mov eax, esi                  ; lpWideCharStr
0040ACD1 call sub_40F874

0040F874 push ebx
0040F875 push esi
0040F876 mov esi,ecx
0040F878 mov bl,1
0040F87A push 0                   ; /pDefaultCharUsed = NULL
0040F87C push 0                   ; |pDefaultChar = NULL
0040F87E push esi                 ; |MultiByteCount = 10000000h
0040F87F push edx                 ; |MultiByteStr = [2]
0040F880 push -1                  ; |WideCharCount = FFFFFFFFh
0040F882 push eax                 ; |WideCharStr
0040F883 push 0                   ; |Options = 0
0040F885 push 0                   ; |CodePage = CP_ACP
0040F887 call WideCharToMultiByte ; \WideCharToMultiByte

攻击者可以利用这个漏洞执行任意代码,但利用起来非常困难。

<*来源:c.y. wang (agoanywhere@hotmail.com
  
  链接:http://marc.theaimsgroup.com/?l=bugtraq&m=113520258023185&w=2#2
*>

建议:
厂商补丁:

WinRar
------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

http://www.rarlab.com

浏览次数:3674
严重程度:1(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障