mpg123不正确计算帧大小内存破坏漏洞
发布日期:2003-01-16
更新日期:2003-01-22
受影响系统:mpg123 mpg123 pre0.59s
mpg123 mpg123 0.59r
描述:
BUGTRAQ ID:
6629
CVE(CAN) ID:
CVE-2003-0577
mpg123是一款使用于Linux和Unix操作系统下的MP3播放程序。
mpg123不正确计算帧大小(framesize),远程攻击者可以利用这个漏洞构建恶意MP3文件,当mpg123播放时导致程序崩溃,可能以mpg123进程权限在系统上执行任意指令。
mpg123在播放零字节大小的MP3文件时,会由于分配负的帧大小缓冲区而崩溃。可能以mpg123进程权限在系统上执行任意指令,不过没有得到证实。
<*来源:3APA3A (
3APA3A@security.nnov.ru)
链接:
http://marc.theaimsgroup.com/?l=bugtraq&m=104274357314340&w=2
*>
建议:
临时解决方法:
如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:
* 3APA3A <
3APA3A@SECURITY.NNOV.RU>提供如下第三方补丁:
--- common.old 2003-01-15 21:42:15.000000000 +0300
+++ common.c 2003-01-15 21:42:38.000000000 +0300
@@ -123,7 +123,7 @@
return FALSE;
if(!((head>>17)&3))
return FALSE;
- if( ((head>>12)&0xf) == 0xf)
+ if( ((head>>12)&0xf) == 0xf || (head>>12)&0xf) == 0)
return FALSE;
if( ((head>>10)&0x3) == 0x3 )
return FALSE;
for pre0.59s:
--- common.old 2003-01-15 20:51:15.000000000 +0300
+++ common.c 2003-01-15 20:25:26.000000000 +0300
@@ -127,7 +127,7 @@
return FALSE;
if(!((head>>17)&3))
return FALSE;
- if( ((head>>12)&0xf) == 0xf || (head>>12)&0xf) == 0)
+ if( ((head>>12)&0xf) == 0xf)
return FALSE;
if( ((head>>10)&0x3) == 0x3 )
return FALSE;
@@ -140,7 +140,7 @@
* -1: giving up
* 1: synched
*/
-#define MAX_INPUT_FRAMESIZE 1920
+#define MAX_INPUT_FRAMESIZE 4096
#define SYNC_HEAD_MASK 0xffff0000
#define SYNC_HEAD_MASK_FF 0x0000f000
#define LOOK_AHEAD_NUM 3
@@ -237,6 +237,8 @@
}
}
else {
+ if(frameInfo.framesize > MAX_INPUT_FRAMESIZE) return 0;
+
if(!rds->read_frame_body(rds,dummybuf,frameInfo.framesize))
return 0;
厂商补丁:
mpg123
------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://www.mpg123.de浏览次数:2707
严重程度:0(网友投票)