|
re:Clam Anti-Virus Clam...
Clam Anti-Virus ClamAV MS-Expand文件解析拒绝服务漏洞<br>
<br>
发布日期:2005-06-30<br>
更新日期:2005-06-30<br>
<br>
受影响系统:<br>
ClamAV ClamAV < 0.86<br>
不受影响系统:<br>
ClamAV ClamAV 0.86<br>
描述:<br>
--------------------------------------------------------------------------------<br>
BUGTRAQ ID: 14090<br>
CVE(CAN) ID: CAN-2005-1922<br>
<br>
Clam AntiVirus是Unix的GPL杀毒工具包,很多邮件网关产品都在使用。<br>
<br>
Clam AntiVirus ClamAV中存在输入验证错误,允许攻击者导致拒绝服务。<br>
<br>
漏洞起因是处理异常情况的方式。成功利用这个漏洞的攻击者可以耗尽文件描述符池和内存。如果没有文件描述符的话病毒检测功能就会失效。<br>
<br>
<*来源:iDEFENSE<br><br>链接:<a target=_blank href=http://www.idefense.com/application/poi/display?id=276&type=vulnerabilities>http://www.idefense.com/application/poi/display?id=276&type=vulnerabilities</a><br>
*><br>
<br>
测试方法:<br>
--------------------------------------------------------------------------------<br>
<br>
警 告<br>
<br>
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!<br>
<br>
static int cli_scanszdd(...)<br>{<br>[...]<br>FILE *tmp = NULL, *in;<br>
<br>cli_dbgmsg("in cli_scanmscomp()\n");<br>
<br>if((in = fdopen(dup(desc), "rb")) == NULL) {<br>cli_dbgmsg("SZDD: Can't open descriptor %d\n", desc);<br>return CL_EMSCOMP;<br>}<br>
<br>if((tmp = tmpfile()) == NULL) {<br>cli_dbgmsg("SZDD: Can't generate temporary file.\n");<br>fclose(in);<br>return CL_ETMPFILE;<br>}<br>
<br>if(cli_msexpand(in, tmp) == -1) {<br>cli_dbgmsg("SZDD: msexpand failed.\n");<br>return CL_EMSCOMP;<br>}<br>
<br>[...]<br>}<br>
<br>
每次cli_msexpand()函数失效时都会泄漏2个文件描述符('in'和'tmp')。因为这些描述符都是由fopen()打开的,因此还会导致内存泄漏(2 * 364字节)。这样攻击者就可以使用大约1000个畸形文件很快就耗尽所有可用的文件描述符。<br>
<br>
建议:<br>
--------------------------------------------------------------------------------<br>
临时解决方法:<br>
<br>
如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:<br>
<br>
* 通过--no-archive flag禁止扫描文档文件,但这可能降低杀毒引擎的性能。<br>
<br>
厂商补丁:<br>
<br>
ClamAV<br>
------<br>
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载0.86版本:<br>
<br>
<a target=_blank href=http://prdownloads.sourceforge.net/clamav/clamav-0.86.1.tar.gz?download>http://prdownloads.sourceforge.net/clamav/clamav-0.86.1.tar.gz?download</a><br>
|
|