Note: This README/NEWS file refers to the source tarball. Some things described
here may not be available in binary packages.


Bugfixes in this version include crashes with multipart/mixed messages
and corrupted OLE2 and Zip files. Improvements include various optimisations
of mail scanning and clamav-milter and clamdscan behaviour.

New members of our "3rd party software" list:

    + MyClamMailFilter	    an e-mail filter for procmail (written in C)
    + clamaktion	    scan files from the right-click Konqueror menu
    + QMVC		    Qmail Mail and Virus Control
    + pyclamav		    Python binding for ClamAV
    + FETCAV		    Front End To Clam AntiVirus based on Xdialog
    + Famuko		    an on-access scanner working in a userspace
    + SoftlabsAV	    a generic anti-virus filter for procmail

Japanese users can take an advantage of the new ClamAV related site:
and join the clamav-jp-users mailing list.

The ClamAV team (


This version fixes memory management problems in the OLE2 decoder and
improves mail scanning. Because of the rapid ClamAV development the team
encourages users to help in testing new features:

Thank you for using ClamAV !

The ClamAV team (


Major bugfixes in this release include crashes with corrupted BinHex messages
and some Excel documents. Protection against archive bombs (not fully
functional since 0.70) was improved and a number of other improvements were

The ClamAV team (


This release fixes all bugs found in 0.70 and introduces a few new features -
the noteworthy changes include:

-) libclamav:
    + support nested OLE2 files 
    + support Word6 macro code
    + ignore popular file types (media, graphics)
    + support compress.exe (SZDD) compression (test/test.msc)
    + improve virus detection in e-mails

-) clamscan:
    + automatically decide (by comparing daily.cvd version numbers) which
      database directory (hardcoded or clamav.conf's one) to use
    + support compression ratio feature (--max-ratio)
    + allow regular expressions in --[in|ex]clude
    + do not overwrite old files in a quarantine directory but add a numerical
      extension to new files
    + respect --tempdir in libclamav
    + fix access problem when calling external unpackers in a superuser mode
    + fix file permission corruption with --deb in a superuser mode

-) clamd
    + support log facility specification in syslog's style (LogFacility)
    + new directive LeaveTemporaryFiles (Debug no longer leaves temporary
      files not removed)

-) clamav-milter:
    + include the virus name in the 550 rejection
    + support user defined template for virus notifications (--template-file)
    + sort quarantine messages by date
    + improve thread management
    + add X-Virus-Scanned and X-Infected-Received-From: headers
    + improve load balancing (when using remote servers with --server)
    + send 554 after DATA received, not 550
    + save PID (--pidfile)

-) documentation:
    + German clamdoc.pdf translation (Rupert Roesler-Schmidt and Karina
      Schwarz, uplink coherent solutions,
    + new Japanese documentation (Masaki Ogawa)

The ClamAV team (


The two major changes in this version are new thread manager in clamd
and support for decoding MS Office VBA macros. Both of them have been
implemented by Trog. Besides, there are many improvements and bugfixes
(all listed in ChangeLog), a short summary:

-) clamd
    + new thread manager (with better SMP support)
    + on-access scanning now also available on FreeBSD (with Dazuko 2.0)
    + new directive ArchiveBlockEncrypted
    + new directive ReadTimeout (replaces ThreadTimeout)
    + handle SIGHUP (re-open logfile) and SIGUSR2 (reload database)
    + respect TCPAddr in stream scanner

-) clamav-milter:
    + TCPWrappers support

-) libclamav:
    + support MS Office documents (OLE2) and VBA macro decoding
    + support encrypted archive detection
    + new flags: CL_OLE2, CL_ENCRYPTED (see clamdoc.pdf, Section 6.1)
    + improve virus detection in big files
    + improve support for multipart, bounce and embedded RFC822 messages
    + improve RAR support
    + include backup snprintf implementation

-) clamscan:
    + new option: --block-encrypted

-) freshclam
    + new option: --pid, -p (write pid file if run as daemon)
    + handle SIGHUP (re-open logfile), SIGTERM (terminate with log message),
      SIGALRM and SIGUSR1 (wake up and check mirror)
    + fix bug with -u and -c handling

-) contrib
    + windows clamd client now available with source code

-) documentation:
    + new Polish documentation on ClamAV and Samba integration
    + official documentation updated

Special thanks to Dirk Mueller <mueller*> for his code review,
many bugfixes and cleanups.

