Wednesday, November 3, 2021

ClamAV 0.103.4 LTS and 0.104.1 patch versions are out now. Both of these can be found on clamav.net/downloads, with 0.104.1 as the main release and 0.103.4 under "Previous Stable Releases."


0.103.4

ClamAV 0.103.4 is a critical patch release with the following fixes:

  • FreshClam:

    • Add a 24-hour cool-down for FreshClam clients that have received an HTTP 403 (Forbidden) response from the CDN. This is to reduce the volume of 403-response data served to blocked FreshClam clients that are configured with a tight update-loop.
    • Fixed a bug where FreshClam treats an empty CDIFF as an incremental update failure instead of as an intentional request to download the whole CVD.
  • ClamDScan: Fix a scan error when broken symlinks are encountered on macOS with "FollowDirectorySymlinks" and "FollowFileSymlinks" options disabled.

  • Overhauled the scan recursion / nested archive extraction logic and added new limits on embedded file-type recognition performed during the "raw" scan of each file. This limits embedded file-type misidentification and prevents detecting embedded file content that is found/extracted and scanned at other layers in the scanning process.

  • Fix an issue with the FMap module that failed to read from some nested files.

  • Fixed an issue where failing to load some rules from a Yara file containing multiple rules may cause a crash.

  • Fixed assorted compiler warnings.

  • Fixed assorted Coverity static code analysis issues.

  • Scan limits:

    • Added virus-name suffixes to the alerts that trigger when a scan limit has been exceeded. Rather than simply Heuristics.Limits.Exceeded, you may now see limit-specific virus-names, to include:
      • Heuristics.Limits.Exceeded.MaxFileSize
      • Heuristics.Limits.Exceeded.MaxScanSize
      • Heuristics.Limits.Exceeded.MaxFiles
      • Heuristics.Limits.Exceeded.MaxRecursion
      • Heuristics.Limits.Exceeded.MaxScanTime
    • Renamed the Heuristics.Email.ExceedsMax.* alerts to align with the other limit alerts names. These alerts include:
      • Heuristics.Limits.Exceeded.EmailLineFoldcnt
      • Heuristics.Limits.Exceeded.EmailHeaderBytes
      • Heuristics.Limits.Exceeded.EmailHeaders
      • Heuristics.Limits.Exceeded.EmailMIMEPartsPerMessage
      • Heuristics.Limits.Exceeded.EmailMIMEArguments
    • Fixed an issue where the Email-related scan limits would alert even when the "AlertExceedsMax" (--alert-exceeds-max) scan option is not enabled.
    • Fixes an issue in the Zip parser where exceeding the "MaxFiles" limit or the "MaxFileSize" limit would abort the scan but would fail to alert. The Zip scan limit issues were independently identified and reported by Aaron Leliaert and Max Allan.
  • Fixed a leak in the Email parser when using the --gen-json scan option.

  • Fixed an issue where a failure to record metadata in the Email parser when using the --gen-json scan option could cause the Email parser to abort the scan early and fail to extract and scan additional content.

  • Fixed a file name memory leak in the Zip parser.

  • Fixed an issue where certain signature patterns may cause a crash or cause unintended matches on some systems when converting characters to uppercase if a UTF-8 unicode single-byte grapheme becomes a multi-byte grapheme. Patch courtesy of Andrea De Pasquale.

