Package: release.debian.org
Severity: normal
User: release.debian....@packages.debian.org
Usertags: unblock

Please shorten the waiting time for migration of exim4 to testing. This
package's version includes a fix for CVE-2016-9963 (stable's DSA 3747-1).

* Add macro IGNORE_SMTP_LINE_LENGTH_LIMIT to allow disabling the SMTP DATA
  physical line limit check for both for SMTP DATA ACL and remote_smtp*
  transports. Closes: #828801
  Also update corresponding NEWS entry.
* [lintian] debian/changelog: s/lenght/length/
* Pull 75_Fix-DKIM-information-leakage.patch from upstream GIT, fixing DKIM
  information leakage issue CVE-2016-9963.

unblock exim4/4.88~RC6-2

TIA, cu Andreas
-- 
`What a good friend you are to him, Dr. Maturin. His other friends are
so grateful to you.'
`I sew his ears on from time to time, sure'
[The following lists of changes regard files as different if they have
different names, permissions or owners.]

Files in second .changes but not in first
-----------------------------------------
-rw-r--r--  root/root   /usr/lib/debug/.build-id/0e/6ccd0a87df0978d44e8c56384725977293a6dd.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/41/1af8cce86cb5d33e1bdbb837691965bcf4bbe5.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/46/d0128b00d8487771080db604a216ffe5bbc4c9.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/8b/070c0099a8863f5af9e0dc6b4b8b30c882d5e3.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/a2/748941706aae40a4a467296db62bc5fbc5874e.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/b5/21f3139342b3cc5fefc9d5160d1c609170bdf2.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/bc/5c505fbec14f3a52727df50b7ed9a256a6896a.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/d6/5072ddeb66cc7ad6950e23e0ea5d2ea76f9015.debug

Files in first .changes but not in second
-----------------------------------------
-rw-r--r--  root/root   /usr/lib/debug/.build-id/37/68bfb280763a8320ac0cb1b3f5128a6b2f7d50.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/67/180bb423dc99137f0dc7f115e46fa176414b9b.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/71/e8fbf0661a197ef7edf1a50faf9114d0551867.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/76/2c5a67771e75896543d5308d0f31e3a17102b1.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/a0/65508918ffd2a967a51fb0e172d0d85890798c.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/e0/2d1716e0c78e2d1fc27323ec0283c2048e0680.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/f0/aa82f38a765839ff6488981bb29adf9d0c7f4d.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/fc/0f8ff4895d18f4a3647db63921eba5887c1477.debug

Control files of package exim4: lines which differ (wdiff format)
-----------------------------------------------------------------
Depends: debconf (>= 0.5) | debconf-2.0, debconf (>= 1.4.69) | cdebconf (>= 0.39), exim4-base (>= [-4.88~RC6-1),-] {+4.88~RC6-2),+} exim4-base (<< [-4.88~RC6-1.1),-] {+4.88~RC6-2.1),+} exim4-daemon-light | exim4-daemon-heavy | exim4-daemon-custom
Version: [-4.88~RC6-1-] {+4.88~RC6-2+}

Control files of package exim4-base: lines which differ (wdiff format)
----------------------------------------------------------------------
Version: [-4.88~RC6-1-] {+4.88~RC6-2+}

Control files of package exim4-config: lines which differ (wdiff format)
------------------------------------------------------------------------
Version: [-4.88~RC6-1-] {+4.88~RC6-2+}

Control files of package exim4-daemon-heavy: lines which differ (wdiff format)
------------------------------------------------------------------------------
Version: [-4.88~RC6-1-] {+4.88~RC6-2+}

Control files of package exim4-daemon-heavy-dbg: lines which differ (wdiff format)
----------------------------------------------------------------------------------
Build-Ids: [-e02d1716e0c78e2d1fc27323ec0283c2048e0680-] {+a2748941706aae40a4a467296db62bc5fbc5874e+}
Version: [-4.88~RC6-1-] {+4.88~RC6-2+}

Control files of package exim4-daemon-light: lines which differ (wdiff format)
------------------------------------------------------------------------------
Version: [-4.88~RC6-1-] {+4.88~RC6-2+}

Control files of package exim4-daemon-light-dbg: lines which differ (wdiff format)
----------------------------------------------------------------------------------
Build-Ids: [-3768bfb280763a8320ac0cb1b3f5128a6b2f7d50-] {+0e6ccd0a87df0978d44e8c56384725977293a6dd+}
Version: [-4.88~RC6-1-] {+4.88~RC6-2+}

Control files of package exim4-dbg: lines which differ (wdiff format)
---------------------------------------------------------------------
Build-Ids: [-67180bb423dc99137f0dc7f115e46fa176414b9b 71e8fbf0661a197ef7edf1a50faf9114d0551867 762c5a67771e75896543d5308d0f31e3a17102b1 a065508918ffd2a967a51fb0e172d0d85890798c fc0f8ff4895d18f4a3647db63921eba5887c1477-] {+411af8cce86cb5d33e1bdbb837691965bcf4bbe5 46d0128b00d8487771080db604a216ffe5bbc4c9 8b070c0099a8863f5af9e0dc6b4b8b30c882d5e3 b521f3139342b3cc5fefc9d5160d1c609170bdf2 d65072ddeb66cc7ad6950e23e0ea5d2ea76f9015+}
Version: [-4.88~RC6-1-] {+4.88~RC6-2+}

Control files of package exim4-dev: lines which differ (wdiff format)
---------------------------------------------------------------------
Version: [-4.88~RC6-1-] {+4.88~RC6-2+}

Control files of package eximon4: lines which differ (wdiff format)
-------------------------------------------------------------------
Version: [-4.88~RC6-1-] {+4.88~RC6-2+}
diff -Nru exim4-4.88~RC6/debian/changelog exim4-4.88~RC6/debian/changelog
--- exim4-4.88~RC6/debian/changelog	2016-12-08 07:19:18.000000000 +0100
+++ exim4-4.88~RC6/debian/changelog	2016-12-22 16:50:21.000000000 +0100
@@ -1,3 +1,15 @@
+exim4 (4.88~RC6-2) unstable; urgency=high
+
+  * Add macro IGNORE_SMTP_LINE_LENGTH_LIMIT to allow disabling the SMTP DATA
+    physical line limit check for both for SMTP DATA ACL and remote_smtp*
+    transports. Closes: #828801
+    Also update corresponding NEWS entry.
+  * [lintian] debian/changelog: s/lenght/length/
+  * Pull 75_Fix-DKIM-information-leakage.patch from upstream GIT, fixing DKIM
+    information leakage issue CVE-2016-9963.
+
+ -- Andreas Metzler <ametz...@debian.org>  Thu, 22 Dec 2016 16:50:21 +0100
+
 exim4 (4.88~RC6-1) unstable; urgency=low
 
   * New upstream version.
@@ -109,7 +121,7 @@
       expansion. https://bugs.exim.org/show_bug.cgi?id=165
   * Copy information message on rejecting overlong lines in data ACL from
     upstream example configuration. Closes: #823418
-  * Add NEWS entry on line-lenght-limit introduced in 4.87~RC1-1.
+  * Add NEWS entry on line-length-limit introduced in 4.87~RC1-1.
     Closes: 821830
 
  -- Andreas Metzler <ametz...@debian.org>  Sun, 08 May 2016 14:03:10 +0200