Thanks to the help of many companies (clamdoc.pdf: Section 2.10, we have 49 very fast and reliable
virus database mirrors in 22 regions and the number is still growing.
As of March 2004 we attempt to redirect our users to the closest pool
of mirrors by looking at their ip source address when they try to resolve Our DNS servers can answer with a CNAME to:,, or Our advanced push-mirroring mechanism (maintained by
Luca Gibelli) allows database maintainers to update all the mirrors in less
than one minute !

There will be no major feature enhancements in the 0.7x series. Our work
will be concentrated on a new scanning engine and preliminary heuristics -
please help us and test CVS snapshots from time to time.

We are happy to announce new programs with support for ClamAV (all of them
have been reviewed by our team - more info in the documentation and
on our website:

    + ClamWin - a GUI for Windows (!)
    + KlamAV - a collection of GUI tools for using ClamAV on KDE
    + clamscan-procfilter - a Perl procmail filter
    + j-chkmail - a powerful filter for sendmail
    + qscanq - Virus Scanning for Qmail
    + clamavr - a Ruby binding for ClamAV
    + DansGuardian Anti-Virus Plugin
    + Viralator - a Perl script that virus scans http downloads
    + ClamAssassin - a filter for procmail
    + Gadoyanvirus - a filter for Qmail
    + OpenProtect - a complete e-mail protection solution
    + RevolSys SMTP kit for Postfix - an antispam/antivirus tools installation
    + POP3 Virus Scanner Daemon
    + mailman-clamav - a virus filter for Mailman
    + wbmclamav - a webmin module to manage ClamAV
    + Scan Log Analyzer
    + mailgraph - a RRDtool frontend for Postfix Statistics
    + INSERT - a security toolkit on a credit card size CD
    + Local Area Security - a Live CD Linux distribution

The ClamAV team (
April 17, 2004

Fixed RAR support.

This version fixes a crash with some RAR archives generated by the Bagle worm,
also a few important fixes have been backported from CVS.

We strongly encourage users to install the 0.70-rc version (released today).

This release fixes a memory management problem (platform dependent; can lead
to a DoS attack) with messages that only have attachments (reported by Oliver
Brandmueller). It also contains patches for a few problems found in 0.66 and
has better Cygwin support.

This version is a response to the "clamav 0.65 remote DOS exploit" information
published on popular security-related mailing lists. Unfortunately we had
not been contacted by the author before he published that and had to release
this (unplanned) package very quickly (it should be mentioned that CVS version
was not vulnerable to the exploit). Untested code has been disabled also
the Dazuko support is temporarily not available (if you really need it please
use a CVS version or wait for a next stable release). Other noteworthy changes:

-) clamd:
    + fixed database timestamp handling (and a double reload problem reported
      by Alex Pleiner and Ole Stanstrup)
    + new directive: ArchiveMaxCompressionRatio
    + new command: SESSION (starts a clamd session and allows to do multiple
      commands per TCP session)
    + new directives: TemporaryDirectory, LogClean (Andrey V. Malyshev)

-) clamav-milter: (Nigel Horne)
    + added support for AllowSupplementaryGroups and ThreadTimeout
    + added --quarantine-dir (thanks to Michael Dankov)
    + added --noreject (thanks to Vijay Sarvepalli)
    + added --headers (thanks Leonid Zeitlin)
    + added --sign option

-) libclamav:
    + detect Worm.SCO.A bounces (Nigel)
    + prevent buffer overflow in broken uuencoded files (Nigel)
    + scan multipart alternatives that have no boundaries (Nigel)
    + better handling of encapsulated messages (Nigel)
    + locate uuencoded viruses hidden in text portions of multipart/mixed
      mime messages (Nigel)
    + initial support for BinHex (Nigel)
    + fixed a mail recursion loop (problem reported by Alex Kah and Kristof
    + fixed bzip2 memory limit (improper call suggested by the buggy libbz2
      documentation, problem reported by Tomasz Klim)
    + fixed on error descriptor leak in CVD unpacker (Thomas Lamy)
    + fixed memory leak in digital signature verification code (Thomas Lamy)
    + added maximal compression ratio limit (cl_limits->maxratio)

-) clamscan:
    + support for multiple arguments on command line (Thomas Lamy)
    + fixed buffer overflow in --move (Denis De Messemacker)
    + removed support for sendfile() under Linux

-) freshclam:
    + support for freshclam.conf (that may be optionally merged with
      clamav.conf, command line options overwrite config settings)
    + work-around for potential database downgrade (subtle problem
      in r-r dns handling) - reported by Daniel Mario Vega and patched
      by Luca Gibelli

