Solaris version 8 strcasecmp() and strncasecmp() produce incorrect results with 8-bit characters. For example, non-ASCII characters could compare equal to ASCII characters. Such a bug could result in any number of security problems. Solaris qsort() could SIGSEGV because some queue manager's comparisons of recipient information were not 100% transitive. An off-by-one error caused a null byte to be written beyond the end of queue manager's dynamically allocated memory with addresses of exactly 100 bytes long, resulting in SIGSEGV on some Linux systems. File locking of DBM files was broken, because postalias and postmap locked a different file than the other Postfix processes. Prereq: "1.1.3" diff -cr --new-file ../postfix-1.1.3/src/global/mail_version.h ./src/global/mail_version.h *** ../postfix-1.1.3/src/global/mail_version.h Fri Feb 1 09:09:40 2002 --- ./src/global/mail_version.h Fri Feb 22 19:38:56 2002 *************** *** 22,30 **** */ #define VAR_MAIL_VERSION "mail_version" #ifdef SNAPSHOT ! #define DEF_MAIL_VERSION "1.1.3-$mail_release_date" #else ! #define DEF_MAIL_VERSION "1.1.3" #endif extern char *var_mail_version; --- 22,30 ---- */ #define VAR_MAIL_VERSION "mail_version" #ifdef SNAPSHOT ! #define DEF_MAIL_VERSION "1.1.4-$mail_release_date" #else ! #define DEF_MAIL_VERSION "1.1.4" #endif extern char *var_mail_version; *************** *** 32,38 **** * Release date. */ #define VAR_MAIL_RELEASE "mail_release_date" ! #define DEF_MAIL_RELEASE "20020201" extern char *var_mail_release; /* LICENSE --- 32,38 ---- * Release date. */ #define VAR_MAIL_RELEASE "mail_release_date" ! #define DEF_MAIL_RELEASE "20020222" extern char *var_mail_release; /* LICENSE diff -cr --new-file ../postfix-1.1.3/COPYRIGHT ./COPYRIGHT *** ../postfix-1.1.3/COPYRIGHT Wed Dec 31 19:00:00 1969 --- ./COPYRIGHT Sat Feb 23 09:01:30 2002 *************** *** 0 **** --- 1,35 ---- + Included for the use of the fix_strcasecmp.c module which works + around a Solaris problem. + + /* + * Copyright (c) 1987, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ diff -cr --new-file ../postfix-1.1.3/HISTORY ./HISTORY *** ../postfix-1.1.3/HISTORY Fri Feb 1 12:51:03 2002 --- ./HISTORY Sat Feb 23 19:31:55 2002 *************** *** 6052,6057 **** --- 6052,6100 ---- and /usr/sbin/sendmail differ, and will propose to replace one by a symlink to the other. File: conf/postfix-script. + 20020204 + + Sanity: additional permission checks for "postfix check" + that warn for setgid_group group ownership mismatches. by + Matthias Andree, uni-dortmund.de. File: conf/postfix-script. + + Bugfix: "postfix check" used a too simplistic way to + recognize file ownership (grepping ls output). It now uses + the recently discovered "find -prune". Peter Bieringer, + Matthias Andree. File: conf/postfix-script. + + 20020218 + + Workaround: log a warning and disconnect when an SMTP client + ignores our negative replies and starts sending message + content without permission. File: smtpd/smtpd.c. + + 20020220 + + Bugfix: mismatch in the file being locked by dict_dbm and + the file being locked by postmap, so that locks did not + work correctly. Victor Duchovni, Morgan Stanley. + + 20020222 + + Workaround: Solaris bug 4380626: strcasecmp() and strncasecmp() + produce incorrect results with 8-bit characters. For example, + non-ASCII characters could compare equal to ASCII characters, + and that could result in any number of security problems. + Files: util/strcasecmp.c, COPYRIGHT (the BSD license). + + Bugfix: off-by-one error, causing a null byte to be written + outside dynamically allocated memory in the queue manager + with addresses of exactly 100 bytes long, resulting in + SIGSEGV on systems with an "exact fit" malloc routine. + Experienced by Ralf Hildebrandt; diagnosed by Victor + Duchovny. Files: *qmgr/qmgr_message.c. This is not a + security problem. + + Bugfix: make all recipient comparisons transitive, because + Solaris qsort() causes SIGSEGV errors otherwise. Victor + Duchovny, Morgan Stanley. File: *qmgr/qmgr_message.c. + Open problems: Low: don't do user@domain and @domain lookups in diff -cr --new-file ../postfix-1.1.3/INSTALL ./INSTALL *** ../postfix-1.1.3/INSTALL Thu Jan 17 11:30:03 2002 --- ./INSTALL Mon Feb 4 15:21:10 2002 *************** *** 222,227 **** --- 222,232 ---- NB: this group was optional with older Postfix releases; it is now required. + - Optional: If you want to install symbol-stripped (non-debug) versions + of the Postfix programs and daemons, do: + + % strip bin/* libexec/* + - Run one of the following commands as the super-user: # make install (interactive version, first time install) diff -cr --new-file ../postfix-1.1.3/README_FILES/INSTALL ./README_FILES/INSTALL *** ../postfix-1.1.3/README_FILES/INSTALL Thu Jan 17 11:30:03 2002 --- ./README_FILES/INSTALL Mon Feb 4 15:21:10 2002 *************** *** 222,227 **** --- 222,232 ---- NB: this group was optional with older Postfix releases; it is now required. + - Optional: If you want to install symbol-stripped (non-debug) versions + of the Postfix programs and daemons, do: + + % strip bin/* libexec/* + - Run one of the following commands as the super-user: # make install (interactive version, first time install) diff -cr --new-file ../postfix-1.1.3/conf/postfix-script ./conf/postfix-script *** ../postfix-1.1.3/conf/postfix-script Fri Feb 1 13:51:38 2002 --- ./conf/postfix-script Mon Feb 4 16:05:48 2002 *************** *** 174,179 **** --- 174,188 ---- ! \( -type p -o -type s \) ! -user $mail_owner \ -exec $WARN not owned by $mail_owner: {} \; + find $queue_directory/public $queue_directory/maildrop \ + $command_directory/postqueue $command_directory/postdrop \ + -prune ! -group $setgid_group \ + -exec $WARN not owned by group $setgid_group: {} \; + + find $command_directory/postqueue $command_directory/postdrop \ + -prune ! -perm -02111 \ + -exec $WARN not set-gid: {} \; + for name in `ls -d $queue_directory/* | \ egrep '/(bin|etc|lib|usr)$'` ; \ do \ *************** *** 181,191 **** -exec $WARN not owned by root: {} \; ; \ done ! for dir in $queue_directory/maildrop ! do ! ls -lLd $dir | (grep " $mail_owner " >/dev/null || ! $WARN not owned by $mail_owner: $dir) ! done for dir in bin etc lib sbin usr do --- 190,200 ---- -exec $WARN not owned by root: {} \; ; \ done ! # WARNING: this should not descend into the maildrop directory. ! # maildrop is the least trusted Postfix directory. ! ! find $queue_directory/maildrop/. -prune ! -user $mail_owner \ ! -exec $WARN not owned by $mail_owner: $queue_directory/maildrop \; for dir in bin etc lib sbin usr do diff -cr --new-file ../postfix-1.1.3/html/smtpd.8.html ./html/smtpd.8.html *** ../postfix-1.1.3/html/smtpd.8.html Thu Jan 17 11:24:55 2002 --- ./html/smtpd.8.html Fri Feb 22 19:40:54 2002 *************** *** 1,5 ****
- SMTPD(8) SMTPD(8) NAME --- 1,4 ---- *************** *** 335,340 **** P.O. Box 704 Yorktown Heights, NY 10598, USA ! 1 !--- 334,338 ---- P.O. Box 704 Yorktown Heights, NY 10598, USA ! SMTPD(8)