@@ -3805,7 +3817,7 @@
     - Supports CRL (Certificate Revocation List) (Closes: #229063)
     - exim_dbmbuild does not crash on _very_ long RHS values.
       (Closes: #231597)
-    - route_list does not use a fixed lenght buffer anymore. (Closes: #231979)
+    - route_list does not use a fixed length buffer anymore. (Closes: #231979)
     - An empty tls_verify_certificates file is correctly interpreted as empty
       list instead of breaking TLS. (Closes: #236478)
   * Korean translation of debconf templates by Changwoo Ryu (Closes: #241499)
diff -Nru exim4-4.88~RC6/debian/debconf/conf.d/acl/40_exim4-config_check_data exim4-4.88~RC6/debian/debconf/conf.d/acl/40_exim4-config_check_data
--- exim4-4.88~RC6/debian/debconf/conf.d/acl/40_exim4-config_check_data	2016-09-25 14:46:29.000000000 +0200
+++ exim4-4.88~RC6/debian/debconf/conf.d/acl/40_exim4-config_check_data	2016-12-18 13:59:15.000000000 +0100
@@ -11,9 +11,11 @@
   # Deny if the message contains an overlong line.  Per the standards
   # we should never receive one such via SMTP.
   #
+  .ifndef IGNORE_SMTP_LINE_LENGTH_LIMIT
   deny    message    = maximum allowed line length is 998 octets, \
                        got $max_received_linelength
           condition  = ${if > {$max_received_linelength}{998}}
+  .endif
 
   # Deny unless the address list headers are syntactically correct.
   #
diff -Nru exim4-4.88~RC6/debian/debconf/conf.d/transport/30_exim4-config_remote_smtp exim4-4.88~RC6/debian/debconf/conf.d/transport/30_exim4-config_remote_smtp
--- exim4-4.88~RC6/debian/debconf/conf.d/transport/30_exim4-config_remote_smtp	2016-09-25 14:46:29.000000000 +0200
+++ exim4-4.88~RC6/debian/debconf/conf.d/transport/30_exim4-config_remote_smtp	2016-12-18 13:59:52.000000000 +0100
@@ -9,7 +9,9 @@
 remote_smtp:
   debug_print = "T: remote_smtp for $local_part@$domain"
   driver = smtp
+.ifndef IGNORE_SMTP_LINE_LENGTH_LIMIT
   message_size_limit = ${if > {$max_received_linelength}{998} {1}{0}}
+.endif
 .ifdef REMOTE_SMTP_HOSTS_AVOID_TLS
   hosts_avoid_tls = REMOTE_SMTP_HOSTS_AVOID_TLS
 .endif
diff -Nru exim4-4.88~RC6/debian/debconf/conf.d/transport/30_exim4-config_remote_smtp_smarthost exim4-4.88~RC6/debian/debconf/conf.d/transport/30_exim4-config_remote_smtp_smarthost
--- exim4-4.88~RC6/debian/debconf/conf.d/transport/30_exim4-config_remote_smtp_smarthost	2016-09-25 14:46:29.000000000 +0200
+++ exim4-4.88~RC6/debian/debconf/conf.d/transport/30_exim4-config_remote_smtp_smarthost	2016-12-18 14:00:13.000000000 +0100
@@ -12,7 +12,9 @@
 remote_smtp_smarthost:
   debug_print = "T: remote_smtp_smarthost for $local_part@$domain"
   driver = smtp
+.ifndef IGNORE_SMTP_LINE_LENGTH_LIMIT
   message_size_limit = ${if > {$max_received_linelength}{998} {1}{0}}
+.endif
   hosts_try_auth = <; ${if exists{CONFDIR/passwd.client} \
         {\
         ${lookup{$host}nwildlsearch{CONFDIR/passwd.client}{$host_address}}\
diff -Nru exim4-4.88~RC6/debian/NEWS exim4-4.88~RC6/debian/NEWS
--- exim4-4.88~RC6/debian/NEWS	2016-09-25 14:46:29.000000000 +0200
+++ exim4-4.88~RC6/debian/NEWS	2016-12-18 14:04:32.000000000 +0100
@@ -1,9 +1,11 @@
 exim4 (4.87-3) unstable; urgency=medium
 
-  Starting with 4.87~RC1-1 exim will not accept messages with physical lines
-  longer than 998 characters. Delivery of such RFC-violating message might
-  fail and subsequently cause routing errors and loss of legitimate mail.
-  See <https://bugs.exim.org/show_bug.cgi?id=1684>.
+  Starting with 4.87~RC1-1 exim will not accept or send out messages with
+  physical lines longer than 998 characters by SMTP DATA. Delivery of such
+  RFC-violating message might fail and subsequently cause routing errors and
+  loss of legitimate mail.  See <https://bugs.exim.org/show_bug.cgi?id=1684>.
+  This limit can be disabled by setting the macro
+  IGNORE_SMTP_LINE_LENGTH_LIMIT.
 
  -- Andreas Metzler <ametz...@debian.org>  Sun, 08 May 2016 14:03:10 +0200
 
diff -Nru exim4-4.88~RC6/debian/patches/75_Fix-DKIM-information-leakage.patch exim4-4.88~RC6/debian/patches/75_Fix-DKIM-information-leakage.patch
--- exim4-4.88~RC6/debian/patches/75_Fix-DKIM-information-leakage.patch	1970-01-01 01:00:00.000000000 +0100
+++ exim4-4.88~RC6/debian/patches/75_Fix-DKIM-information-leakage.patch	2016-12-18 18:16:03.000000000 +0100
@@ -0,0 +1,73 @@
+From 87cb4a166c47b57df48c2918e47801d77639fbb0 Mon Sep 17 00:00:00 2001
+From: Jeremy Harris <j...@wizmail.org>
+Date: Fri, 16 Dec 2016 20:45:44 +0000
+Subject: [PATCH 1/2] Fix DKIM information leakage
+
+ 
+JH/34 SECURITY: Use proper copy of DATA command in error message.
+      Could leak key material.  Remotely exploitable.  CVE-2016-9963.
+
+diff --git a/src/dkim.c b/src/dkim.c
+index 3fa11c80..70c9547e 100644
+--- a/src/dkim.c
++++ b/src/dkim.c
+@@ -612,6 +612,7 @@ while ((dkim_signing_domain = string_nextinlist(&dkim_domain, &sep,
+ 			 CS dkim_private_key_expanded,
+ 			 PDKIM_ALGO_RSA_SHA256,
+ 			 dkim->dot_stuffed);
++  dkim_private_key_expanded[0] = '\0';
+   pdkim_set_optional(ctx,
+ 		      CS dkim_sign_headers_expanded,
+ 		      NULL,
+diff --git a/src/transports/smtp.c b/src/transports/smtp.c
+index d6ef34ef..a19e85ff 100644
+--- a/src/transports/smtp.c
++++ b/src/transports/smtp.c
+@@ -285,10 +285,11 @@ static uschar *rf_names[] = { US"NEVER", US"SUCCESS", US"FAILURE", US"DELAY" };
+ 
+ /* Local statics */
+ 
+-static uschar *smtp_command;   /* Points to last cmd for error messages */
+-static uschar *mail_command;   /* Points to MAIL cmd for error messages */
+-static BOOL    update_waiting; /* TRUE to update the "wait" database */
+-static BOOL    pipelining_active; /* current transaction is in pipe mode */
++static uschar *smtp_command;		/* Points to last cmd for error messages */
++static uschar *mail_command;		/* Points to MAIL cmd for error messages */
++static uschar *data_command = US"";	/* Points to DATA cmd for error messages */
++static BOOL    update_waiting;		/* TRUE to update the "wait" database */
++static BOOL    pipelining_active;	/* current transaction is in pipe mode */
+ 
+ 
+ /*************************************************
+@@ -1390,10 +1391,14 @@ uschar * buffer = tctx->buffer;
+ /* Write SMTP chunk header command */
+ 
+ if (chunk_size > 0)
++  {
+   if((cmd_count = smtp_write_command(tctx->outblock, FALSE, "BDAT %u%s\r\n",
+ 			      chunk_size,
+ 			      flags & tc_chunk_last ? " LAST" : "")
+      ) < 0) return ERROR;
++  if (flags & tc_chunk_last)
++    data_command = string_copy(big_buffer);  /* Save for later error message */
++  }
+ 
+ prev_cmd_count = cmd_count += tctx->cmd_count;
+ 
+@@ -2512,6 +2517,7 @@ if (  !(peer_offered & PEER_OFFERED_CHUNKING)
+     default: goto RESPONSE_FAILED;       /* I/O error, or any MAIL/DATA error */
+     }
+   pipelining_active = FALSE;
++  data_command = string_copy(big_buffer);  /* Save for later error message */
+   }
+ 
+ /* If there were no good recipients (but otherwise there have been no
+@@ -2735,7 +2741,7 @@ else
+ #else
+ 	    "LMTP error after %s: %s",
+ #endif
+-            big_buffer, string_printing(buffer));
++            data_command, string_printing(buffer));
+           setflag(addr, af_pass_message);   /* Allow message to go to user */
+           if (buffer[0] == '5')
+             addr->transport_return = FAIL;
diff -Nru exim4-4.88~RC6/debian/patches/series exim4-4.88~RC6/debian/patches/series
--- exim4-4.88~RC6/debian/patches/series	2016-11-19 17:39:37.000000000 +0100
+++ exim4-4.88~RC6/debian/patches/series	2016-12-18 18:16:06.000000000 +0100
@@ -8,4 +8,5 @@
 60_convert4r4.dpatch
 67_unnecessaryCopt.diff
 70_remove_exim-users_references.dpatch
+75_Fix-DKIM-information-leakage.patch
 92_CVE-2016-1238.diff

Attachment: signature.asc
Description: PGP signature

Reply via email to