-) sigtool:
    + list virus names with --list-sigs (-l)

-) contrib:
    + clamdwatch (by Mike Cathey)
    + windows clamd client with drag&drop support (Nigel Horne)

-) documentation:
    + complete clamdoc.pdf French translation by Stephane Jeannenot
    + Polish how-to on ClamAV and Sendmail integration (with clamav-milter)
      by Przemyslaw Holowczyc


ClamAV was the first anti-virus protecting against Worm.SCO.A (aka MyDoom.A) !
The signature was published by Diego d'Ambra in the daily update 105,
26-Jan-2004 20:23 GMT and we were at least two hours faster than "big" AV

clamav-devel is finally able to decode OLE2 (Microsoft Office) files and
decompress VBA streams ! The code is developed by Trog, official ClamAV
developer. Also we're testing new clamd implementation that will solve
several important problems (especially that "Time out" related). Please
help us and test the latest CVS version.

The virus database now contains more than 20.000 signatures ! On January 8,
Denis De Messemacker (who joined our team 3 months ago) added signatures for
about 7700 new viruses. Also special thanks go to Tomasz Papszun for his
hard work on daily submissions and forcing us to keep ClamAV quality on
the highest possible level.

New mirroring mechanisms. Luca Gibelli (ClamAV) and mirror administrators
(22 sites,, please see clamdoc.pdf for
a complete mirror information) are converting mirrors to new "push mirroring"
method. It uses advanced techniques to ensure all the mirrors are up to date.
More info:

"Newsworthy Hack of Kindness" - is featuring ClamAV in its latest
newsletter (Volume #9, January 2004:
Affero is a great rate-donate system and its mission is to bring a culture
of patronage to the Internet. Currently we only accept donations via Affero.
You can also help us and promote our project by adding the ClamAV logo to
your home page. Look at for more information.

We would like to thank our donors:

    * Jeremy Garcia (
    * Andries Filmer (
    * David Eriksson (
    * Dynamic Network Services, Inc (
    * epublica
    * Invisik Corporation (
    * Keith (
    * Explido Software USA Inc. (
    * cheahch from Singapore
    * Electric Embers
    * Stephane Rault
    * Brad Koehn
    * David Farrick
    * Inc. (
    * An anonymous donor from Colorado, US

Tomasz Kojm <tkojm*>
February 10, 2004

IMPORTANT NOTE: The project has been moved into SourceForge. The only official
		ClamAV's homepage is (however clamav.elektrapro.
		com still works). We would like to thank for
		their support for the open-source community  - THANKS !

ClamAV 0.65 introduces a new database container file format (called CVD) with
support for digital signatures and compression. Please remove the old
databases from your database directory before the installation. And the most
important thing: clamd stability has been greatly improved (especially under
FreeBSD) ! Also we have a new mirror infrastructure - you will find all the
details in clamdoc.pdf. If you want to become an official ClamAV mirror
(with entry in please read the clamav-mirror-howto.pdf
document and contact our administrator - Luca Gibelli <nervous*>.

Noteworthy changes in this version:

-) clamd:
    + fixed a race condition in database reloading code (random crashes
      under high load)
    + fixed a race condition with the improperly initialized session start time
      (thanks to Michael Dankov)
    + fixed PidFile permissions (Magnus Ekdahl, bug reported by Tomasz Papszun)
    + fixed LogFile permissions (Magnus Ekdahl)
    + new directive ScanRAR (bacause RAR support is now disabled by default)
    + new directive VirusEvent
    + new directive FixStaleSocket (Thomas Lamy and Mark Mielke)
    + new directive TCPAddr (Bernard Quatermass, fixed by Damien Curtain)
    + new directive Debug

-) clamav-milter: (Nigel Horne <njh*>)
    + new --force-scan flag
    + new -P and -q flags by Nicholas M. Kirsch
    WARNING: clamav-milter and our mail scanner are still in high development
	     and may be unstable. You should always use the CVS version.

-) libclamav:
    + support for a new database container format (CVD) - compressed and
      digitally signed
    + better protection against malformed zip archives (such as Mimail)
    + mail decoder fixes (thanks to Rene Bellora, Bernd Kuhls, Thomas Lamy,
      Tomasz Papszun) (Nigel Horne)
    + memory leak fixes (Thomas Lamy)
    + new scan option CL_DISABLERAR (disables built-in RAR unpacker)

-) freshclam:
    + fixed --on-error-execute behaviour (David Woakes)
    + new option --user (-u) USER - run as USER instead of the default user.
      Patch by Damien Curtain.
    + rewritten to use and CVD

-) documentation:
    + new Spanish documentation on ClamAV and Sendmail integration by
      Erick Ivaan Lopez Carreon
    + included clamdoc.pdf Turkish translation by yavuz kaya and Ýbrahim erken
    + included clamav-mirror-howto.pdf by Luca Gibelli
    + included clamd+daemontools HOWTO by Jesse D. Guardiani
    + included signatures.pdf
    + man pages: updated
    + clamdoc.pdf: rewritten

New members of our list of ClamAV certified software (see clamdoc.pdf for
    + cgpav
    + smtp-vilter
    + IVS Milter
    + scanexi
    + Mail::ClamAV
    + OpenAntiVirus samba-vscan
    + Sylpheed Claws
    + nclamd

Thanks to Mia Kalenius and Sergei Pronin we have a new official logo !

Thank you for using ClamAV !

Tomasz Kojm <tkojm*>
November 12, 2003


Hello again...

This is a new, (very?) stable release of Clam AntiVirus. 0.60 was developed
and stabilized for over seven months and many people had contributed to the
final release. This version introduces many enhancements and a new program:
clamav-milter written by ClamAV developer Nigel Horne. This is a mail scanner
for Sendmail/milter written entirely in C, which uses clamd for virus scanning.
Clamav-milter and clamd duet is a powerful solution for systems where high
performance is required. Please check clamdoc for more detail.

    Many people get confused with ClamAV database status because of
    the OpenAntiVirus update information at:
    (last update at 17 October, 2002). The ClamAV virus database contains
    the OAV database (with some signatures fixed or removed) but we
    develop it independently of the OAV project. Our database is updated
    frequently (on average 4-5 times a week). You can help (or join) us -
    will find some basic but useful instructions at

News from ClamAV world:

-) New email address for virus submitting:
   You don't need to encrypt a virus sample, but if your system doesn't allow
   you to send infected files just put it into an encrypted zip archive
   (password: virus)

   Special thanks to Nicholas Chua, Diego D'Ambra, Hrvoje Habjanic, Nigel Kukard
   and Chris van Meerendonk for a big number of samples submitted.

-) New mailing list:
   After each update an email with subject "[clamav-virusdb] Update" and a list
   of viruses added is sent to it. You can set up a procmail rule for freshclam
   to react on such a mails (and update the database just after an update).

-) New official mirrors:
    + database mirror updated manually (thanks to
      Andrew <>)
    + full (automatic) mirror of
      (thanks to Chris van Meerendonk <>)
    + database mirror - rsync from
      (thanks to Douglas J Hunley <>)

    Freshclam will automatically use them when the main server is not

-) Official port in FreeBSD available ! (maintained by Masahiro Teramoto

-) Unofficial port for OpenBSD is available at:
   (maintained by Flinn Mueller <>)

-) there are many new programs that use ClamAV, eg. mod_clamav (Apache
   virus scanning filter), clamdmail or Sagator. You will find more
   info in clamdoc.


-) libclamav:
    + fixed buffer overflow in unrarlib (patch by Robbert Kouprie

    + various mbox code updates (fixed memory leak; added support for decoding
      viruses sent in message bodies, detection of viruses that put their
      payloads after the end of message marker (thanks to Stephen White
      <> for the bug report and useful CGI tools); 

    + zziplib updated to 0.10.81 (some problems with older version were reported
      by Martin Schitter)
    + direct scanning of mbox/maildir files (new directive CL_MAIL)
    + file scanner optimization (patch by Hendrik Muhs
    + bzip2 support
    + faster detection of malformed Zip archives (eg. 'Zip of Death'), they are
      reported as a viruses
    + fixed strcasecmp() compile problem in zziplib on Free/NetBSD and others

-) clamd:
    + fixed descriptor leak in directory scanner - it was causing random
      clamd crashes and locks, especially on highly loaded servers. Reported
      by Kristof Petr <>.

    + fixed crash with archive scanning on BSD (increased thread stack size)
      (Nigel Horne)
    + fixed CONTSCAN command (used by clamdscan) - it had archive support
      disabled (hardcoded)
    + fixed SelfCheck option (there was a logic bug, and the option was
      disabled) it now checks a databases time stamps and reloads them
      if needed.
    + fixed possible writing to undefined descriptors (bug found by
      Brian May <>)
    + new STREAM command (scanning data on socket) and directives:
      StreamSaveToDisk (save stream to disk to allow scanning within archives),
      StreamMaxLength. This option allows scanning data on socket (might be
      sent from another host), currently only clamav-milter uses this.

    + new ScanMail directive for scanning into mbox/Maildir files
    + new directive: ArchiveLimitMemoryUsage (limit memory usage with bzip2)
    + new directive: AllowSupplementaryGroups (feature requested by Exiscan
    + syslog support (LogSyslog) (patch by Hrvoje Habjanic
    + fixed parser segfault with extra space between option and argument
      in config file (Magnus Ekdahl <>)

-) clamscan:
    + fixed --remove option (didn't work when the file was scanned with an
      internal unpacker) (patch by Damien Curtain <>)
    + --move option for moving infected files into a specified directory
      (by Damien Curtain <>)
    + --mbox enables a direct support for mbox files
      (ex. clamscan --mbox /var/spool/mail)
    + fixed --log (-l) option
    + fixed -i option (patch by Magnus Ekdahl <>)
    + enabled default archive limits (max-files = 500, max-size = 10M,
      max-recursion = 5)
    + use arj instead of non-free unarj (patch by Magnus Ekdahl)
    + use unzoo instead of non-free zoo (patch by Magnus Ekdahl)
    + removed thread support

    + mirror support (implemented by Damien Curtain <>)
    + --proxy-user: proxy authorization support (implemented by Gernot Tenchio
    + new options --on-error-execute, --on-update-execute
      (ex. freshclam -d -c 6 --on-error-execute "sendsms 23332243 Can't
      update virus database"). Idea by Douglas J Hunley <>

    + --disable-cr (don't link with C reentrant library (needed on some newer
      versions of OpenBSD))

-) Enhanced AIX (thanks to Mike Loewen <>) and
   Tru64 support (thanks to Christophe Varoqui <>)

-) documentation:
    + included how-to in Portugese by Alexandre de Jesus Marcolino
    + clamdoc.pdf and system manual updates

Many thanks to Luca 'NERvOus' Gibelli from ElektraPro for his support,
to Ken McKittrick from USA DataNet for a fully accessible FreeBSD box and
to mailing list subscribers for a constructive discussions.

Tomasz Kojm
June 21, 2003

Many major changes this time...

-) libclamav:
    + fixed segfault with some strange zip archives (there is a bug in zziplib,
      libclamav contains a work around for it) (the problem was reported by
      Oliver Paukstadt <>)
    + engine improvements (better support for a detection of new viruses,
      limited memory usage (consumes ~ 5 Mb now))
    + mbox code updated and moved into the library: fixed core dump when an
      embedded message includes a mime header with the line Content-Type:
      without specifying the type of content, fixed (theoretical) memory leak,
      support for multipart/report messages, fixed bug causing some formats to
      fail to scan) (Nigel)
-) clamd:
    + new commands: CONTSCAN (it doesn't stop scanning even when virus is
      found), VERSION
    + disable logging of a unnecessary time stamps with LogTime when
      LogVerbose isn't used (patch by Ed Phillips <ed@UDel.Edu>)
-) freshclam:
    + "Cache-Control: no-cache" enabled by default
    + Cygwin support fix
-) clamdscan:
    + initial version
-) all tools:
    + removed huge printf() in help() (there was a buffer overflow problem with
      --help option under Windows and SCO Unix (reported by Wojciech Noworyta
      <> and Nigel respectively)
-) configure:
    + allow configuration of the clamav user and group with --with-user and
      --with-group (patch by Patrick Bihan-Faou <>)
    + --enable-id-check - it uses the check procedure from Jason Englander
      <>, currently it will fail on systems with getent
      which doesn't detect clamav group.
    + do not overwrite the existing config file

There are initial packages for Windows available at:


This release has removed the limit for a file name length in clamscan. Some
viruses (eg. W32/Yaha.E) are using very long file names, and they were
ignored in mbox mode. Users of AMaViS-ng and other wrappers were not
vulnerable to this problem, because that programs don't use original
attachement file names.

-) clamscan:
    + removed limit for a file name length (thanks to Odhiambo Washington
      <> for the test files and extensive mbox testing)
    + mbox: adapted to the new changes, enabled thread support (Nigel),
	    re-enabled temporary directory removing.


This version contains a portability fixes - it should compile on OpenBSD,
MacOSX and NetBSD (support for them was broken in 0.51). 

