Subject: PR/29183 CVS commit: pkgsrc/security/amavisd-new
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: Thomas Klausner <wiz@netbsd.org>
List: pkgsrc-bugs
Date: 02/01/2005 17:40:02
The following reply was made to PR pkg/29183; it has been noted by GNATS.

From: Thomas Klausner <wiz@netbsd.org>
To: gnats-bugs@netbsd.org
Cc: 
Subject: PR/29183 CVS commit: pkgsrc/security/amavisd-new
Date: Tue,  1 Feb 2005 17:39:25 +0000 (UTC)

 Module Name:	pkgsrc
 Committed By:	wiz
 Date:		Tue Feb  1 17:39:24 UTC 2005
 
 Modified Files:
 	pkgsrc/security/amavisd-new: Makefile distinfo
 
 Log Message:
 Update to 2.2.1, provided by the maintainer, Julian Dunn, in PR 29183.
 
 Release notes:
                                                           December 22, 2004
 amavisd-new-2.2.1 release notes
 
 SECURITY:
 
 - add support for the pax(1) archive decoder, which can handle tar/cpio/pax
   archives (including legacy format variants). Due to limitations in cpio
   (and in Archive::Tar), for security reasons it is preferred to decode
   such archives with pax and no longer with cpio; please add a line:
     $pax = 'pax';
   to amavisd.conf and verify that the program pax is installed on the system
   (and in the jail if running in chroot);
 
 - perform additional tests at startup time on the proper protection
   of the configuration file;
 
 - add file name extensions wmf, emf and grp to the example list of
   banned extension, according to recent Microsoft security bulletins;
   suggested by Stephane Lentz;
 
 - introduces 'clean but inconclusive' av scanner result to avoid a specialized
   or quick partial av scanner like jpeg checker to claim mail is clean
   when all other general purpose av scanners fail (see below);
 
 INCOMPATIBILITY:
 
 - removed some legacy $*_ldap variables, as they are no longer needed;
 
   These variables were still declared but ignored in 2.2.0 for compatibility
   with older amavisd.conf files. Such variables need to be removed from
   the amavisd.conf if they are still present there from older versions,
   otherwise Perl will complain with 'Global symbol ... requires explicit
   package name";
 
 OTHER FIXES:
 
 - files_to_scan and decompose_mail are now able to remove unexpected
   directories which may have been left behind by some failed decoding
   and were causing temporary failures and mail delivery retries;
   error recovery problem after failed unarj reported by Ralf Hildebrandt;
 
 - error recovery code in files_to_scan and rmdir_recursively now tries to
   change protection on directories and files, and retry if the first attempt
   to access them fails because of denied permission;
 
 - pre-load some additional Perl modules needed by SA when running in chroot;
 
 - add module Net::LDAP::Search to a list of pre-fetched modules;
   omission pointed out by Paul Jacobson;
 
 - when quarantining is disabled by keeping $QUARANTINEDIR undefined,
   the log entry and administrator notification message inappropriately
   suggested that mail was quarantined, which in fact (appropriately)
   it was not. Setting $QUARANTINEDIR='' did work as expected.
   Reported by Sascha Lucas;
 
 - avoid the use of Encode::is_utf8 due to a Perl bug (still present in 5.8.5)
   where Encode::is_utf8 on tainted utf8 character string produces false;
 
 - modify safe_encode() to guarantee the result is a string of octets,
   not a string of UTF-8 characters; it saves some unnecessary work in
   further processing and keeps MIME::Entity from UTF swamp when running
   in chroot; problem pointed out by Branko F. Gracnar;
 
 - avoid braindead Perl default where an empty regexp implies the last
   successfully matched regexp, which (if not being very careful) brings in
   some completely unrelated last-executed regular expression;
 
 - change kill 'TERM' into kill 'KILL' when a forked process within run_command
   and run_command_consumer gets into deep trouble, to avoid exit handlers
   being invoked in the subprocess (which could lead to two processes trying
   to clean the same set of temporary files);
 
 - in an old sendmail setup using the amavis(.c) helper program without
   LDA arguments, avoid inappropriate warning:
     "WARN: no recips left (forgot to set $forward_method=undef using milter?)
   and return status 0 instead of 99 when message is to be blocked, as the
   helper program amavis(.c) does not recognize status 99 in this situation
   and inappropriately passed it on to sendmail; reported by The Mindflayer;
 
 - the @bypass_header_checks_maps is now able to also bypass the bad header
   checks as provided by MIME::Parser; inconsitency reported by CRivera;
 
 - avoid some Perl warning messages; thanks to Bill Landry;
 
 CHANGES AND MINOR NEW FEATURES:
 
 - add configuration variable @newvirus_admin_maps (and $newvirus_admin,
   along with corresponding SQL field 'newvirus_admin') which works like
   the existing @virus_admin_maps (and $virus_admin), except that it sends
   virus administrator notification to specified e-mail address only for newly
   encountered viruses which have not yet been encountered since the amavisd
   startup. It makes use of by-virusname counters in the SNMP counters
   database. If more than one child process starts working on infected
   message containing a not-yet-accounted-for virus, there might be more
   than one 'first time' notification, this is not a malfunction. Both
   the @newvirus_admin_maps and the @virus_admin_maps may be enabled,
   each (possibly both) would receive their notifications as appropriate.
 
   A useful setting is to globally enable only the new virus notifications,
   and additionally enable _all_ administrator notifications for internally
   originating mail only (by the use of policy banks);
 
 - provide separate configuration variables @banned_admin_maps and
   @bad_header_admin_maps, along with corresponding SQL fields
   'banned_admin' and 'bad_header_admin'; their function was previously
   covered by @virus_admin_maps, which now only still controls administrator
   notifications in case of viruses;
 
 - introduces 'clean but inconclusive' av scanner result to avoid a specialized
   or quick partial av scanner like jpeg checker to claim mail is clean
   when all other general purpose av scanners fail:
 
   in av scanner entries (lists @av_scanners and @av_scanners_backup) give
   an extended meaning to undefined fourth argument (the 'match for clean'
   list or regexp). The interpretation of the fourth argument is now:
 
   4. an array ref of av scanner exit status values, or a regexp (to be
      matched against scanner output), indicating NO VIRUSES found;
      a special case is a value undef, which does not claim file to be clean
      (i.e. it never matches, similar to []), but suppresses a failure warning;
      to be used when the result is inconclusive (useful for specialized and
      quick partial scanners such as jpeg checker);
 
   Also modified example jpeg checker entry in amavisd.conf accordingly.
 
 - NOD32 av scanner: changed @av_scanners entry to match the new version
   of the scanner; thanks to Nejc Skoberne;
 
 - added @av_scanners entry for File::Scan;
 
 - when preparing a SQL SELECT clause for white/blacklisting lookup,
   take into account a relative position of ? and %k in the
   $sql_select_white_black_list template to improve flexibility
   of specifying the clause; suggested by Matt Petteys;
 
 - reduce the log level of some more common and harmless log messages;
 
 - macro %p and the log entry now reports full policy bank path,
   not just the last loaded policy bank name;
 
 - added LDAP attributes amavisWarnVirusRecip, amavisWarnBannedRecip,
   and amavisWarnBadHeaderRecip; by Joel Nimety and Michael Hall;
 
 - renamed LDAP attribute name amavisSpamModifiesSubject to
   amavisSpamModifiesSubj in order to match the documented LDAP schema;
   noticed by Kees Bos, patch by Michael Hall;
 
 - add support for ripOLE decoder, which attempt to extract embedded documents
   from MS OLE documents (MS Office) (http://www.pldaniels.com/ripole/,
   by Paul L Daniels)); ripOLE is still experimental/alpha code;
   To be make amavisd-new find the installed program 'ripole', add the:
     $ripole = 'ripole';
   to the amavisd.conf; suggested by David Wilson and Noel Jones;
 
 - allow multiple occurrences of command line option:  -c config_file
   and execute the provided configuration files one after the other;
   based on a subset of functionality provided as a patch by Davor Ocelic;
 
 - a slight improvement (in default $map_full_type_to_short_type_re)
   in classifying mpeg and some other multimedia files;
 
 - several minor code cleanups;
 
 - add a recommendation by Daniel J McDonald to a documentation file INSTALL:
     If different UID is preferred for an AV scanner, a solution for
     ClamAV is to add user clamav to the amavis group, and then add
     AllowSupplementaryGroups to clamd.conf;
 
 - enclosed a simple demonstrational Perl program amavis.pl, which is
   functionally much like the amavis.c helper program, but talks the new
   AM.PDP protocol with the amavisd daemon. See README.protocol for the
   description of AM.PDP protocol. To be placed in amavisd.conf:
     $protocol='AM.PDP';  $unix_socketname='/var/amavis/amavisd.sock';
   Usage: amavis.pl sender recip1 recip2 ...  < message.txt
 
 - documentation updates;
 
 
 To generate a diff of this commit:
 cvs rdiff -r1.4 -r1.5 pkgsrc/security/amavisd-new/Makefile
 cvs rdiff -r1.2 -r1.3 pkgsrc/security/amavisd-new/distinfo
 
 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.