安全研究

安全漏洞
SoX st_wavstartread()远程缓冲区溢出漏洞

发布日期:2004-07-28
更新日期:2004-08-02

受影响系统:
SoX SoX 12.17.4
SoX SoX 12.17.3
SoX SoX 12.17.2
描述:
CVE(CAN) ID: CVE-2004-0557

SoX是一款开放源代码的音频格式转换工具。

SoX在处理WAV文件时存在缓冲区溢出问题,远程攻击者可以利用这个漏洞构建恶意文件,诱使用户使用SoX处理,可能以进程权限在系统上执行任意指令。

问题存在于'wav.c'文件的st_wavstartread()函数中,'sox'和'play'命令在调用此函数时不正确检查用户提供的变量数据,提交超长数据可破坏缓冲区,存在执行任意指令的可能。攻击者可以利用恶意文件诱使用户来处理以利用此漏洞。

<*来源:Ulf Harnhammar (ulfh@update.uu.se
  
  链接:http://marc.theaimsgroup.com/?t=109112102300002&r=1&w=2
*>

建议:
临时解决方法:

如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:

* Ulf Harnhammar提供如下补丁方案:

--- wav.c.old 2002-12-31 04:19:22.000000000 +0100
+++ wav.c 2004-07-18 19:25:46.000000000 +0200
@@ -917,6 +917,10 @@
} else if(strncmp(magic,"ICRD",4) == 0){
st_readdw(ft,&len);
len = (len + 1) & ~1;
+ if (len > 254) {
+ fprintf(stderr, "Possible buffer overflow hack attack (ICRD)!\n");
+ exit(109);
+ }
st_reads(ft,text,len);
if (strlen(ft->comment) + strlen(text) < 254)
{
@@ -926,6 +930,10 @@
} else if(strncmp(magic,"ISFT",4) == 0){
st_readdw(ft,&len);
len = (len + 1) & ~1;
+ if (len > 254) {
+ fprintf(stderr, "Possible buffer overflow hack attack (ISFT)!\n");
+ exit(110);
+ }
st_reads(ft,text,len);
if (strlen(ft->comment) + strlen(text) < 254)
{

厂商补丁:

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

http://sox.sourceforge.net/

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