Package: release.debian.org User: release.debian....@packages.debian.org Usertags: pu Tags: buster Severity: normal
Clamav upstream released 0.101.3 which is a "security patch release" only. It is described [0] as: |ClamAV 0.101.3 is a patch release to address a vulnerability to non-recursive |zip bombs. | |A Denial-of-Service (DoS) vulnerability may occur when scanning a zip bomb as a |result of excessively long scan times. The issue is resolved by detecting the |overlapping local file headers which characterize the non-recursive zip bomb |described by David Fifield. It also contains an updated libmspack but this is not included in the repacked orig file since the in-archive libmspack is used. I cherry-picked the version update and the zip fix from upstream and prepared an upload for Buster. [0] https://blog.clamav.net/2019/08/clamav-01013-security-patch-release-and.html Sebastian
diff -Nru clamav-0.101.2+dfsg/debian/changelog clamav-0.101.2+dfsg/debian/changelog --- clamav-0.101.2+dfsg/debian/changelog 2019-03-30 16:25:48.000000000 +0100 +++ clamav-0.101.2+dfsg/debian/changelog 2019-08-06 22:07:01.000000000 +0200 @@ -1,3 +1,10 @@ +clamav (0.101.2+dfsg-1+deb10u1) buster; urgency=medium + + * Cherry-pick a fix from 0.101.3 to address a vulnerability to + non-recursive zip bombs. + + -- Sebastian Andrzej Siewior <sebast...@breakpoint.cc> Tue, 06 Aug 2019 22:07:01 +0200 + clamav (0.101.2+dfsg-1) unstable; urgency=high * Import 0.101.2 diff -Nru clamav-0.101.2+dfsg/debian/.git-dpm clamav-0.101.2+dfsg/debian/.git-dpm --- clamav-0.101.2+dfsg/debian/.git-dpm 2019-03-30 15:32:49.000000000 +0100 +++ clamav-0.101.2+dfsg/debian/.git-dpm 2019-08-06 22:02:44.000000000 +0200 @@ -1,6 +1,6 @@ # see git-dpm(1) from git-dpm package -cb77f255d9bc2871a474227e2a8676dfd930a483 -cb77f255d9bc2871a474227e2a8676dfd930a483 +f9c686061408a8a6378bb089e57c541713fb8a7c +f9c686061408a8a6378bb089e57c541713fb8a7c 5a612c89e68e5010b2cd71002ceb15efc03a2324 5a612c89e68e5010b2cd71002ceb15efc03a2324 clamav_0.101.2+dfsg.orig.tar.xz diff -Nru clamav-0.101.2+dfsg/debian/patches/Adds-detection-and-heuristic-alert-for-zips-with-ove.patch clamav-0.101.2+dfsg/debian/patches/Adds-detection-and-heuristic-alert-for-zips-with-ove.patch --- clamav-0.101.2+dfsg/debian/patches/Adds-detection-and-heuristic-alert-for-zips-with-ove.patch 1970-01-01 01:00:00.000000000 +0100 +++ clamav-0.101.2+dfsg/debian/patches/Adds-detection-and-heuristic-alert-for-zips-with-ove.patch 2019-08-06 22:02:44.000000000 +0200 @@ -0,0 +1,233 @@ +From f9c686061408a8a6378bb089e57c541713fb8a7c Mon Sep 17 00:00:00 2001 +From: Micah Snyder <micas...@cisco.com> +Date: Fri, 12 Jul 2019 21:09:45 -0400 +Subject: Adds detection and heuristic alert for zips with overlapping files, + preventing extraction of non-recursive zip bombs. + +Patch-Name: Adds-detection-and-heuristic-alert-for-zips-with-ove.patch +Signed-off-by: Sebastian Andrzej Siewior <sebast...@breakpoint.cc> +--- + NEWS.md | 15 ++++++---- + libclamav/unzip.c | 74 ++++++++++++++++++++++++++++++++++++++++------- + 2 files changed, 72 insertions(+), 17 deletions(-) + +diff --git a/NEWS.md b/NEWS.md +index 3cd2587..76d8474 100644 +--- a/NEWS.md ++++ b/NEWS.md +@@ -5,14 +5,17 @@ Note: This file refers to the source tarball. Things described here may differ + + ## 0.101.3 + +-ClamAV 0.101.3 is a patch release... ++ClamAV 0.101.3 is a patch release to address a vulnerability to non-recursive ++zip bombs. + +-- Fixes for the following vulnerabilities affecting 0.101.2 and prior: +- - ++A Denial-of-Service (DoS) vulnerability may occur when scanning a zip bomb as a ++result of excessively long scan times. The issue is resolved by detecting the ++overlapping local file headers which characterize the non-recursive zip bomb ++described by David Fifield, ++[here](https://www.bamsoftware.com/hacks/zipbomb/). + +-Additional thanks to the following community members for submitting bug reports: +- +-- ++Thank you to Hanno Böck for reporting the issue as it relates to ClamAV, ++[here](https://bugzilla.clamav.net/show_bug.cgi?id=12356). + + ## 0.101.2 + +diff --git a/libclamav/unzip.c b/libclamav/unzip.c +index 0216908..a67b92d 100644 +--- a/libclamav/unzip.c ++++ b/libclamav/unzip.c +@@ -54,6 +54,8 @@ + #define UNZIP_PRIVATE + #include "unzip.h" + ++#define ZIP_MAX_NUM_OVERLAPPING_FILES 5 ++ + #define ZIP_CRC32(r,c,b,l) \ + do { \ + r = crc32(~c,b,l); \ +@@ -493,14 +495,14 @@ static inline int zdecrypt(const uint8_t *src, uint32_t csize, uint32_t usize, c + if (pass_zip) + pass_zip = pass_zip->next; + else +- pass_any = pass_any->next; ++ pass_any = pass_any->next; + } + + cli_dbgmsg("cli_unzip: decrypt - skipping encrypted file, no valid passwords\n"); + return CL_SUCCESS; + } + +-static unsigned int lhdr(fmap_t *map, uint32_t loff,uint32_t zsize, unsigned int *fu, unsigned int fc, const uint8_t *ch, int *ret, cli_ctx *ctx, char *tmpd, int detect_encrypted, zip_cb zcb) { ++static unsigned int lhdr(fmap_t *map, uint32_t loff,uint32_t zsize, unsigned int *fu, unsigned int fc, const uint8_t *ch, int *ret, cli_ctx *ctx, char *tmpd, int detect_encrypted, zip_cb zcb, uint32_t *file_local_header_size, uint32_t* file_local_data_size) { + const uint8_t *lh, *zip; + char name[256]; + uint32_t csize, usize; +@@ -563,7 +565,7 @@ static unsigned int lhdr(fmap_t *map, uint32_t loff,uint32_t zsize, unsigned int + } + virus_found = 1; + } +- ++ + if(LH_flags & F_USEDD) { + cli_dbgmsg("cli_unzip: lh - has data desc\n"); + if(!ch) { +@@ -581,6 +583,11 @@ static unsigned int lhdr(fmap_t *map, uint32_t loff,uint32_t zsize, unsigned int + zip+=LH_elen; + zsize-=LH_elen; + ++ if (NULL != file_local_header_size) ++ *file_local_header_size = zip - lh; ++ if (NULL != file_local_data_size) ++ *file_local_data_size = csize; ++ + if (!csize) { /* FIXME: what's used for method0 files? csize or usize? Nothing in the specs, needs testing */ + cli_dbgmsg("cli_unzip: lh - skipping empty file\n"); + } else { +@@ -589,6 +596,7 @@ static unsigned int lhdr(fmap_t *map, uint32_t loff,uint32_t zsize, unsigned int + fmap_unneed_off(map, loff, SIZEOF_LH); + return 0; + } ++ + if(LH_flags & F_ENCR) { + if(fmap_need_ptr_once(map, zip, csize)) + *ret = zdecrypt(zip, csize, usize, lh, fu, ctx, tmpd, zcb); +@@ -624,12 +632,19 @@ static unsigned int lhdr(fmap_t *map, uint32_t loff,uint32_t zsize, unsigned int + return zip-lh; + } + +-static unsigned int chdr(fmap_t *map, uint32_t coff, uint32_t zsize, unsigned int *fu, unsigned int fc, int *ret, cli_ctx *ctx, char *tmpd, struct zip_requests *requests) { ++static unsigned int chdr(fmap_t *map, uint32_t coff, uint32_t zsize, unsigned int *fu, unsigned int fc, int *ret, cli_ctx *ctx, char *tmpd, struct zip_requests *requests, uint32_t *file_local_offset, uint32_t *file_local_header_size, uint32_t *file_local_data_size) { + char name[256]; + int last = 0; + const uint8_t *ch; + int virus_found = 0; + ++ if (NULL != file_local_offset) ++ *file_local_offset = 0; ++ if (NULL != file_local_header_size) ++ *file_local_header_size = 0; ++ if (NULL != file_local_data_size) ++ *file_local_data_size = 0; ++ + if(!(ch = fmap_need_off(map, coff, SIZEOF_CH)) || CH_magic != 0x02014b50) { + if(ch) fmap_unneed_ptr(map, ch, SIZEOF_CH); + cli_dbgmsg("cli_unzip: ch - wrkcomplete\n"); +@@ -674,7 +689,9 @@ static unsigned int chdr(fmap_t *map, uint32_t coff, uint32_t zsize, unsigned in + + if (!requests) { + if(CH_off<zsize-SIZEOF_LH) { +- lhdr(map, CH_off, zsize-CH_off, fu, fc, ch, ret, ctx, tmpd, 1, zip_scan_cb); ++ if (NULL != file_local_offset) ++ *file_local_offset = CH_off; ++ lhdr(map, CH_off, zsize-CH_off, fu, fc, ch, ret, ctx, tmpd, 1, zip_scan_cb, file_local_header_size, file_local_data_size); + } else cli_dbgmsg("cli_unzip: ch - local hdr out of file\n"); + } + else { +@@ -685,7 +702,7 @@ static unsigned int chdr(fmap_t *map, uint32_t coff, uint32_t zsize, unsigned in + for (i = 0; i < requests->namecnt; ++i) { + cli_dbgmsg("checking for %i: %s\n", i, requests->names[i]); + +- len = MIN(sizeof(name)-1, requests->namelens[i]); ++ len = MIN(sizeof(name)-1, requests->namelens[i]); + if (!strncmp(requests->names[i], name, len)) { + requests->match = 1; + requests->found = i; +@@ -712,6 +729,13 @@ int cli_unzip(cli_ctx *ctx) { + #if HAVE_JSON + int toval = 0; + #endif ++ int bZipBombDetected = 0; ++ uint32_t cur_file_local_offset = 0; ++ uint32_t cur_file_local_header_size = 0; ++ uint32_t cur_file_local_data_size = 0; ++ uint32_t prev_file_local_offset = 0; ++ uint32_t prev_file_local_header_size = 0; ++ uint32_t prev_file_local_data_size = 0; + + cli_dbgmsg("in cli_unzip\n"); + fsize = (uint32_t)map->len; +@@ -744,20 +768,48 @@ int cli_unzip(cli_ctx *ctx) { + } + + if(coff) { ++ uint32_t nOverlappingFiles = 0; ++ + cli_dbgmsg("cli_unzip: central @%x\n", coff); +- while((coff=chdr(map, coff, fsize, &fu, fc+1, &ret, ctx, tmpd, NULL))) { ++ while((coff=chdr(map, coff, fsize, &fu, fc+1, &ret, ctx, tmpd, NULL, &cur_file_local_offset, &cur_file_local_header_size, &cur_file_local_data_size))) { + fc++; + if (ctx->engine->maxfiles && fu>=ctx->engine->maxfiles) { + cli_dbgmsg("cli_unzip: Files limit reached (max: %u)\n", ctx->engine->maxfiles); + ret=CL_EMAXFILES; + } ++ /* ++ * Detect overlapping files and zip bombs. ++ */ ++ if ((((cur_file_local_offset > prev_file_local_offset) && (cur_file_local_offset < prev_file_local_offset + prev_file_local_header_size + prev_file_local_data_size)) || ++ ((prev_file_local_offset > cur_file_local_offset) && (prev_file_local_offset < cur_file_local_offset + cur_file_local_header_size + cur_file_local_data_size))) && ++ (cur_file_local_header_size + cur_file_local_data_size > 0)) { ++ /* Overlapping file detected */ ++ nOverlappingFiles++; ++ ++ cli_dbgmsg("cli_unzip: Overlapping files detected.\n"); ++ cli_dbgmsg(" previous file end: %u\n", prev_file_local_offset + prev_file_local_header_size + prev_file_local_data_size); ++ cli_dbgmsg(" current file start: %u\n", cur_file_local_offset); ++ if (ZIP_MAX_NUM_OVERLAPPING_FILES < nOverlappingFiles) { ++ if (SCAN_HEURISTICS) { ++ ret = cli_append_virus(ctx, "Heuristics.Zip.OverlappingFiles"); ++ virus_found = 1; ++ } else { ++ ret = CL_EFORMAT; ++ } ++ bZipBombDetected = 1; ++ } ++ } ++ prev_file_local_offset = cur_file_local_offset; ++ prev_file_local_header_size = cur_file_local_header_size; ++ prev_file_local_data_size = cur_file_local_data_size; ++ + #if HAVE_JSON + if (cli_json_timeout_cycle_check(ctx, &toval) != CL_SUCCESS) { + ret=CL_ETIMEOUT; + } + #endif + if (ret != CL_CLEAN) { +- if (ret == CL_VIRUS && SCAN_ALLMATCHES) { ++ if (ret == CL_VIRUS && SCAN_ALLMATCHES && !bZipBombDetected) { + ret = CL_CLEAN; + virus_found = 1; + } else +@@ -769,7 +821,7 @@ int cli_unzip(cli_ctx *ctx) { + ret = CL_VIRUS; + if(fu<=(fc/4)) { /* FIXME: make up a sane ratio or remove the whole logic */ + fc = 0; +- while (ret==CL_CLEAN && lhoff<fsize && (coff=lhdr(map, lhoff, fsize-lhoff, &fu, fc+1, NULL, &ret, ctx, tmpd, 1, zip_scan_cb))) { ++ while (ret==CL_CLEAN && lhoff<fsize && (coff=lhdr(map, lhoff, fsize-lhoff, &fu, fc+1, NULL, &ret, ctx, tmpd, 1, zip_scan_cb, NULL, NULL))) { + fc++; + lhoff+=coff; + if (SCAN_ALLMATCHES && ret == CL_VIRUS) { +@@ -816,7 +868,7 @@ int unzip_single_internal(cli_ctx *ctx, off_t lhoffl, zip_cb zcb) + return CL_CLEAN; + } + +- lhdr(map, lhoffl, fsize, &fu, 0, NULL, &ret, ctx, NULL, 0, zcb); ++ lhdr(map, lhoffl, fsize, &fu, 0, NULL, &ret, ctx, NULL, 0, zcb, NULL, NULL); + + return ret; + } +@@ -886,7 +938,7 @@ int unzip_search(cli_ctx *ctx, fmap_t *map, struct zip_requests *requests) + + if(coff) { + cli_dbgmsg("unzip_search: central @%x\n", coff); +- while(ret==CL_CLEAN && (coff=chdr(zmap, coff, fsize, NULL, fc+1, &ret, ctx, NULL, requests))) { ++ while(ret==CL_CLEAN && (coff=chdr(zmap, coff, fsize, NULL, fc+1, &ret, ctx, NULL, requests, NULL, NULL, NULL))) { + if (requests->match) { + ret=CL_VIRUS; + } diff -Nru clamav-0.101.2+dfsg/debian/patches/Bumped-version-number-to-0.101.3.patch clamav-0.101.2+dfsg/debian/patches/Bumped-version-number-to-0.101.3.patch --- clamav-0.101.2+dfsg/debian/patches/Bumped-version-number-to-0.101.3.patch 1970-01-01 01:00:00.000000000 +0100 +++ clamav-0.101.2+dfsg/debian/patches/Bumped-version-number-to-0.101.3.patch 2019-08-06 22:02:44.000000000 +0200 @@ -0,0 +1,460 @@ +From 9e0d7c6a42bb6f5b17f1696e3b69cc1714142223 Mon Sep 17 00:00:00 2001 +From: Micah Snyder <micas...@cisco.com> +Date: Fri, 12 Jul 2019 17:16:42 -0400 +Subject: Bumped version number to 0.101.3. + +Patch-Name: Bumped-version-number-to-0.101.3.patch +[sebast...@breakpoint.cc: remove "configure" and "win32/"] +Signed-off-by: Sebastian Andrzej Siewior <sebast...@breakpoint.cc> +--- + NEWS.md | 109 +++++++++++++----------- + configure.ac | 6 +- + docs/UserManual.md | 2 +- + docs/UserManual/Installation-Windows.md | 8 +- + m4/reorganization/version.m4 | 4 +- + 5 files changed, 70 insertions(+), 59 deletions(-) + +diff --git a/NEWS.md b/NEWS.md +index 7f992b8..3cd2587 100644 +--- a/NEWS.md ++++ b/NEWS.md +@@ -1,7 +1,18 @@ + # ClamAV News + + Note: This file refers to the source tarball. Things described here may differ +- slightly from the binary packages. ++ slight ++ ++## 0.101.3 ++ ++ClamAV 0.101.3 is a patch release... ++ ++- Fixes for the following vulnerabilities affecting 0.101.2 and prior: ++ - ++ ++Additional thanks to the following community members for submitting bug reports: ++ ++- + + ## 0.101.2 + +@@ -508,7 +519,7 @@ ClamAV 0.99.4 is a hotfix release to patch a set of vulnerabilities. + a handful of other important bugs, including patches to support g++ 6, C++11. + + Thank you to the following ClamAV community members for your code +-submissions and bug reports! ++submissions and bug reports! + + Alberto Garcia + Bernhard Vogel +@@ -550,7 +561,7 @@ ClamAV 0.99.2 is a release of bug fixes and minor enhancements. + - fix ups improving the reliability of several ClamAV file parsers. + - sigtool now decodes file type signatures (e.g., daily.ftm CVD file). + - now supporting libpcre2 in addition to libpcre. +-- systemd support for clamd and freshclam. Patch provided by ++- systemd support for clamd and freshclam. Patch provided by + Andreas Cadhalpun. + - fixed builds on Mac OS X 10.10 & 10.11. + - improved debug info for certificate metadata. +@@ -592,7 +603,7 @@ Thanks to the following community members for code submissions used in + + ## 0.99 + +-ClamAV 0.99 contains major new features and changes. YARA rules, ++ClamAV 0.99 contains major new features and changes. YARA rules, + Perl Compatible Regular Expressions, revamped on-access scanning + for Linux, and other new features join the many great features of ClamAV: + +@@ -603,10 +614,10 @@ Perl Compatible Regular Expressions, revamped on-access scanning + for full details. + - New and improved on-access scanning for Linux. See the recent blog + post and clamdoc.pdf for details on the new on-access capabilities. +-- A new ClamAV API callback function that is invoked when a virus +- is found. This is intended primarily for applications running in +- all-match mode. Any applications using all-match mode must use +- the new callback function to record and report detected viruses. ++- A new ClamAV API callback function that is invoked when a virus ++ is found. This is intended primarily for applications running in ++ all-match mode. Any applications using all-match mode must use ++ the new callback function to record and report detected viruses. + - Configurable default password list to attempt zip file decryption. + - TIFF file support. + - Upgrade Windows pthread library to 2.9.1. +@@ -643,7 +654,7 @@ Thank you to the ClamAV community members who sent patches and bug reports + ## 0.98.7 + + ClamAV 0.98.7 is here! This release contains new scanning features +-and bug fixes. ++and bug fixes. + + - Improvements to PDF processing: decryption, escape sequence + handling, and file property collection. +@@ -663,7 +674,7 @@ and bug fixes. + CVE-2015-2668. + - Fix compilation error after ./configure --disable-pthreads. + Reported and fix suggested by John E. Krokes. +-- Apply upstream patch for possible heap overflow in Henry Spencer's ++- Apply upstream patch for possible heap overflow in Henry Spencer's + regex library. CVE-2015-2305. + - Fix crash in upx decoder with crafted file. Discovered and patch + supplied by Sebastian Andrzej Siewior. CVE-2015-2170. +@@ -704,7 +715,7 @@ Kai Risku + - Compensate a crash due to incorrect compiler optimization when + handling crafted petite packer files. This issue was discovered + by Sebastian Andrzej Siewior. +- ++ + Thanks to the following ClamAV community members for code submissions + and bug reporting included in ClamAV 0.98.6: + +@@ -803,17 +814,17 @@ Sebastian Andrzej Siewior + about OpenIOC. + - All ClamAV sockets (clamd, freshclam, clamav-milter, clamdscan, clamdtop) + now support IPV6 addresses and configuration parameters. +-- Use OpenSSL file hash functions for improved performance. OpenSSL ++- Use OpenSSL file hash functions for improved performance. OpenSSL + is now prerequisite software for ClamAV 0.98.2. + - Improved detection of malware scripts within image files. Issue reported + by Maarten Broekman. + - Change to circumvent possible denial of service when processing icons within + specially crafted PE files. Icon limits are now in place with corresponding +- clamd and clamscan configuration parameters. This issue was reported by ++ clamd and clamscan configuration parameters. This issue was reported by + Joxean Koret. + - Improvements to the fidelity of the ClamAV pattern matcher, an issue + reported by Christian Blichmann. +-- Opt-in collection of statistics. Statistics collected are: sizes and MD5 ++- Opt-in collection of statistics. Statistics collected are: sizes and MD5 + hashes of files, PE file section counts and section MD5 hashes, and names + and counts of detected viruses. Enable statistics collection with the + --enable-stats clamscan flag or StatsEnabled clamd configuration +@@ -822,7 +833,7 @@ Sebastian Andrzej Siewior + assistance and suggestions by Sebastian Andrzej Siewior, Scott Kitterman, + and Dave Simonson. + - Patch by Arkadiusz Miskiewicz to improve error handling in freshclam. +-- ClamAV 0.98.2 also includes miscellaneous bug fixes and documentation ++- ClamAV 0.98.2 also includes miscellaneous bug fixes and documentation + improvements. + + Thanks to the following ClamAV community members for sending patches or reporting +@@ -841,7 +852,7 @@ Christian Blichmann + REGARDING OPENSSL + + In addition, as a special exception, the copyright holders give +-permission to link the code of portions of this program with the ++permission to link the code of portions of this program with the + OpenSSL library under certain conditions as described in each + individual source file, and distribute linked combinations + including the two. +@@ -849,20 +860,20 @@ including the two. + You must obey the GNU General Public License in all respects + for all of the code used other than OpenSSL. If you modify + file(s) with this exception, you may extend this exception to your +-version of the file(s), but you are not obligated to do so. If you ++version of the file(s), but you are not obligated to do so. If you + do not wish to do so, delete this exception statement from your + version. If you delete this exception statement from all source + files in the program, then also delete it here. + + ## 0.98.1 + +-ClamAV 0.98.1 provides improved support of Mac OS X platform, support for new file types, and ++ClamAV 0.98.1 provides improved support of Mac OS X platform, support for new file types, and + quality improvements. These include: + + - Extraction, decompression, and scanning of files within Apple Disk Image (DMG) format. + + - Extraction, decompression, and scanning of files within Extensible Archive (XAR) format. +- XAR format is commonly used for software packaging, such as PKG and RPM, as well as ++ XAR format is commonly used for software packaging, such as PKG and RPM, as well as + general archival. + + - Decompression and scanning of files in "Xz" compression format. +@@ -877,7 +888,7 @@ ClamAV 0.98.1 provides improved support of Mac OS X platform, support for new fi + performance cost. This should only be needed when callback functions are used + that need file access. + +-- Various improvements to ClamAV configuration, support of third party libraries, ++- Various improvements to ClamAV configuration, support of third party libraries, + and unit tests. + + ## 0.98 +@@ -915,8 +926,8 @@ support for additional filetypes, and internal upgrades. + + - New callbacks added to the API: The libclamav API has additional hooks + for developers to use when wrapping ClamAV scanning. These function +- types are prefixed with "clcb_" and allow developers to add logic at +- certain steps of the scanning process without directly modifying the ++ types are prefixed with "clcb_" and allow developers to add logic at ++ certain steps of the scanning process without directly modifying the + library. For more details refer to the clamav.h file. + + - More configurable limits: Several hardcoded values are now configurable +@@ -962,20 +973,20 @@ reported as scan result." + + ## 0.97.5 + +-ClamAV 0.97.5 addresses possible evasion cases in some archive formats +-(CVE-2012-1457, CVE-2012-1458, CVE-2012-1459). It also addresses stability +-issues in portions of the bytecode engine. This release is recommended for ++ClamAV 0.97.5 addresses possible evasion cases in some archive formats ++(CVE-2012-1457, CVE-2012-1458, CVE-2012-1459). It also addresses stability ++issues in portions of the bytecode engine. This release is recommended for + all users. + + ## 0.97.4 + +-ClamAV 0.97.4 includes minor bugfixes, detection improvements and initial +-support for on-access scanning under Mac OS X (see contrib/ClamAuth). ++ClamAV 0.97.4 includes minor bugfixes, detection improvements and initial ++support for on-access scanning under Mac OS X (see contrib/ClamAuth). + This update is recommended for all users. + + ## 0.97.3 + +-ClamAV 0.97.3 is a minor bugfix release and is recommended for all ++ClamAV 0.97.3 is a minor bugfix release and is recommended for all + users. Please refer to the ChangeLog file for details. + + ## 0.97.2 +@@ -996,9 +1007,9 @@ The ClamAV team (https://www.clamav.net/about.html#credits) + + ClamAV 0.97 brings many improvements, including complete Windows support + (all major components compile out-of-box under Visual Studio), support for +-signatures based on SHA1 and SHA256, better error detection, as well as +-speed and memory optimizations. The complete list of changes is available +-in the ChangeLog file. For upgrade notes and tips please see: ++signatures based on SHA1 and SHA256, better error detection, as well as ++speed and memory optimizations. The complete list of changes is available ++in the ChangeLog file. For upgrade notes and tips please see: + https://wiki.clamav.net/Main/UpgradeNotes097 + + With Sourcefire, Inc. acquisition of Immunet Corp., ClamAV for Windows +@@ -1009,7 +1020,7 @@ the full power of the LibClamAV engine, all the ClamAV signatures, + and creation of custom signatures on any platform running Immunet 3.0, + powered by ClamAV. If you run Windows systems in your environment and + need an AV solution to protect them, give Immunet 3.0, powered by ClamAV +-a try; you can download it from https://www.clamav.net/download.html#otherversions ++a try; you can download it from https://www.clamav.net/download.html#otherversions + + -- + The ClamAV team (https://www.clamav.net/about.html#credits) +@@ -1401,7 +1412,7 @@ The ClamAV team (https://www.clamav.net/about.html#credits) + ## 0.90.3 + + This release fixes some security bugs in libclamav and improves stability +-under Solaris. Please see ChangeLog for complete list of changes. ++under Solaris. Please see ChangeLog for complete list of changes. + + If your system is suffering from long clamscan startup times, please + consider installing 0.91rc1 which is due to be released shortly +@@ -1455,9 +1466,9 @@ systems yet. You are encouraged to pass the --enable-experimental flag to + improvements in terms of detection rate and performances. If you find a bug, + please take some time to report it on our bugzilla: https://bugzilla.clamav.net. + Your help in testing the new code is really appreciated. The experimental code +-introduces many improvements in terms of detection rate and performances. ++introduces many improvements in terms of detection rate and performances. + +-RAR3, SIS and SFX archives support is finally available together with ++RAR3, SIS and SFX archives support is finally available together with + new unpackers and decryptors: pespin, sue, yc, wwpack32, nspack, mew, upack + and others. Additionally, ClamAV now includes better mechanisms for scanning + ELF, PDF and tar files. The email decoding has been improved to reduce both +@@ -1466,10 +1477,10 @@ the memory requirements and the time taken to process attachments. + As part of the Google Summer of Code program, we have introduced support for + a new phishing signatures format that has proved very effective in detecting + phishing emails. The ClamAV phishing module allows better and more generic +-detection of phishing emails by searching for URLs in email messages, and +-comparing the real site with the URL displayed to the user in the message. ++detection of phishing emails by searching for URLs in email messages, and ++comparing the real site with the URL displayed to the user in the message. + +-On the performance side, support for the MULTISCAN command has been ++On the performance side, support for the MULTISCAN command has been + implemented in clamd, allowing to scan multiple files simultaneously. + Support for Sensory Networks' NodalCore acceleration technology + (https://www.clamav.net/nodalcore/) is now available in ClamAV and will be +@@ -1568,7 +1579,7 @@ NodalCore cards. + - mod_streamav - a ClamAV based antivirus filter for Apache 2 + - pyClamd - a python interface to Clamd + +-More information at https://www.clamav.net/download.html#tools ++More information at https://www.clamav.net/download.html#tools + + -- + The ClamAV team (https://www.clamav.net/about.html#credits) +@@ -1622,7 +1633,7 @@ architectures and possible security problem in freshclam. + Following the 0.88.1 release some portals and security related websites + published incorrect information on security problems of 0.88. To avoid + such incidents in the future, every new ClamAV package will be released +-together with detailed information about security bugs it fixes. ++together with detailed information about security bugs it fixes. + + -- + The ClamAV team (https://www.clamav.net/about.html#credits) +@@ -1892,7 +1903,7 @@ Important note to clamdwatch users: please upgrade to the latest version + - simscan - an e-mail and spam filter for qmail + - smtpfilter - scan SMTP session for viruses + - snort-inline - scan your network traffic for viruses with ClamAV +- - SquidClamAV Redirector - a Squid helper script which adds virus scanning ++ - SquidClamAV Redirector - a Squid helper script which adds virus scanning + - WRAVLib - a library for a-v integration with Mono/.NET applications + + -- +@@ -2050,7 +2061,7 @@ up with or beating the proprietary alternatives." Thanks! + SourceWear.com is selling some very nice t-shirts and polo shirts powered by + ClamAV. Wear them and virus writers will stay away from you :- A quarter out + of every dollar profited from the sale of these shirts will go to the ClamAV +-project. Visit http://www.sourcewear.com and click on ClamAV logo! ++project. Visit http://www.sourcewear.com and click on ClamAV logo! + + -- + The ClamAV team (https://www.clamav.net/about.html#credits) +@@ -2071,7 +2082,7 @@ We have been distributing the database in both formats till now, but + we plan to drop support for ClamAV 0.60 on September 1st. + + We encourage _all_ users to upgrade to the latest release available. +-People running an old version of ClamAV are missing many viruses and ++People running an old version of ClamAV are missing many viruses and + may experience stability problems. + + On non-production systems you can try the latest development version. +@@ -2109,7 +2120,7 @@ The ClamAV team (https://www.clamav.net/about.html#credits) + ## 0.73 + + This version fixes memory management problems in the OLE2 decoder and +-improves mail scanning. ++improves mail scanning. + + Thank you for using ClamAV ! + +@@ -2132,7 +2143,7 @@ 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 nested OLE2 files + - support Word6 macro code + - ignore popular file types (media, graphics) + - support compress.exe (SZDD) compression (test/test.msc) +@@ -2367,7 +2378,7 @@ the highest possible level. + New mirroring mechanisms. Luca Gibelli (ClamAV) and mirror administrators + (22 sites) are converting mirrors to new "push mirroring" + method. It uses advanced techniques to ensure all the mirrors are up to date. +-More info: https://www.clamav.net/documents/introduction ++More info: https://www.clamav.net/documents/introduction + + We would like to thank our donors: + +@@ -2540,7 +2551,7 @@ performance is required. Please check clamdoc for more detail. + - 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 +- <step...@earth.li> for the bug report and useful CGI tools); ++ <step...@earth.li> for the bug report and useful CGI tools); + + - zziplib updated to 0.10.81 (some problems with older version were reported + by Martin Schitter) +@@ -2681,7 +2692,7 @@ attachement file names. + ## 0.52 + + This version contains a portability fixes - it should compile on OpenBSD, +-MacOSX and NetBSD (support for them was broken in 0.51). ++MacOSX and NetBSD (support for them was broken in 0.51). + + - clamd: various fixes: + - drop supplementary groups (suggested by Enrico Scholz +@@ -2751,7 +2762,7 @@ Please check the manual for more information. + + - 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. ++ security as a goal. + + - clamuko: on-access scanning under Linux. It utilizes Dazuko kernel module + (GPL, http://dazuko.org) and is clamd-based. +diff --git a/configure.ac b/configure.ac +index 88ff4ff..277a2d8 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -22,7 +22,7 @@ dnl MA 02110-1301, USA. + AC_PREREQ([2.59]) + dnl For a release change [devel] to the real version [0.xy] + dnl also change VERSION below +-AC_INIT([ClamAV], [0.101.2], [https://bugzilla.clamav.net/], [clamav], [https://www.clamav.net/]) ++AC_INIT([ClamAV], [0.101.3], [https://bugzilla.clamav.net/], [clamav], [https://www.clamav.net/]) + + dnl enable C++ + AC_PROG_CXX() +@@ -253,7 +253,7 @@ else + if test "X$have_curl" != "Xyes" && test "X$have_json" != "Xyes"; then + CL_MSG_STATUS([clamsubmit ], [no (missing libjson-c-dev AND libcurl-devel. Use the website to submit FPs/FNs.)], [no]) + else +- if test "X$have_curl" = "Xyes"; then ++ if test "X$have_curl" = "Xyes"; then + CL_MSG_STATUS([clamsubmit ], [no (missing libjson-c-dev. Use the website to submit FPs/FNs.)], [no]) + else + CL_MSG_STATUS([clamsubmit ], [no (missing libcurl-devel. Use the website to submit FPs/FNs.)], [no]) +@@ -295,7 +295,7 @@ else + CL_MSG_STATUS([pcre ],[$PCRE_HOME],[$have_pcre]) + fi + CL_MSG_STATUS([libmspack ],[yes],[$mspack_msg]) +-if test "x$XML_LIBS" = "x"; then ++if test "x$XML_LIBS" = "x"; then + CL_MSG_STATUS([libxml2 ],[no],[]) + else + CL_MSG_STATUS([libxml2 ],[yes, from $XML_HOME],[]) +diff --git a/docs/UserManual.md b/docs/UserManual.md +index 567e14b..7435bdd 100644 +--- a/docs/UserManual.md ++++ b/docs/UserManual.md +@@ -1,4 +1,4 @@ +-# Clam AntiVirus 0.101.2 *User Manual* ++# Clam AntiVirus 0.101.3 *User Manual* + +  + +diff --git a/docs/UserManual/Installation-Windows.md b/docs/UserManual/Installation-Windows.md +index 5a693f9..a6d6c9a 100644 +--- a/docs/UserManual/Installation-Windows.md ++++ b/docs/UserManual/Installation-Windows.md +@@ -6,9 +6,9 @@ If you wish to build ClamAV from source using Visual Studio 2015, please head ov + + Important: Installing ClamAV using the Installer will require Administrator privileges. + +-1. Download: http://www.clamav.net/downloads/production/ClamAV-0.101.2.exe ++1. Download: http://www.clamav.net/downloads/production/ClamAV-0.101.3.exe + 2. Locate the file in your Downloads directory. +-3. Right-click on `ClamAV-0.101.2.exe` and select `Run as administrator`. You may receive a warning message along the lines of "Windows protected your PC". Select `More info` and then select `Run anyway`. ++3. Right-click on `ClamAV-0.101.3.exe` and select `Run as administrator`. You may receive a warning message along the lines of "Windows protected your PC". Select `More info` and then select `Run anyway`. + 4. Select `I accept the agreement` and click `Next`. + 5. Click `Next` again. If you've removed a previous installation of ClamAV, you may receive the prompt "The folder ... already exists...". If you do, select `Yes`. + 6. Click `Install`. +@@ -28,9 +28,9 @@ Continue on to "First Time Set-Up" below... + + ## Install using the ClamAV Portable Install Package + +-1. Download: https://www.clamav.net/downloads/production/clamav-0.101.2-win-x64-portable.zip ++1. Download: https://www.clamav.net/downloads/production/clamav-0.101.3-win-x64-portable.zip + 2. Unzip it. +-3. Open the `clamav-0.101.2-win-x64-portable` directory. ++3. Open the `clamav-0.101.3-win-x64-portable` directory. + 4. Hold down Shift and then right-click on the background in the current directory (but not on one of the files). Select `"Open PowerShell window here"`. If that option doesn't appear, try again. + + Continue on to "First Time Set-Up"... +diff --git a/m4/reorganization/version.m4 b/m4/reorganization/version.m4 +index 57d23e4..c834b53 100644 +--- a/m4/reorganization/version.m4 ++++ b/m4/reorganization/version.m4 +@@ -1,9 +1,9 @@ + dnl change this on a release + dnl VERSION="devel-`date +%Y%m%d`" +-VERSION="0.101.2" ++VERSION="0.101.3" + + LC_CURRENT=9 +-LC_REVISION=2 ++LC_REVISION=3 + LC_AGE=0 + LIBCLAMAV_VERSION="$LC_CURRENT":"$LC_REVISION":"$LC_AGE" + AC_SUBST([LIBCLAMAV_VERSION]) diff -Nru clamav-0.101.2+dfsg/debian/patches/series clamav-0.101.2+dfsg/debian/patches/series --- clamav-0.101.2+dfsg/debian/patches/series 2019-03-30 15:32:49.000000000 +0100 +++ clamav-0.101.2+dfsg/debian/patches/series 2019-08-06 22:02:44.000000000 +0200 @@ -4,3 +4,5 @@ Add-support-for-LLVM-3.7.patch Add-support-for-LLVM-3.8.patch Add-support-for-LLVM-3.9.patch +Bumped-version-number-to-0.101.3.patch +Adds-detection-and-heuristic-alert-for-zips-with-ove.patch