安全研究

安全漏洞
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(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障