-) clamd: various fixes:
	+ drop supplementary groups (suggested by Enrico Scholz
	  <>) (this has been implemented
	  in freshclam, too)
	+ work-around for the segmentation fault at QUIT under FreeBSD
	+ check timeouts when waiting for threads in RELOAD mode
	+ SelfCheck - internal integrity check (by default every 1 hour)
	+ fixed problem with directory scanning on non typical file systems
	  (bug reported by Jason Englander <>)
	+ clamd is a system command (clamd.1 -> clamd.8, /usr/local/bin ->
	  /usr/local/sbin) (Magnus Ekdahl)
-) clamscan:
	+ mbox code updates (Nigel Horne) - it fixes some problems on *BSD
	  systems (see mailing lists archives for the details)
	+ enable core dumping (Nigel Horne) [ with --enable-debug ]
-) freshclam:
	+ applied http-proxy patch from (by
	  Martin Lesser <>)
	+ when configured with --disable-cache, freshclam forces 'no-cache'
	  option in proxy servers (patch by Ant La Porte <>)

-) HPUX (10.20/11.0 tested) support (thanks to Joe Oaks <>)
-) fixed support for SCO Unix and BeOS (Nigel Horne)
-) support/mboxscan: new version with SpamAssassin support (Nigel Horne)
-) re-included TrashScan 0.08 (by Trashware <>) - the security
   issue has been fixed.
-) included "Installing qmail-scanner, Clam Antivirus and SpamAssassin under
   FreeBSD" how-to by Paul Hoadley and Eric Parsonage


OAV database is up to date ! There was a problem with signature parsing,
because some hex strings were upper case. Anyway, I still recommend you
freshclam for a database updating.

-) support for the genuine OAV database
-) limited memory usage (at the cost of speed, increase CL_MIN_LENGTH in
   libclamav/clamav.h to make it faster, it's safe to set it on 3-4 for
   the OAV database)
-) fixed compile problem on TurboLinux 6.5 (probably others, too), the bug
   was reported by Henk Kuipers <>.
-) clamd: fixed THREXIT (thanks to Piotr Gackiewicz <>)
-) clamd: fixed serious bug with thread argument type
-) clamscan: mbox: don't scan empty attachments (Nigel Horne)
-) configure: --with-db1, --with-db2 (suggested by Magnus Ekdahl)


Here it is...
Clam AntiVirus 0.50 contains an anti-virus library - libclamav, a fully
multi-threaded daemon clamd(1) and a quite long list of changes. The
documentation was rewritten and you _should_ review it. By courtesy of
NERvOus <> and ElektraPro, there are three mailing lists
available - you can subscribe via www at
Please check the manual for more information.

New software:

-) libclamav with RAR, Zip and Gzip support built-in. The library is thread
   safe and should be very secure, also. It uses UniquE RAR File
   Library by Christian Scheurer and Johannes Winkelmann (RAR 2.0 support only)
   and zziplib library by Guido Draheim and Tomi Ollila. Both of them are
   included and slightly modified in the clamav sources. You need the zlib
   library for the Zip/Gzip support, though. The API is described with
   examples in the clamdoc.

-) clamd: a modern anti-virus daemon. It uses configuration file clamav.conf
   described in the clamav.conf(5) manual. The program was written with
   security as a goal. 

-) clamuko: on-access scanning under Linux. It utilizes Dazuko kernel module
   (GPL, and is clamd-based.

New features / improvements:

-) enhanced scanner engine (better detection of some complex polymorphic

-) clamscan: Nigel Horne <> has added the ability to scan
   mail attachments in a filter. For example:

   $ clamscan -i --mbox - < /var/spool/mail/john
   /tmp/aa6b9fc06bc477ae/setup.exe: Worm/Klez.H FOUND

   Nigel is the author of the whole mbox code in clamscan. Currently it only
   works in a filter mode, but there are plans to move the code into the
   libclamav and allow clamd using it. Please check support/mboxscan, also.

-) clamscan: support for including and excluding multiple patterns with
   --include and --exclude (patch by Alejandro Dubrovsky
   Example: clamscan --include .exe --include .obj --include .scr /mnt/windows

-) clamscan: don't scan /proc files (Linux, st_dev comparing). No more
   /proc/kcore related mails :))

-) clamscan: use libclamav's archive support by default (it's enabled by default
   and may be disabled with --disable-archive) and switch to the external
   unpackers (if specified) in the case of libclamav archive code error.

