Re: Bug with .fp file being ignored
Mark Allan <[email protected]> Fri, 20 Sep 2019 21:46:33 +0100
| Newsgroups | gmane.comp.security.virus.clamav.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi Micah, Yes I did, and I submitted a patch back in July but there was another related issue which I wasn't able to fix. I've copied my email below with the patches. Best regards Mark --- The issue seems to have crept in with commits 3e42216cc and 28afc94c3 back in April/May 2017. Attached are patches for devel/HEAD as well as the stable 0.101.2 Tests show that the issue is fixed and doesn't appear to introduce any false negatives.....however, it does produce a duplicate output line - one listed the infection found, and the second line (honouring the FP file) saying "OK". The "infected files" count is correct - see output below. Does anyone know how to fix that duplicate output? Cheers Mark virus-2009-04-13-id0007662101.zip: Osx.Worm.Leap-2 FOUND virus-2009-04-13-id0007662101.zip: OK ----------- SCAN SUMMARY ----------- Known viruses: 6168730 Engine version: 0.101.2 Scanned directories: 0 Scanned files: 1 Infected files: 0 Data scanned: 0.02 MB Data read: 0.00 MB (ratio 0.00:1) Time: 33.865 sec (0 m 33 s) > On 20 Sep 2019, at 10:29 am, Micah Snyder (micasnyd) <[email protected]> wrote: > > Hi Mark, > > Did you have any luck identifying the source of the bug? I admit I bookmarked your email and failed to find time to look into it myself after that. > > -Micah > > On 7/12/19, 6:09 PM, "clamav-devel on behalf of Mark Allan" <[email protected] on behalf of [email protected]> wrote: > > Hi, > > I think there's a bug with ClamAV not honouring the contents of a .fp file > within the database directory. > > I've tested 0.101.2 as well as previous versions of ClamAV going back to > 0.99.4 and the issue seems to have appeared as of 0.100.0 onwards. > > To re-create the issue: > > Find a zip file which you know reports an infection when scanned. > Use sigtool --md5 to generate an FP sig of the zip file and save it in a > <filename>.fp file in the databse directory. > Use clamscan to scan the file and see that it still reports the file as > being infected. > > > The output from clamscan --debug shows the .fp file is being loaded, but it > just doesn't seem to be being honoured for some reason. > > I see the same thing when I build ClamAV on macOS as well as when using the > apt-get distribution on Ubuntu 18.04 > > Lastly, it only appears to be an issue with archive filetypes eg .zip, .dmg > etc. Simple files are excluded as expected - similarly, if you generate an > FP sig of a simple file and put that file within an archive, it correctly > gets excluded. > > I'll clone the source from Git on Monday and have a dig through it myself > to see if I can fix the bug, but thought I'd mention it here in case > someone's already on it, or at least knows where I can start looking! > > Cheers > Mark > _______________________________________________ > > clamav-devel mailing list > [email protected] > https://lists.clamav.net/mailman/listinfo/clamav-devel > > Please submit your patches to our Bugzilla: http://bugzilla.clamav.net > > Help us build a comprehensive ClamAV guide: > https://github.com/vrtadmin/clamav-faq > > http://www.clamav.net/contact.html#ml > > > _______________________________________________ > > clamav-devel mailing list > [email protected] > https://lists.clamav.net/mailman/listinfo/clamav-devel > > Please submit your patches to our Bugzilla: http://bugzilla.clamav.net > > Help us build a comprehensive ClamAV guide: > https://github.com/vrtadmin/clamav-faq > > http://www.clamav.net/contact.html#ml _______________________________________________ clamav-devel mailing list [email protected] https://lists.clamav.net/mailman/listinfo/clamav-devel Please submit your patches to our Bugzilla: http://bugzilla.clamav.net Help us build a comprehensive ClamAV guide: https://github.com/vrtadmin/clamav-faq http://www.clamav.net/contact.html#ml
fix_devel_head.patch
(application/octet-stream, 1.1 KB)
--- clamav-devel_clean/libclamav/scanners.c 2019-07-17 15:49:32.000000000 +0100
+++ clamav-devel/libclamav/scanners.c 2019-07-17 16:32:00.000000000 +0100
@@ -3399,6 +3399,7 @@
ctx->recursion--;
if (ret == CL_VIRUS && !SCAN_ALLMATCHES) {
+ ret = cli_checkfp(hash, hashed_size, ctx);
cli_bitset_free(ctx->hook_lsig_matches);
ctx->hook_lsig_matches = old_hook_lsig_matches;
return magic_scandesc_cleanup(ctx, type, hash, hashed_size, cache_clean, ret, parent_property);
@@ -3442,7 +3443,7 @@
res = CL_CLEAN;
// Fall through
case CL_VIRUS:
- ret = res;
+ ret = cli_checkfp(hash, hashed_size, ctx);
if (SCAN_ALLMATCHES)
break;
cli_bitset_free(ctx->hook_lsig_matches);
@@ -3514,6 +3515,8 @@
break;
}
+ if(ret == CL_VIRUS)
+ ret = cli_checkfp(hash, hashed_size, ctx);
ctx->recursion--;
cli_bitset_free(ctx->hook_lsig_matches);
ctx->hook_lsig_matches = old_hook_lsig_matches;
fix_101_2.patch
(application/octet-stream, 1.2 KB)
--- clamav-0.101.2_clean/libclamav/scanners.c 2019-03-13 21:13:01.000000000 +0000
+++ clamav-0.101.2/libclamav/scanners.c 2019-07-17 16:23:37.000000000 +0100
@@ -3710,6 +3710,7 @@
if (ret == CL_VIRUS && !SCAN_ALLMATCHES)
{
+ ret = cli_checkfp(hash, hashed_size, ctx);
cli_bitset_free(ctx->hook_lsig_matches);
ctx->hook_lsig_matches = old_hook_lsig_matches;
return magic_scandesc_cleanup(ctx, type, hash, hashed_size, cache_clean, ret, parent_property);
@@ -3750,7 +3751,7 @@
return magic_scandesc_cleanup(ctx, type, hash, hashed_size, cache_clean, res, parent_property);
/* CL_VIRUS = malware found, check FP and report */
case CL_VIRUS:
- ret = res;
+ ret = cli_checkfp(hash, hashed_size, ctx);
if (SCAN_ALLMATCHES)
break;
cli_bitset_free(ctx->hook_lsig_matches);
@@ -3814,6 +3815,9 @@
break;
}
+ if(ret == CL_VIRUS)
+ ret = cli_checkfp(hash, hashed_size, ctx);
+
ctx->recursion--;
cli_bitset_free(ctx->hook_lsig_matches);
ctx->hook_lsig_matches = old_hook_lsig_matches;