Winamp多个插件整数溢出和栈溢出漏洞
发布日期:2010-10-13
更新日期:2010-10-18
受影响系统:Nullsoft Winamp <= 5.5.8.2985
描述:
BUGTRAQ ID:
44094
CVE(CAN) ID:
CVE-2010-4371
Winamp是一款流行的媒体播放器,支持多种文件格式。
Winamp的in_mkv、in_nsv、in_midi插件在处理媒体文件中的多个字段时存在整数溢出和栈溢出漏洞,用户受骗打开恶意文件就会导致执行任意代码。
-----------------------------
A] in_mkv整数溢出
-----------------------------
in_mkv插件使用了特殊函数(位于077078c0)从Matroska容器读取文本字符串,所执行的操作是读取ebml数字值(64位),根据该值(32位)加上1分配内存,之后从文件读取数据可能导致代码执行:
buff = malloc(size + 1);
if(buff) fread(buff, 1, size, fd);
-----------------------------
B] in_nsv整数溢出
-----------------------------
in_nsv插件中位于077ca422地址的函数中存在最终可导致堆溢出的漏洞。该函数首先验证文件中元数据字符串的大小,加1后将0x1fffffff字节拷贝到了堆缓冲区上,可能导致代码执行(077C8577 CALL DWORD PTR DS:[EAX+8]):
memcpy(heap_buffer, attacker_data, size >> 3);
------------------------------
C] in_midi整数溢出
------------------------------
in_midi插件在处理hmp文件时存在堆溢出。由于使用了32位的变量长度值在memcpy()中将攻击者的数据拷贝到了堆缓冲区上,而由于整数溢出该缓冲区没有进行重新分配以匹配所需的大小。
----------------------------
D] in_mod栈溢出
----------------------------
in_mod插件在处理畸形的MTM文件时存在栈溢出。仅在用户点击了播放器显示音轨的详细信息时才会触发这个漏洞。
<*来源:Luigi Auriemma (
aluigi@pivx.com)
链接:
http://secunia.com/advisories/41824/
http://aluigi.altervista.org/adv/winamp_1-adv.txt
*>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
http://aluigi.altervista.org/poc/winamp_1.zip建议:
厂商补丁:
Nullsoft
--------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://www.winamp.com/浏览次数:1958
严重程度:0(网友投票)