-) freshclam: proxy support (via $http_proxy variable and --http-proxy).
   I started implementing proxy support some time ago, but never finished.
   Nigel Horne did the great job and has finished the proxy support !

-) freshclam: --daemon-notify. freshclam will send the RELOAD command to the
   daemon after database update (supports both tcp and local sockets, it reads
   clamav.conf to determine the socket type).

-) freshclam: support for viruses.db2

Bug fixes:

-) freshclam: log 'Database updated' message (thanks to Jeffrey Moskot
    <> for the bug report). It now prints a number
    of signatures in a database, also.

-) clamscan: fixed compile problem on Solaris 8 and some other systems -
   #include <signal.h> lack in others.c (thanks Mike Loewen
   <> for the bug report)


-) included Japanese documentation by Masaki Ogawa <>

-) updated Spanish "Sendmail + Amavis + ClamAv - Como" by Erick I. Lopez
   Carreon <>

-) rewritten clamdoc, included clamdoc-html, removed PostScript version (.ps)

-) Clam-Mutant ;) logo update by Michal Hajduczenia <>

-) new man pages: clamd(1), clamav.conf(5); others updated

    Please don't use the oav-update script with this version. It doesn't
update viruses.db2 and supports site only (the last
update of the OAV database was 1 July !). Nicholas Chua <>
has generated over 200 new signatures, ClamAV's database is also frequently
updated (expecially when new wild virus/worm appears, eg. W32/BugBear.A).

    This software is still in developement (new software == new bugs), however
clamscan should be very stable. You shouldn't use clamd/clamuko (well, clamd is
stable, clamuko isn't) on production systems, yet. Please wait for 0.51 at
least ;). ClamAV 0.50 was tested on Linux and Solaris and should work fine.
There is a problem with clamd on FreeBSD (tested on my FreeBSD 5.0-CURRENT) -
the daemon crashes with Zip/Gzip files (disabling ScanArchive should help).

Enjoy !
Tomasz Kojm
October 5, 2002


-) fixed threads deadlock in a critical error situation (bug found by David
   Sanchez <>)
-) fixed sigtool bug (negative seeking)
-) fixed potential clamscan segfault in the case of memory allocation error
-) unpacker execution error is no longer treated as critical - a few programs
   (eg. Qmail-Scanner, TrashScan) have clamscan command hardcoded with all
   archive options turned on. Now, if unpacker can't be executed, raw file is
   scanned and scan process is continued.
-) reverted to pthread.h detection
-) TrashScan 0.07 (Trashware <>)
-) --exclude (regular expressions are not supported !)
   [ex: clamscan --exclude="/proc/kcore" /], but please use it with care.
-) included html documentation

You will probably have a problem with a default Qmail-Scanner (1.13 or newer)
installation. You need to increase qmail-smtpd softlimit or disable it. You
can force clamscan to use only half of the memory which it uses by default, too.
Please change the following line in the clamscan/matcher.h file:
    #define MIN_LENGTH 5
    #define MIN_LENGTH 3
and recompile the program. Unhappily, scanning may be a little slower in some
cases, but it shouldn't be significant. Then you can safely set the qmail
softlimit to 8 MB. I want to thank Doug Monroe <> for
his contribution in the problem analysis.

New ClamAV version is in a heavy development. It has currently built-in
support for RAR, Zip, Gzip and tar. The daemon will support only built-in
compression/archive support. Snapshot will be available for a few days.


-) fixed compile problem on FreeBSD (thanks to Wieslaw Glod <> and
   Ken McKittrick <>)
-) clamscan reads all .db files from data directory, so you can put your
   own databases there and they won't be overwrited by the updaters. viruses.db
   is still the main database file (if --database isn't used).
-) --deb (debian binary packages scanning) by Magnus Ekdahl <>
-) --remove option, but be careful with it !
-) new clam logo ;) (GPL) by Michal Hajduczenia <>.
-) TrashScan 0.06 (by Trashware <>) - a script for scanning
   mail with procmail. I recommend it. (support/trashscan)
-) documentation updates

0.30 release will contain a daemon and an anti-virus library (with simple API),
so you can use it directly in your projects. I want to build in zip and rar
support, also.

There are binary packages for AIX available. Please check the documentation.


This release fixes bug with scanning archives in unaccessible directories with
*superuser* priviledges (after dropping priviledges scanner wasn't able to
access the archive, although the same archive was accessible), thanks
for Sergei Pronin <> for the problem description. Now all
archives unaccessible directly by the clamav user are copied (with a respect to
--max-space) to the temporary directory. All old filesystem tricks were removed.

Other fixes / improvements:

-) better error handling, new error codes
-) improved -i (--infected) option
-) removed --strange-unzip option
-) removed eicar test files and logos from the documentation due to the GPL
   (thanks for Magnus Ekdahl <>), ClamAV-Test-Signature is
   used instead
-) removed Qmail-Scanner patch, ClamAV is supported by Q-S 1.13 (thanks guys!)
-) code cleanups

0.21 Release

It fixes following problems:

-) database downloading in freshclam/0.20
-) malformed amavis-perl patch from 0.20
-) clamscan problems with some unzip versions, please try --strange-unzip

ClamAV 0.21 source package contains initial support for NetBSD
(thanks to Marc Baudoin <>, Jean-Edouard BABIN
<>), better support for Mac OS X (Masaki Ogawa <>),
and clamdoc documentation corrected by Dennis Leeuw <>.

0.20 Release

The most important change in this release is a new, linear pattern matching
algorithm. You will find more informations about it in clamscan/matcher.c -
in the sources and in clamdoc. Summary (since 0.15):

New features:

-) fast pattern matching algorithm
-) sigtool utility, check `man sigtool` and clamdoc
-) Linux: threads autodetection on various architectures
          (Magnus Ekdahl <>)
-) -i, --infected: clamscan prints only infected files
-) 'Data scanned' in summary, size in megabytes with 16 Kb precision
-) configure: --with-dbdir sets the database location
-) support/sigmake shell script by Dennis Leeuw <>
-) Spanish "Sendmail+Amavis+ClamAv installation how-to" by
   Erick I. Lopez Carreon <>


-) "Debian GNU/Linux Mail Server v. 0.2.0" by Dennis Leeuw <>
-) qmail-scanner patch from Kazuhiko <>
-) general documentation cleanups / updates
-) freshclam / Internet database location


-) threads autodetection on not-x86 Linux systems
-) gcc 3.x support (David Ford <>)
-) data type fix on Mac OS X (Peter N Lewis <>)
-) removed -w, --whole-file, now clamscan scans whole files by default
   -w is still supported by internal getopt(), because it is used in
   various patches
-) removed --one-virus, still supported by getopt(); removed 'Found viruses'
   from summary, clamscan stops file scanning after first virus
-) fixed old problem with scanning stdin
-) removed amavisd-patch - strange problems have been reported

OpenAntiVirus Update is a great tool written by Matthew A. Grant
<> and it will be the primary updater for ClamAV
in the near future. In contrast to freshclam it has proxy support and many
specific features. Please check clamdoc for more informations and how to
obtain it.

0.15 Notes

This version contains minor bugfixes only, such as:
    -) multiple fixes in freshclam (it has problems, when one of the
       hosts wasn't accessible), there were logic flaws in the code
    -) fixed problem with password protected archives (unpackers were waiting
       for password)

New features:
    -) OpenBSD support (thanks to Kamil Andrusz <>)
    -) added support for amavisd, qmail-scanner (see ./support)

There were no major bugs and I was very busy, that's why new version is
released just today. In the next 2 months, clamav development will be much
faster. Here are some of my plans:

    ~ 0.20 : New pattern-matching algorithm
    ~ 0.30 : clamlib; clamscan and the daemon based on it

There is a new homepage:

Thanks to for sponsoring this site (it's very fast).
Thanks to NERvOus <>.

If you are interested in current development versions, please check
snapshots link.

Resource usage limits in 0.14

Two new features: --max-files, --max-space have been implemented. If you have
enabled one of this options, clamscan monitors resource usage (number of
created files and used space) and stops extractor when it has exceeded
the limit. You should use these options to protect your machine against
Denial of Service attacks. In the near future --max-levels (limit for
recursive archives extracting) and --max-time (spent on checking/extracting
files) will be implemented.

FreeBSD: AMaViS compile problems

Please check FAQ.

!!! Strange signatures in !!!

Last version of signatures was ~90 kb, this version is ~474 kb.
But I don't understand, why some signatures are mega-huge. When I decoded
them, they looked like regular files. In CA they were removed from the
database and I probably add them later, in normal sizes.

Installation :

Please view documentation in ./docs. There are several formats - pdf, ps
and plain latex, if you want to compile it yourself.

You need GNU make (on Solaris you should have gmake).
It was tested only with gcc 2.9x compilers.