Clam AntiVirus Buffer Overflow in cab_unstore() Lets Remote Users Execute Arbitrary Code
SecurityTracker Alert ID: 1017921|
SecurityTracker URL: http://securitytracker.com/id/1017921
(Links to External Site)
Date: Apr 16 2007
Execution of arbitrary code via network, User access via network|
Fix Available: Yes Vendor Confirmed: Yes |
Version(s): 0.90, 0.90.1|
A vulnerability was reported in Clam AntiVirus. A remote user can cause arbitrary code to be executed on the target user's system.|
A remote user can create a specially crafted CAB file that, when processed by clamd, will trigger a buffer overflow in the cab_unstore() function and execute arbitrary code on the target system. The code will run with the privileges of the clamd process.
The vendor was notified on April 5, 2007.
iDefense reported this vulnerability.
A remote user can create a file that, when loaded by the target application, will execute arbitrary code on the target user's system.|
The vendor has issued a fixed version (0.90.2).|
Vendor URL: www.clamav.net/ (Links to External Site)
|Underlying OS: Linux (Any), UNIX (Any)|
Source Message Contents
Subject: iDefense Security Advisory 04.16.07: ClamAV CAB File Unstore Buffer|
Clam AntiVirus ClamAV CAB File Unstore Buffer Overflow Vulnerability
iDefense Security Advisory 04.16.07
Apr 16, 2007
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.
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.
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.
iDefense has confirmed the existence of this vulnerability in ClamAV in
versions 0.90rc3 through 0.90.1.
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
VIII. DISCLOSURE TIMELINE
04/05/2007 Initial vendor notification
04/06/2007 Initial vendor response
04/16/2007 Coordinated public disclosure
The discoverer of this vulnerability wishes to remain anonymous.
Get paid for vulnerability research
Free tools, research and upcoming events
X. LEGAL NOTICES
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 firstname.lastname@example.org 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.