> /**
>  * @file /magma/providers/external/clamav.c
>  *
>  * @brief Interface for the ClamAV library.
>  *
>  * $Author: Ladar Levison $
>  * $Date: 2010/08/13 10:32:38 $
>  * $Revision: ecaee526d4ba88a141c5b889dd023b13c05c2654 $
>       // Scan the message. The OLE code has a bug in it that causes
> segfaults. 

What bug ??

>               // We ignore email that ClamAV thinks is a phishing
> based on scanner's internal heuristic checks. else if
> (starts_ci_bl_bl("Phishing", 8, virname, ns_get_length(virname)) ||
> starts_ci_bl_bl("Joke", 4, virname, ns_get_length(virname)))
> { pthread_rwlock_unlock(&virus_lock);
> stats_increment_by_name("provider.virus.scan.total");
> stats_increment_by_name("provider.virus.scan.clean"); close(fd);
> return 0; }

This is incorrect, if you want to match the heuristic Phishing
detection use Heuristics.Phishing.
There are signatures which contain *Phishing*, and *Joke*. ClamAV stops
on first match.

So if you get a zip that contains something ClamAV detects as
Phishing/Joke as first element in zip followed a real malware, then it
will only report the first match (Phishing/Joke). Your code will mark
it as clean, when in fact it could be infected.
(Note that this is not the case for Heuristics.Phishing where ClamAV
keeps on scanning and only reports the heuristics if it didn't find
anything else).

The proper way to deal with this is to not load the Phishing signatures
at all, there is an option you can pass to cl_load() for that.
For *Joke* there is no flag that you can pass though.

Best regards,
--Edwin
_______________________________________________
http://lurker.clamav.net/list/clamav-devel.html
Please submit your patches to our Bugzilla: http://bugs.clamav.net

Reply via email to