ClamAV VirusEvent parameter vulnerability — GLSA 200405-03

With a specific configuration (using %f in the VirusEvent parameter), Clam AntiVirus is vulnerable to an attack allowing execution of arbitrary commands.

Affected packages

app-antivirus/clamav on all architectures
Affected versions < 0.70
Unaffected versions >= 0.70

Background

From http://www.clamav.net/ :

"Clam AntiVirus is a GPL anti-virus toolkit for UNIX. The main purpose of this software is the integration with mail servers (attachment scanning). The package provides a flexible and scalable multi-threaded daemon, a command line scanner, and a tool for automatic updating via Internet. The programs are based on a shared library distributed with the Clam AntiVirus package, which you can use with your own software. Most importantly, the virus database is kept up to date."

Description

The VirusEvent parameter in the clamav.conf configuration file allows to specify a system command to run whenever a virus is found. This system command can make use of the "%f" parameter which is replaced by the name of the file infected. The name of the file scanned is under control of the attacker and is not sufficiently checked. Version 0.70 of clamav disables the use of the "%f" parameter.

Impact

Sending a virus with a malicious file name can result in execution of arbirary system commands with the rights of the antivirus process. Since clamav is often associated to mail servers for email scanning, this attack can be used remotely.

Workaround

You should not use the "%f" parameter in your VirusEvent configuration.

Resolution

All users of Clam AntiVirus should upgrade to the latest stable version:

 # emerge sync
 
 # emerge -pv ">=app-antivirus/clamav-0.70"
 # emerge ">=app-antivirus/clamav-0.70"

References

Release date
May 11, 2004

Latest revision
May 22, 2006: 02

Severity
high

Exploitable
remote

Bugzilla entries