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.