Other fixes backported from 0.104.0:

  • Fixed a crash in programs that use libclamav when the programs don't set a callback for the "virus found" event. Patch courtesy of Markus Strehle.

  • Added checks to the the SIS archive parser to prevent an SIS file entry from pointing to the archive, which would result in a loop. This was not an actual infinite loop, as ClamAV's scan recursion limit limits the depth of nested archive extraction.

  • ClamOnAcc: Fixed a socket file descriptor leak that could result in a crash when all available file descriptors are exhausted.

  • FreshClam: Fixed an issue where FreshClam would download a CVD repeatedly if a zero-byte CDIFF is downloaded or if the incremental update failed and if the CVD downloaded after that is older than advertised. Patch courtesy of Andrew Williams.

  • ClamDScan:

    • Fixed a memory leak of the scan target filename when using the --fdpass or --stream options.
    • Fixed an issue where ClamDScan would fail to scan any file after excluding a file with the "ExcludePath" option when using when using the --multiscan (-m) option along with either --fdpass or --stream. Also fixed a memory leak of the accidentally-excluded paths in this case.
    • Fixed a single file path memory leak when using --fdpass.
    • Fixed an issue where the "ExcludePath" regex may fail to exclude absolute paths when the scan is invoked with a relative path.

Special thanks to the following for code contributions and bug reports:

  • Aaron Leliaert
  • Andrea De Pasquale
  • Andrew Williams
  • Markus Strehle
  • Max Allan

 

0.104.1

ClamAV 0.104.1 is a critical patch release with the following fixes:

  • FreshClam:

    • Add a 24-hour cool-down for FreshClam clients that have received an HTTP 403 (Forbidden) response from the CDN. This is to reduce the volume of 403-response data served to blocked FreshClam clients that are configured with a tight update-loop.
    • Fixed a bug where FreshClam treats an empty CDIFF as an incremental update failure instead of as an intentional request to download the whole CVD.
  • ClamDScan: Fix a scan error when broken symlinks are encountered on macOS with "FollowDirectorySymlinks" and "FollowFileSymlinks" options disabled.

  • Overhauled the scan recursion / nested archive extraction logic and added new limits on embedded file-type recognition performed during the "raw" scan of each file. This limits embedded file-type misidentification and prevents detecting embedded file content that is found/extracted and scanned at other layers in the scanning process.

  • Fix an issue with the FMap module that failed to read from some nested files.

  • Fixed an issue where failing to load some rules from a Yara file containing multiple rules may cause a crash.

  • Fixed assorted compiler warnings.

  • Fixed assorted Coverity static code analysis issues.

  • Scan limits:

    • Added virus-name suffixes to the alerts that trigger when a scan limit has been exceeded. Rather than simply Heuristics.Limits.Exceeded, you may now see limit-specific virus-names, to include:
      • Heuristics.Limits.Exceeded.MaxFileSize
      • Heuristics.Limits.Exceeded.MaxScanSize
      • Heuristics.Limits.Exceeded.MaxFiles
      • Heuristics.Limits.Exceeded.MaxRecursion
      • Heuristics.Limits.Exceeded.MaxScanTime
    • Renamed the Heuristics.Email.ExceedsMax.* alerts to align with the other limit alerts names. These alerts include:
      • Heuristics.Limits.Exceeded.EmailLineFoldcnt
      • Heuristics.Limits.Exceeded.EmailHeaderBytes
      • Heuristics.Limits.Exceeded.EmailHeaders
      • Heuristics.Limits.Exceeded.EmailMIMEPartsPerMessage
      • Heuristics.Limits.Exceeded.EmailMIMEArguments
    • Fixed an issue where the Email-related scan limits would alert even when the "AlertExceedsMax" (--alert-exceeds-max) scan option is not enabled.
    • Fixes an issue in the Zip parser where exceeding the "MaxFiles" limit or the "MaxFileSize" limit would abort the scan but would fail to alert. The Zip scan limit issues were independently identified and reported by Aaron Leliaert and Max Allan.
  • Fixed a leak in the Email parser when using the --gen-json scan option.

  • Fixed an issue where a failure to record metadata in the Email parser when using the --gen-json scan option could cause the Email parser to abort the scan early and fail to extract and scan additional content.

  • Fixed a file name memory leak in the Zip parser.

  • Fixed an issue where certain signature patterns may cause a crash or cause unintended matches on some systems when converting characters to uppercase if a UTF-8 unicode single-byte grapheme becomes a multi-byte grapheme. Patch courtesy of Andrea De Pasquale.

  • CMake:

    • Fix a packaging issue with the Windows *.msi installer so that it will include all of the required files.
    • Add support for developer code-signing on macOS during the build.
    • Fix an issue finding and linking with the tinfo library on systems where tinfo is separate from ncurses. Patch courtesy of Luca Barbato.
  • Tests: Improved the Freshclam incremental update tests to verify correct behavior when a zero-byte CDIFF is downloaded and the CVD served to FreshClam is older than advertised.

  • Docker: Remove the freshclam.dat file when building the Docker image with the databases-included so FreshClam agents running in the container will have a unique ID in the HTTP User-Agent.

