[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#767975: wheezy-pu: package sendmail/8.14.4-4+deb7u1



Package: release.debian.org
Severity: normal
Tags: wheezy
User: release.debian.org@packages.debian.org
Usertags: pu

Hi,

there is one security bug open against sendmail that should be solved
via stable-updates, no security update needed (#750562).

I'd like to use this opportunity to cherry-pick some more bugfixes from
jessie/sid that are useful on stable, too:

sendmail (8.14.4-4+deb7u1) wheezy; urgency=medium

  * QA upload.
  * Set maintainer to Debian QA Group.  (See: #740070)
  * Merge some bugfixes from sid.
  * close_on_exec.patch: Properly set the close-on-exec flag for file
    descriptors before executing mailers, cherry-picked from sendmail 8.14.9.
    CVE-2014-3956  (Closes: #750562)
  * libmilter-assert.patch: Fix an incorrect assertion in libmilter,
    cherry-picked from sendmail 8.14.7.  (LP: #1299571)
  * Add support for OpenSSL options SSL_OP_NO_TLSv1_1 and SSL_OP_NO_TLSv1_2
    (backported from 8.14.8), thanks to David F. Skoll.  (Closes: #747910)
  * conf.c-ipv6.patch: Fix A-only MX CNAME interface binding issues when using
    IPv6, thanks to David F. Skoll.  (Closes: #737164) (LP: #1223633)
    (backported from 8.14.6)
  * raise-max-daemons.patch: Raise MAXDAEMONS from 10 to 64, thanks to
    Kees Cook.  (Closes: #720435)
  * Switch from deprecated 'find -perm +xxx' to 'find -perm /xxx'.
    (Closes: #724772)
  * Start sendmail after bind9 (or any other named) if it is installed.
    (Closes: #714184)
  * sendmailconfig: Add missing quoting, thanks to Stuart Sheldon.
    (Closes: #692047)
  * Fix infinite loop in update_db, thanks to Flo.  (Closes: #717951)
  * Do not ship duplicate sendmail.8 manpage.  (Closes: #709895, #597781)


Andreas
diff -u sendmail-8.14.4/debian/rules sendmail-8.14.4/debian/rules
--- sendmail-8.14.4/debian/rules
+++ sendmail-8.14.4/debian/rules
@@ -525,6 +525,7 @@
 	mv ${DEB_SRCDIR}/sendmail/sendmail.8.new \
 		${PKG_DIR}${mandir}/man8/sendmail.sendmail.8;
 	$(RM) ${DEB_SRCDIR}/sendmail/sendmail.8;
+	$(RM) ${PKG_DIR}${mandir}/man8/sendmail.8
 	# Debian stuff
 	(cd debian/sensible_mda && \
 		$(MAKE) -f Makefile install-arch \
diff -u sendmail-8.14.4/debian/changelog sendmail-8.14.4/debian/changelog
--- sendmail-8.14.4/debian/changelog
+++ sendmail-8.14.4/debian/changelog
@@ -1,3 +1,31 @@
+sendmail (8.14.4-4+deb7u1) wheezy; urgency=medium
+
+  * QA upload.
+  * Set maintainer to Debian QA Group.  (See: #740070)
+  * Merge some bugfixes from sid.
+  * close_on_exec.patch: Properly set the close-on-exec flag for file
+    descriptors before executing mailers, cherry-picked from sendmail 8.14.9.
+    CVE-2014-3956  (Closes: #750562)
+  * libmilter-assert.patch: Fix an incorrect assertion in libmilter,
+    cherry-picked from sendmail 8.14.7.  (LP: #1299571)
+  * Add support for OpenSSL options SSL_OP_NO_TLSv1_1 and SSL_OP_NO_TLSv1_2
+    (backported from 8.14.8), thanks to David F. Skoll.  (Closes: #747910)
+  * conf.c-ipv6.patch: Fix A-only MX CNAME interface binding issues when using
+    IPv6, thanks to David F. Skoll.  (Closes: #737164) (LP: #1223633)
+    (backported from 8.14.6)
+  * raise-max-daemons.patch: Raise MAXDAEMONS from 10 to 64, thanks to
+    Kees Cook.  (Closes: #720435)
+  * Switch from deprecated 'find -perm +xxx' to 'find -perm /xxx'.
+    (Closes: #724772)
+  * Start sendmail after bind9 (or any other named) if it is installed.
+    (Closes: #714184)
+  * sendmailconfig: Add missing quoting, thanks to Stuart Sheldon.
+    (Closes: #692047)
+  * Fix infinite loop in update_db, thanks to Flo.  (Closes: #717951)
+  * Do not ship duplicate sendmail.8 manpage.  (Closes: #709895, #597781)
+
+ -- Andreas Beckmann <anbe@debian.org>  Sun, 05 Oct 2014 17:09:20 +0200
+
 sendmail (8.14.4-4) unstable; urgency=low
 
   * New maintainer. (Closes: #699117)
diff -u sendmail-8.14.4/debian/control sendmail-8.14.4/debian/control
--- sendmail-8.14.4/debian/control
+++ sendmail-8.14.4/debian/control
@@ -1,7 +1,7 @@
 Source: sendmail
 Priority: extra
 Section:  mail
-Maintainer: Jakub Safarik <jsafarik@ymail.com>
+Maintainer: Debian QA Group <packages@qa.debian.org>
 Standards-Version: 3.8.3
 Build-Depends-Indep: groff, bsdmainutils
 Build-Depends: make (>> 3.79.1-14), m4, cdbs, quilt, patchutils, dh-buildinfo, debhelper (>= 5), linux-libc-dev (>= 2.6.21-3) [!kfreebsd-i386 !kfreebsd-amd64 !hurd-i386], groff, bsdmainutils, libdb-dev , libldap2-dev, libwrap0-dev, liblockfile-dev, libsasl2-dev, libssl-dev
diff -u sendmail-8.14.4/debian/patches/8.14/8.14.4/series sendmail-8.14.4/debian/patches/8.14/8.14.4/series
--- sendmail-8.14.4/debian/patches/8.14/8.14.4/series
+++ sendmail-8.14.4/debian/patches/8.14/8.14.4/series
@@ -12,0 +13,5 @@
+raise-max-daemons.patch
+conf.c-ipv6.patch
+ssl_op_no_tlsv1_x.patch
+libmilter-assert.patch
+close_on_exec.patch
diff -u sendmail-8.14.4/debian/build/debian/sendmail.init.d.in sendmail-8.14.4/debian/build/debian/sendmail.init.d.in
--- sendmail-8.14.4/debian/build/debian/sendmail.init.d.in
+++ sendmail-8.14.4/debian/build/debian/sendmail.init.d.in
@@ -3,8 +3,10 @@
 # Provides:          sendmail
 # Required-Start:    $remote_fs $network $syslog
 # Required-Stop:     $remote_fs $network $syslog
+# Should-Start:      $named
+# Should-Stop:       $named
 # Default-Start:     2 3 4 5
-# Default-Stop:      1 
+# Default-Stop:      0 1 6
 # Short-Description: powerful, efficient, and scalable Mail Transport Agent
 # Description:       Sendmail is an alternative Mail Transport Agent (MTA)
 #                    for Debian. It is suitable for handling sophisticated
diff -u sendmail-8.14.4/debian/build/debian/control.m4.in sendmail-8.14.4/debian/build/debian/control.m4.in
--- sendmail-8.14.4/debian/build/debian/control.m4.in
+++ sendmail-8.14.4/debian/build/debian/control.m4.in
@@ -21,7 +21,7 @@
 [[Source: sendmail
 Priority: extra
 Section:  mail
-Maintainer: Jakub Safarik <jsafarik@ymail.com>
+Maintainer: Debian QA Group <packages@qa.debian.org>
 Standards-Version: 3.8.3
 ]]dnl # Sigh... build daemons ignore B-D-I, so replicate in B-D :(
 [[Build-Depends-Indep: groff, bsdmainutils
diff -u sendmail-8.14.4/debian/local/update_db.in sendmail-8.14.4/debian/local/update_db.in
--- sendmail-8.14.4/debian/local/update_db.in
+++ sendmail-8.14.4/debian/local/update_db.in
@@ -476,10 +476,8 @@
 	line=$(grep -Ee "^[[:space:]]*$file" \
 		@sysconfdir@/mail/databases || true);
 	while ([ "$line" != "" ]); do
-		str=$(echo "$line" | cut -d "
-" -f 1);
-		line=$(echo "$line" | cut -d "
-" -f 2-);
+		str=$(echo "$line" | head -n 1)
+		line=$(echo "$line" | tail -n +2)
 
 		# Strip line back into four pieces: feature, type, opts, name
 		dbfeat=$(echo "$str" | cut -d ":" -f 1);
diff -u sendmail-8.14.4/debian/local/sendmailconfig.in sendmail-8.14.4/debian/local/sendmailconfig.in
--- sendmail-8.14.4/debian/local/sendmailconfig.in
+++ sendmail-8.14.4/debian/local/sendmailconfig.in
@@ -90,7 +90,7 @@
 	};
 
 input() {
-	local q="$1" def=$(eval "echo -n \$$2");
+	local q="$1" def="$(eval "echo -n \$$2")";
 
 	echo -n "$q? [$def] ";
 	read REPLY
diff -u sendmail-8.14.4/debian/local/update_sys.in sendmail-8.14.4/debian/local/update_sys.in
--- sendmail-8.14.4/debian/local/update_sys.in
+++ sendmail-8.14.4/debian/local/update_sys.in
@@ -117,7 +117,7 @@
 #
 # With the MSP/MTA split, we don't want any g=w files or directories
 # to save us from potential sgid attacks
-find @sysconfdir@/mail -perm +g=w \( -type f -o -type d \) -print \
+find @sysconfdir@/mail -perm /g=w \( -type f -o -type d \) -print \
 	| xargs -r chmod g-w,o-w;
 
 #------------------------------------------------------------------------------
@@ -242,7 +242,7 @@
 	fi;
 chown smmsp:smmsp @localstatedir@/spool/mqueue-client;
 chmod 02770 @localstatedir@/spool/mqueue-client;
-find @localstatedir@/spool/mqueue-client -perm +o=r -print \
+find @localstatedir@/spool/mqueue-client -perm /o=r -print \
 	| xargs -r chmod o-rwx;
 
 #-----------------------------------------------------------------------------
diff -u sendmail-8.14.4/debian/local/bug/sendmail/script.in sendmail-8.14.4/debian/local/bug/sendmail/script.in
--- sendmail-8.14.4/debian/local/bug/sendmail/script.in
+++ sendmail-8.14.4/debian/local/bug/sendmail/script.in
@@ -19,7 +19,7 @@
 DEBUG=0;
 
 # Announce 
-printf "Ouput of $0:\n" >&3;
+printf "Output of $0:\n" >&3;
 
 # Show files in /etc/mail
 printf "\nls -alR /etc/mail:\n" >&3;
only in patch2:
unchanged:
--- sendmail-8.14.4.orig/debian/gbp.conf
+++ sendmail-8.14.4/debian/gbp.conf
@@ -0,0 +1,3 @@
+[DEFAULT]
+upstream-branch = upstream-tar-in-tar
+debian-branch = wheezy
only in patch2:
unchanged:
--- sendmail-8.14.4.orig/debian/patches/8.14/8.14.4/ssl_op_no_tlsv1_x.patch
+++ sendmail-8.14.4/debian/patches/8.14/8.14.4/ssl_op_no_tlsv1_x.patch
@@ -0,0 +1,31 @@
+Date: Mon, 12 May 2014 15:52:30 -0400
+From: "David F. Skoll" <dfs@roaringpenguin.com>
+Subject: Please add support for additional OpenSSL options SSL_OP_NO_TLSv1_2
+ and SSL_OP_NO_TLSv1_1
+
+Sendmail on Wheezy sometimes has interoperability problems with other
+SSL implementations.  Some of these can be fixed by disabling TLS 1.1
+and TLS 1.2.  Sendmail 8.14.8 supports SSL options to do this, but
+Sendmail 8.14.4-4 does not.  Could we backport this patch from 8.14.8 to
+8.14.4-4 so that we can use SSL_OP_NO_TLSv1_2 and SSL_OP_NO_TLSv1_1 ?
+
+Regards,
+
+David.
+
+
+--- a/sendmail/readcf.c
++++ b/sendmail/readcf.c
+@@ -2335,6 +2335,12 @@ static struct ssl_options
+ #ifdef SSL_OP_NO_TLSv1
+ 	{ "SSL_OP_NO_TLSv1",	SSL_OP_NO_TLSv1	},
+ #endif /* SSL_OP_NO_TLSv1 */
++#ifdef SSL_OP_NO_TLSv1_2
++	{ "SSL_OP_NO_TLSv1_2",	SSL_OP_NO_TLSv1_2	},
++#endif
++#ifdef SSL_OP_NO_TLSv1_1
++	{ "SSL_OP_NO_TLSv1_1",	SSL_OP_NO_TLSv1_1	},
++#endif
+ #ifdef SSL_OP_PKCS1_CHECK_1
+ 	{ "SSL_OP_PKCS1_CHECK_1",	SSL_OP_PKCS1_CHECK_1	},
+ #endif /* SSL_OP_PKCS1_CHECK_1 */
only in patch2:
unchanged:
--- sendmail-8.14.4.orig/debian/patches/8.14/8.14.4/raise-max-daemons.patch
+++ sendmail-8.14.4/debian/patches/8.14/8.14.4/raise-max-daemons.patch
@@ -0,0 +1,17 @@
+Description: hard-coded "10" is not enough to listen on both IPv4 and IPv6
+ with a minimal configuration of MTA, MSA, and MSASSL on both localhost
+ and primary interface (12 daemons). Raise limit to 64.
+Author: Kees Cook <kees@debian.org>
+
+diff -uNrp sendmail-8.14.4~/sendmail/conf.h sendmail-8.14.4/sendmail/conf.h
+--- sendmail-8.14.4~/sendmail/conf.h	2009-03-25 13:04:00.000000000 -0700
++++ sendmail-8.14.4/sendmail/conf.h	2013-08-21 12:00:19.385335378 -0700
+@@ -112,7 +112,7 @@ struct rusage;	/* forward declaration to
+ #ifndef MAXHDRSLEN
+ # define MAXHDRSLEN	(32 * 1024)	/* max size of message headers */
+ #endif /* ! MAXHDRSLEN */
+-#define MAXDAEMONS	10		/* max number of ports to listen to */
++#define MAXDAEMONS	64		/* max number of ports to listen to */
+ #ifndef MAXINTERFACES
+ # define MAXINTERFACES	512		/* number of interfaces to probe */
+ #endif /* MAXINTERFACES */
only in patch2:
unchanged:
--- sendmail-8.14.4.orig/debian/patches/8.14/8.14.4/libmilter-assert.patch
+++ sendmail-8.14.4/debian/patches/8.14/8.14.4/libmilter-assert.patch
@@ -0,0 +1,15 @@
+Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/sendmail/+bug/1299571
+
+--- sendmail-8.14.4/libmilter/worker.c	2009-06-15 17:34:54.000000000 +0200
++++ sendmail-8.14.8/libmilter/worker.c	2013-11-22 21:51:37.000000000 +0100
+@@ -165,7 +166,9 @@
+ {
+ 	static long id = 0;
+ 
+-	SM_ASSERT(Tskmgr.tm_signature == TM_SIGNATURE);
++	/* this can happen if the milter is shutting down */
++	if (Tskmgr.tm_signature != TM_SIGNATURE)
++		return MI_FAILURE;
+ 	SM_ASSERT(ctx != NULL);
+ 	POOL_LEV_DPRINTF(4, ("PIPE r=[%d] w=[%d]", RD_PIPE, WR_PIPE));
+ 	TASKMGR_LOCK();
only in patch2:
unchanged:
--- sendmail-8.14.4.orig/debian/patches/8.14/8.14.4/conf.c-ipv6.patch
+++ sendmail-8.14.4/debian/patches/8.14/8.14.4/conf.c-ipv6.patch
@@ -0,0 +1,91 @@
+Description: correctly limit lookups to the same address family
+Author: Claus Assmann
+
+--- sendmail-8.14.4~/sendmail/conf.c.8144	Tue Sep 10 09:46:16 2013
++++ sendmail-8.14.4/sendmail/conf.c	Tue Sep 10 09:46:53 2013
+@@ -4231,7 +4231,18 @@
+ 	h = gethostbyname(name);
+ 	if (!resv6)
+ 		_res.options &= ~RES_USE_INET6;
+-	*err = h_errno;
++
++	/* the function is supposed to return only the requested family */
++	if (h != NULL && h->h_addrtype != family)
++	{
++# if NETINET6
++		freehostent(h);
++# endif /* NETINET6 */
++		h = NULL;
++		*err = NO_DATA;
++	}
++	else
++		*err = h_errno;
+ 	return h;
+ }
+ 
+@@ -4355,6 +4366,17 @@
+ 		}
+ 	}
+ #endif /* (SOLARIS > 10000 && SOLARIS < 20400) || (defined(SOLARIS) && SOLARIS < 204) || (defined(sony_news) && defined(__svr4)) */
++
++	/* the function is supposed to return only the requested family */
++	if (h != NULL && h->h_addrtype != family)
++	{
++# if NETINET6
++		freehostent(h);
++# endif /* NETINET6 */
++		h = NULL;
++		SM_SET_H_ERRNO(NO_DATA);
++	}
++
+ 	if (tTd(61, 10))
+ 	{
+ 		if (h == NULL)
+@@ -4364,13 +4386,12 @@
+ 			sm_dprintf("%s\n", h->h_name);
+ 			if (tTd(61, 11))
+ 			{
++				struct in_addr ia;
++				size_t i;
+ #if NETINET6
+ 				struct in6_addr ia6;
+ 				char buf6[INET6_ADDRSTRLEN];
+-#else /* NETINET6 */
+-				struct in_addr ia;
+ #endif /* NETINET6 */
+-				size_t i;
+ 
+ 				if (h->h_aliases != NULL)
+ 					for (i = 0; h->h_aliases[i] != NULL;
+@@ -4381,16 +4402,23 @@
+ 				{
+ 					char *addr;
+ 
++					addr = NULL;
+ #if NETINET6
+-					memmove(&ia6, h->h_addr_list[i],
+-						IN6ADDRSZ);
+-					addr = anynet_ntop(&ia6,
+-							   buf6, sizeof(buf6));
+-#else /* NETINET6 */
+-					memmove(&ia, h->h_addr_list[i],
+-						INADDRSZ);
+-					addr = (char *) inet_ntoa(ia);
++					if (h->h_addrtype == AF_INET6)
++					{
++						memmove(&ia6, h->h_addr_list[i],
++							IN6ADDRSZ);
++						addr = anynet_ntop(&ia6,
++							buf6, sizeof(buf6));
++					}
++					else
+ #endif /* NETINET6 */
++					/* "else" in #if code above */
++					{
++						memmove(&ia, h->h_addr_list[i],
++							INADDRSZ);
++						addr = (char *) inet_ntoa(ia);
++					}
+ 					if (addr != NULL)
+ 						sm_dprintf("\taddr: %s\n", addr);
+ 				}
only in patch2:
unchanged:
--- sendmail-8.14.4.orig/debian/patches/8.14/8.14.4/close_on_exec.patch
+++ sendmail-8.14.4/debian/patches/8.14/8.14.4/close_on_exec.patch
@@ -0,0 +1,13 @@
+--- sendmail-8.14.8/sendmail/conf.c	2014-01-08 18:03:14.000000000 +0100
++++ sendmail-8.14.9/sendmail/conf.c	2014-05-20 19:24:39.000000000 +0200
+@@ -5309,8 +5309,8 @@
+ */
+ 
+ void
+-sm_close_on_exec(highest, lowest)
+-	int highest, lowest;
++sm_close_on_exec(lowest, highest)
++	int lowest, highest;
+ {
+ #if HASFDWALK
+ 	(void) fdwalk(closefd_walk, &lowest);

Reply to: