BUGTRAQ ID: 35052 Winamp是一款流行的媒体播放器,支持多种文件格式。 Winamp在解析.maki文件(一种编译过的脚本文件)时没有执行正确的类型赋值,可能导致缓冲区溢出。攻击者可以通过网页或下载对用户提供流行皮肤文件,该皮肤文件利用maki脚本在当前用户环境中执行任意代码。 Winamp的流行皮肤脚本引擎从.maki文件中读取字符串,字符串的格式如下(多字节值为little endian字节序列): Offset Size Description --------- ------ -------------------------------------- 0x0000 4 Unknown (it seems to be a type code) 0x0004 2 Length (Y) 0x0006 Y Function name 当gen_ff.dll解析.maki文件时,会读取两个字节并执行符号扩展,这可能触发栈溢出。 以下显示的是本地缓冲区大小(0x10008): .text:12094DAB var_10144= byte ptr -10144h .text:12094DAB MultiByteStr= byte ptr -13ch 如果字符串大小大于或等于0x8000,edi就会为0xFFFFhhhh(这里0xhhhh是两个字节的输入): .text:12094F62 loc_12094F62: .text:12094F62 mov ax, [ebx] .text:12094F65 movsx edi, ax ; sign extension .text:12094F68 inc ebx .text:12094F69 push edi ; Size .text:12094F6A inc ebx .text:12094F6B lea eax, [ebp+MultiByteStr] .text:12094F71 push ebx ; Src .text:12094F72 push eax ; Dst, buffer is located in the stack .text:12094F73 call memmove .text:120951E5 loc_120951E5: .text:120951E5 mov edi,...
BUGTRAQ ID: 35052 Winamp是一款流行的媒体播放器,支持多种文件格式。 Winamp在解析.maki文件(一种编译过的脚本文件)时没有执行正确的类型赋值,可能导致缓冲区溢出。攻击者可以通过网页或下载对用户提供流行皮肤文件,该皮肤文件利用maki脚本在当前用户环境中执行任意代码。 Winamp的流行皮肤脚本引擎从.maki文件中读取字符串,字符串的格式如下(多字节值为little endian字节序列): Offset Size Description --------- ------ -------------------------------------- 0x0000 4 Unknown (it seems to be a type code) 0x0004 2 Length (Y) 0x0006 Y Function name 当gen_ff.dll解析.maki文件时,会读取两个字节并执行符号扩展,这可能触发栈溢出。 以下显示的是本地缓冲区大小(0x10008): .text:12094DAB var_10144= byte ptr -10144h .text:12094DAB MultiByteStr= byte ptr -13ch 如果字符串大小大于或等于0x8000,edi就会为0xFFFFhhhh(这里0xhhhh是两个字节的输入): .text:12094F62 loc_12094F62: .text:12094F62 mov ax, [ebx] .text:12094F65 movsx edi, ax ; sign extension .text:12094F68 inc ebx .text:12094F69 push edi ; Size .text:12094F6A inc ebx .text:12094F6B lea eax, [ebp+MultiByteStr] .text:12094F71 push ebx ; Src .text:12094F72 push eax ; Dst, buffer is located in the stack .text:12094F73 call memmove .text:120951E5 loc_120951E5: .text:120951E5 mov edi, [ebx] .text:120951E7 add ebx, 4 .text:120951EA mov ax, [ebx] .text:120951ED movsx esi, ax ; sign extension .text:120951F0 inc ebx .text:120951F1 push esi ; Size .text:120951F2 inc ebx .text:120951F3 lea eax, [ebp+var_10144] .text:120951F9 push ebx ; Src .text:120951FA push eax ; Dst, buffer is located in the stack .text:120951FB call memmove Nullsoft Winamp < 5.552 厂商补丁: Nullsoft -------- 目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载: <a href="http://www.winamp.com/" target="_blank" rel=external nofollow>http://www.winamp.com/</a>