iDefense Security Advisory 04.16.07 - Remote exploitation of a buffer overflow vulnerability in Clam AntiVirus' ClamAV allows attackers to execute arbitrary code with the privileges of the affected process. The vulnerability exists within the cab_unstore() function in libclamav, the library used by clamd to scan various file types. A 32-bit signed integer is taken from the packet and compared against the sizeof() the destination buffer. However, the sizeof() return value is improperly casted to a signed integer. By supplying a negative value, an attacker can pass cause the comparison to succeed. This eventually leads to an exploitable stack-based buffer overflow. iDefense has confirmed the existence of this vulnerability in ClamAV in versions 0.90rc3 through 0.90.1.
a0e03ca2f3785c29263dffc681e45f0d4c2adfe3bada8fefa43b8334247040c6
Clam AntiVirus ClamAV CAB File Unstore Buffer Overflow Vulnerability
iDefense Security Advisory 04.16.07
http://labs.idefense.com/intelligence/vulnerabilities/
Apr 16, 2007
I. BACKGROUND
Clam AntiVirus is a multi-platform GPL anti-virus toolkit. ClamAV is
often integrated into e-mail gateways and used to scan e-mail traffic
for viruses. Cabinet, or CAB, files are the Microsoft Windows native
format for storing compressed archives. More information can be found
on the vendor's website at the following URL.
http://www.clamav.net/
II. DESCRIPTION
Remote exploitation of a buffer overflow vulnerability in Clam
AntiVirus' ClamAV allows attackers to execute arbitrary code with the
privileges of the affected process.
The vulnerability exists within the cab_unstore() function in libclamav,
the library used by clamd to scan various file types. A 32-bit signed
integer is taken from the packet and compared against the sizeof() the
destination buffer. However, the sizeof() return value is improperly
casted to a signed integer. By supplying a negative value, an attacker
can pass cause the comparison to succed. This eventually leads to an
exploitable stack-based buffer overflow.
III. ANALYSIS
Successful exploitation of this vulnerability results in code execution
with the privileges of the process using libclamav.
In the case of the clamd program, this will result in executing code
with the privileges of the clamav user. Unsuccessful exploitation
results in the clamd process crashing.
This vulnerability only exists in the recent 0.9x versions of ClamAV. As
such, the vulnerable code is not present in the versions distributed
with Red Hat Enterprise or other open source distributions.
IV. DETECTION
iDefense has confirmed the existence of this vulnerability in ClamAV in
versions 0.90rc3 through 0.90.1.
V. WORKAROUND
iDefense is currently unaware of any workaround for this issue.
VI. VENDOR RESPONSE
The ClamAV team has addressed this vulnerability within version 0.90.2.
VII. CVE INFORMATION
The Common Vulnerabilities and Exposures (CVE) project has assigned the
name CVE-2007-1997 to this issue. This is a candidate for inclusion in
the CVE list (http://cve.mitre.org/), which standardizes names for
security problems.
VIII. DISCLOSURE TIMELINE
04/05/2007 Initial vendor notification
04/06/2007 Initial vendor response
04/16/2007 Coordinated public disclosure
IX. CREDIT
The discoverer of this vulnerability wishes to remain anonymous.
Get paid for vulnerability research
http://labs.idefense.com/methodology/vulnerability/vcp.php
Free tools, research and upcoming events
http://labs.idefense.com/
X. LEGAL NOTICES
Copyright © 2007 iDefense, Inc.
Permission is granted for the redistribution of this alert
electronically. It may not be edited in any way without the express
written consent of iDefense. If you wish to reprint the whole or any
part of this alert in any other medium other than electronically,
please e-mail customerservice@idefense.com for permission.
Disclaimer: The information in the advisory is believed to be accurate
at the time of publishing based on currently available information. Use
of the information constitutes acceptance for use in an AS IS condition.
There are no warranties with regard to this information. Neither the
author nor the publisher accepts any liability for any direct,
indirect, or consequential loss or damage arising from use of, or
reliance on, this information.