手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>服务器技术>安全防护>列表

Clam Anti-Virus ClamAV MS-Expand文件解析拒绝服务漏洞

来源:互联网 作者:西部数码 时间:2008-04-09
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!
Clam Anti-Virus ClamAV MS-Expand文件解析拒绝服务漏洞

发布日期:2005-06-30
更新日期:2005-06-30

受影响系统:
ClamAV ClamAV < 0.86
不受影响系统:
ClamAV ClamAV 0.86
描述:
BUGTRAQ ID: 14090
CVE(CAN) ID: CVE-2005-1922

Clam AntiVirus是Unix的GPL杀毒工具包,很多邮件网关产品都在使用。

Clam AntiVirus ClamAV中存在输入验证错误,允许攻击者导致拒绝服务。

漏洞起因是处理异常情况的方式。成功利用这个漏洞的攻击者可以耗尽文件描述符池和内存。如果没有文件描述符的话病毒检测功能就会失效。

<*来源:iDEFENSE

链接:http://www.idefense.com/application/poi/display?id=276&type=vulnerabilities
*>

测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

static int cli_scanszdd(...)
{
[...]
FILE *tmp = NULL, *in;

cli_dbgmsg("in cli_scanmscomp()\n");

if((in = fdopen(dup(desc), "rb")) == NULL) {
cli_dbgmsg("SZDD: Can't open descriptor %d\n", desc);
return CL_EMSCOMP;
}

if((tmp = tmpfile()) == NULL) {
cli_dbgmsg("SZDD: Can't generate temporary file.\n");
fclose(in);
return CL_ETMPFILE;
}

if(cli_msexpand(in, tmp) == -1) {
cli_dbgmsg("SZDD: msexpand failed.\n");
return CL_EMSCOMP;
}

[...]
}

每次cli_msexpand()函数失效时都会泄漏2个文件描述符('in'和'tmp')。因为这些描述符都是由fopen()打开的,因此还会导致内存泄漏(2 * 364字节)。这样攻击者就可以使用大约1000个畸形文件很快就耗尽所有可用的文件描述符。

建议:
临时解决方法:

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

* 通过--no-archive flag禁止扫描文档文件,但这可能降低杀毒引擎的性能。

厂商补丁:

ClamAV
------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载0.86版本:

http://prdownloads.sourceforge.net/clamav/clamav-0.86.1.tar.gz?download

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!