Special thanks to the following for code contributions and bug reports:

  • Aaron Leliaert
  • Andrea De Pasquale
  • Luca Barbato
  • Max Allan

Friday, October 29, 2021

The ClamAV 0.100 has reached End of Life (EOL) today and is now blocked from receiving signature database updates, as indicated in our initial blog post in June, and our reminder in September.

The ClamAV 0.101 and 0.102 releases will reach EOL in a little over two month's time on Jan. 3, 2022. After this date, ClamAV 0.101 and 0.102 and all patch versions will be blocked from downloading new signatures from database.clamav.net.

Please upgrade to ClamAV 0.103.3 LTS or newer to ensure continued access to the latest official malware detection signature databases.

For information about the EOL policy, visit the ClamAV online documentation.

Monday, September 27, 2021

As a reminder, the ClamAV 0.100 release will reach its end of life (EOL) in one month's time on Oct. 29, 2021. After this date, ClamAV 0.100 and all patch versions will be blocked from downloading new signatures from database.clamav.net. 

For information about the EOL policy, visit the ClamAV online documentation.

Friday, September 3, 2021

Today, we're announcing changes to the ClamAV End-of-Life (EOL) policy to include a new Long Term Support program.

ClamAV 0.104.0 is available as an official release as of today.

We are also announcing a new Long Term Support (LTS) program today in an update to our End-of-Life (EOL) policy. The LTS will start retroactively with ClamAV 0.103, the previous feature release. This new LTS policy extends the life of 0.103 up through September 2023 and will facilitate the production of more frequent feature releases while enabling users to rely on a supported version for years to come if they cannot keep pace with the feature release cadence. For full details about the Long Term Support program, you can see the LTS announcement blog post and review the LTS policy in our online documentation.

We're also introducing new install packages to make it easier for folks to upgrade without having to build ClamAV from source and without having to wait for a community volunteer to package the latest release. You can find the new install packages on the ClamAV.net Downloads Page.

Thursday, August 19, 2021

Today we are publishing a second release candidate for 0.104.0. Please help us verify that 0.104.0-rc2 works on your systems and that we have resolved the concerns you reported with the first release candidate. We need your feedback, so let us know what you find and join us on the ClamAV mailing list, or on our Discord.

In particular, we'd love your feedback on the new Debian and RPM packages (see below) and on the install documentation on docs.clamav.net.

For details about what is new in the 0.104 feature release, please refer to the announcement for the first release candidate.


What changed since the first release candidate

First and foremost, we are listening to your concerns about the build system change from Autotools to CMake, and about changes coming in a future feature release when we add the Rust programming language toolchain into our build requirements. We can't bring back Autotools, but we hope that the following will help.

  1. We are introducing a Long Term Support (LTS) program that will begin with the 0.103 feature release. Users will be required to stay up to date with the latest patch versions (e.g., 0.103.3) within the 0.103 feature series, but will have the peace-of-mind that the 0.103 feature release will receive critical patch versions with a stable ABI up until End-of-Life in September 2023. Stay tuned for a separate blog post introducing the full details of our LTS program. We will also add a version-support-matrix to our online documentation in tandem with the LTS blog post for easy reference.

  2. We plan to increase our feature release cadence to make it easier to plan and to get new features and efficacy improvements into your hands faster. So, to make it easier for you to stay up-to-date with the latest stable release, we are introducing new package installers for macOS and for RPM-based and Debian-based Linux distributions. These new packages will be available for download on the clamav.net Downloads page. You can find installation instructions for these packages in our online documentation. Please note that the Linux packages unfortunately do not include clamav-milter at this time, and that we are still working on the signing & notarization process for the macOS installer, so it may not work for users on the latest macOS version.

In addition to the above, we've resolved the following issues identified during the first release candidate:

  • Increased the functionality level (FLEVEL) for the 0.104 release to make space for additional 0.103 (LTS) patch versions. See the Version & FLEVEL reference.
  • Improvements installation instructions in INSTALL.md and in the online documentation.
  • Fixed iconv / libiconv detection in the CMake configuration process when -Werror=return-type is enabled, such as in the openSUSE packaging environment. See PR-233.
  • Fixed broken CMake build when RAR support is intentionally disabled and test-support is enabled. See PR-237.
  • Fixed broken CMake build on systems that do not provide format string macros for standard integer types. See PR-231.
  • Improved long file path support on Windows. (Disclaimer: presently requires user to opt-in with a registry key change). See PR-229.
  • Fixed a segfault and socket file descriptor leak in ClamOnAcc. See PR-227.
  • Fixed an error reported by ClamD when scanning directories on Windows. See PR-230.
  • Fixed issue with Freshclam support for Universal Naming Convention (UNC) paths on Windows. See PR-226.
  • Added missing environment variable feature documentation to the manpages. See PR-254.
  • Fixed an assortment of issues identified by Coverity static analysis. See PR-221.
  • Tuned the Valgrind suppression rules for the public test suite to resolve a false positive that caused intermittent ClamD test failures. See PR-238.
  • Fixed the mspack library name to deconflict with system installed mspack packages. See PR-234.
  • Fixed a false positive in the ClamD tests, reported by Valgrind when compiling with Clang. See PR-236.

Special thanks to Arjen de Korte and Mark Fortescue for contributing patches to fix some of the above issues. And thank you to so many of you who chimed in on the mailing lists, on Discord, and on GitHub Issues to identify issues and share your experiences with the first release candidate.

Thursday, July 22, 2021

We are pleased to announce the ClamAV 0.104.0 release candidate.

Please help us validate this release. We need your feedback, so let us know what you find and join us on the ClamAV mailing list, or on our Discord.

This release candidate phase is only expected to last about two to four weeks before the 0.104.0 Stable version will be published. Take this opportunity to verify that you 0.104.0 can build and run in your environment. 

Wednesday, July 21, 2021

We've received several reports of users experiencing issues with FreshClam triggered by last week's update to the main and daily CVD databases

FreshClam's primary advantage over tools like wget and curl, in addition to automatic testing of new databases, is the ability to perform an incremental update using database patch files. But when a database change is so large that a patch file is not efficient, we issue an empty patch file. This empty file will cause FreshClam to download the entire database instead. Unfortunately, our recent update using the empty patch file method has revealed a couple of issues. 

Tuesday, July 13, 2021

 Tomorrow, Wednesday July 14th, we are planning on publishing a brand new main.cvd and daily.cvd, as we do periodically to move more of the long term signatures into the main.cvd and make the daily.cvd smaller again.  

This will have an impact on your downloads of these files (as every ClamAV instance will have to re-download both files), so you may see a spike in your bandwidth usage.

We will monitor the situation on the mirror side and make any adjustments necessary, but we anticipate no issues.

Tuesday, June 29, 2021

Effective Oct. 29, 2021, ClamAV 0.100.0 (and all patch versions) will no longer be supported in accordance with ClamAV's EOL policy

End of life (EOL) for ClamAV means:

  • We will no longer be testing against that version when we write signatures.
  • We may break that version with something with a future release.
  • Signature updates for that version will be blocked when attempting to download from the mirror update system.

Please upgrade to the newest version of ClamAV, currently at 0.103.3, available for download now!

As always, thank you for using ClamAV.