漏洞信息详情
Orbit Downloader URL处理堆溢出漏洞
- CNNVD编号:CNNVD-200804-075
- 危害等级: 超危
- CVE编号:
CVE-2008-1602
- 漏洞类型:
缓冲区溢出
- 发布时间:
2008-04-06
- 威胁类型:
远程
- 更新时间:
2008-09-05
- 厂 商:
orbit_downloader - 漏洞来源:
Diego Juarez -
漏洞简介
Orbit Downloader是用于从视频共享网站下载流媒体的下载管理器。
Orbit downloader没有正确地将URL ASCII字符串转换为Unicode,如果用户从特制的URL下载了文件的话就可能导致执行任意指令。
如果Orbit无法下载文件的话,就会在通知区域弹出气球控制:
/———–
.text:004A56D0 sub_4A56D0 proc near ; CODE XREF: sub_42AAC0+321 p
.text:004A56D0 ; sub_439610+321 p …
.text:004A56D0
.text:004A56D0 String = word ptr -2000h
.text:004A56D0 hDC = dword ptr 4
.text:004A56D0 arg_4 = dword ptr 8
.text:004A56D0 lpRect = dword ptr 0Ch
.text:004A56D0 uFormat = dword ptr 10h
.text:004A56D0
.text:004A56D0 mov eax, 2000h ; reserve 0x2000 (8192)
bytes in the stack
.text:004A56D5 call __alloca_probe
.text:004A56DA push edi
.text:004A56DB mov ecx, 800h
.text:004A56E0 xor eax, eax
.text:004A56E2 lea edi, [esp+2004h+String]
.text:004A56E6 rep stosd
.text:004A56E8 mov eax, [esp+2004h+arg_4]
.text:004A56EF pop edi
.text:004A56F0 mov ecx, [eax+8]
.text:004A56F3 mov eax, [eax+4]
.text:004A56F6 test eax, eax
.text:004A56F8 jnz short loc_4A56FF
.text:004A56FA mov eax, ds:?_C@?1??_Nullstr@? basic_string@DU?
char_traits@D@std@@V? allocator@D@2@@std@@CAPBDXZ@4DB ;
.text:004A56FF
.text:004A56FF loc_4A56FF: ; CODE XREF: sub_4A56D0+28 j
.text:004A56FF lea edx, [esp+2000h+String]
.text:004A5703 push 2000h ; cchWideChar (write up to
16384 bytes to the buffer)
.text:004A5708 push edx ; lpWideCharStr
.text:004A5709 push ecx ; cchMultiByte
.text:004A570A push eax ; lpMultiByteStr
.text:004A570B push 0 ; dwFlags
.text:004A570D push 0 ; CodePage
.text:004A570F call ds:MultiByteToWideChar
.text:004A5715 mov ecx, [esp+2000h+uFormat]
.text:004A571C mov edx, [esp+2000h+lpRect]
.text:004A5723 push ecx ; uFormat
.text:004A5724 mov ecx, [esp+2004h+hDC]
.text:004A572B push edx ; lpRect
.text:004A572C push eax ; nCount
.text:004A572D lea eax, [esp+200Ch+String]
.text:004A5731 push eax ; lpString
.text:004A5732 push ecx ; hDC
.text:004A5733 call ds:DrawTextW
.text:004A5739 add esp, 2000h
.text:004A573F retn
.text:004A573F endp ;sub_4A56D0
– ———–/
Win32 API函数
/———–
int MultiByteToWideChar(
UINT CodePage,
DWORD dwFlags,
LPCSTR lpMultiByteStr,
int cbMultiByte,
LPWSTR lpWideCharStr,
int cchWideChar
);
– ———–/
的cchWideChar参数应为lpWideCharStr所说明的WCHAR值缓冲区大小。攻击者可以提供大于4096字节的下载URL,如果下载失败的话MultiByteToWideChar就会在栈上溢出8192字节的缓冲区,并最多写入0x2000 WCHAR(16384字节),覆盖内部结构导致执行任意指令。
参考网址
来源: BID
名称: 28541
链接:http://www.securityfocus.com/bid/28541
来源: BUGTRAQ
名称: 20080403 CORE-2008-0314 – Orbit Downloader “Download failed” buffer overflow
链接:http://www.securityfocus.com/archive/1/archive/1/490458/100/0/threaded
来源: MISC
链接:http://www.coresecurity.com/?action=item&id=2211
来源: XF
名称: orbitdownloader-url-bo(41649)
链接:http://xforce.iss.net/xforce/xfdb/41649
来源: VUPEN
名称: ADV-2008-1101
链接:http://www.frsirt.com/english/advisories/2008/1101
来源: SREASON
名称: 3798
链接:http://securityreason.com/securityalert/3798
来源: SECUNIA
名称: 29669