安全研究

安全漏洞
Libtunepimp多个远程缓冲区溢出漏洞

发布日期:2006-07-13
更新日期:2006-07-14

受影响系统:
MusicBrainz TunePimp 0.4.2
MusicBrainz TunePimp 0.3
描述:
BUGTRAQ  ID: 18961

TunePimp库是一个音频应用开发库,允许开发人员打开音乐标签文件进行识别/查询。

libtunepimp客户端程序存在3个缓冲区溢出漏洞,由于程序中的3个栈变量分配分配了255、255和100字节,但最多却可以向其写入256个字节,攻击者可能利用此漏洞执行任意指令。

Backtrace: Thread 5 (Thread -1247491168 (LWP 13178)):
#0 0x00a4a402 in __kernel_vsyscall ()
#1 0x01b2d069 in raise () from /lib/libc.so.6
#2 0x01b2e671 in abort () from /lib/libc.so.6
#3 0x01b61a4b in __libc_message () from /lib/libc.so.6
#4 0x01be2785 in __stack_chk_fail () from /lib/libc.so.6
#5 0x03360d99 in __stack_chk_fail_local () from /usr/lib/libtunepimp.so.3
#6 0x03343135 in LookupTRM::lookup (this=0xb5a4c1e4) at lookuptools.cpp:205
#7 0x00000000 in ?? ()

<*来源:kevin.kofler (kevin.kofler@chello.at
  
  链接:http://bugs.musicbrainz.org/ticket/1764
*>

建议:
厂商补丁:

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

http://musicbrainz.org/products/tunepimp/index.html

kevin.kofler@chello.at提供了以下非官方修复:

--- lookuptools.cpp.orig    2006-01-28 21:35:42.000000000 +0100
+++ lookuptools.cpp    2006-07-08 04:07:05.000000000 +0200
@@ -51,7 +51,7 @@
     musicbrainz_t  o;
     char          *args[7];
     int            ret, trackNum;
-    char           error[255], data[255], trackURI[256],
+    char           error[256], data[256], trackURI[256],
                    artistURI[256], albumURI[256];
     char           temp[100], duration[100], status[100];

@@ -160,7 +160,7 @@
             if (mb_Select1(o, MBS_SelectReleaseDate, j))
             {
                 // Pull back the release date and release country
-                if (mb_GetResultData(o, MBE_ReleaseGetDate, temp, 256))
+                if (mb_GetResultData(o, MBE_ReleaseGetDate, temp, 100))
                 {
                     int month = 0, day = 0, year = 0;

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