Your message dated Thu, 10 Aug 2017 17:19:59 +0000
with message-id <e1dfr7n-0007ji...@fasolo.debian.org>
and subject line Bug#871557: fixed in mixmaster 3.0.0-10
has caused the Debian Bug report #871557,
regarding mixmaster: segmentation fault in DES key handling
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)


-- 
871557: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=871557
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Package: mixmaster
Version: 3.0.0-9
Severity: grave
Tags: patch

Dear Maintainer,

the conversion to use libssl 1.1 renders the package allmost unusable
due to segmentation faults in DES key handling.
DES_set_key() does not allocate memory. After converting
"des_key_schedule X" to "DES_key_schedule *X" DES_set_key() tries to
access memory through an uninitialized pointer. Change conversion to
"DES_key_schedule X" and adapt the usage from "X" to "&X".

Regards
    Bene
diff -ruNp mixmaster-3.0.0.orig/debian/patches/mixmaster-libssl-1.1.patch mixmaster-3.0.0/debian/patches/mixmaster-libssl-1.1.patch
--- mixmaster-3.0.0.orig/debian/patches/mixmaster-libssl-1.1.patch	2017-07-02 19:28:00.000000000 +0200
+++ mixmaster-3.0.0/debian/patches/mixmaster-libssl-1.1.patch	2017-08-08 21:50:58.703847144 +0200
@@ -176,9 +176,9 @@ Migrate to libssl 1.1
 -  des_key_schedule ks2;
 -  des_key_schedule ks3;
 -  des_cblock i;
-+  DES_key_schedule *ks1;
-+  DES_key_schedule *ks2;
-+  DES_key_schedule *ks3;
++  DES_key_schedule ks1;
++  DES_key_schedule ks2;
++  DES_key_schedule ks3;
 +  DES_cblock i;
  
    assert(enc == ENCRYPT || enc == DECRYPT);
@@ -188,16 +188,16 @@ Migrate to libssl 1.1
    memcpy(i, iv->data, 8);	/* leave iv buffer unchanged */
 -  des_set_key((const_des_cblock *) key->data, ks1);
 -  des_set_key((const_des_cblock *) (key->data + 8), ks2);
-+  DES_set_key((const_DES_cblock *) key->data, ks1);
-+  DES_set_key((const_DES_cblock *) (key->data + 8), ks2);
++  DES_set_key((const_DES_cblock *) key->data, &ks1);
++  DES_set_key((const_DES_cblock *) (key->data + 8), &ks2);
    if (key->length == 16)
 -    des_set_key((const_des_cblock *) key->data, ks3);
-+    DES_set_key((const_DES_cblock *) key->data, ks3);
++    DES_set_key((const_DES_cblock *) key->data, &ks3);
    else
 -    des_set_key((const_des_cblock *) (key->data + 16), ks3);
 -  des_ede3_cbc_encrypt(buf->data, buf->data, buf->length, ks1, ks2, ks3,
-+    DES_set_key((const_DES_cblock *) (key->data + 16), ks3);
-+  DES_ede3_cbc_encrypt(buf->data, buf->data, buf->length, ks1, ks2, ks3,
++    DES_set_key((const_DES_cblock *) (key->data + 16), &ks3);
++  DES_ede3_cbc_encrypt(buf->data, buf->data, buf->length, &ks1, &ks2, &ks3,
  		       &i, enc);
    return (0);
  }
@@ -208,9 +208,9 @@ Migrate to libssl 1.1
 -  des_key_schedule ks1;
 -  des_key_schedule ks2;
 -  des_key_schedule ks3;
-+  DES_key_schedule *ks1;
-+  DES_key_schedule *ks2;
-+  DES_key_schedule *ks3;
++  DES_key_schedule ks1;
++  DES_key_schedule ks2;
++  DES_key_schedule ks3;
  
    assert(enc == ENCRYPT || enc == DECRYPT);
    assert(key->length == 24 && iv->length == 8);
@@ -220,10 +220,10 @@ Migrate to libssl 1.1
 -  des_set_key((const_des_cblock *) (key->data + 16), ks3);
 -  des_ede3_cfb64_encrypt(buf->data, buf->data, buf->length, ks1, ks2, ks3,
 -			(des_cblock *) iv->data, &n, enc);
-+  DES_set_key((const_DES_cblock *) key->data, ks1);
-+  DES_set_key((const_DES_cblock *) (key->data + 8), ks2);
-+  DES_set_key((const_DES_cblock *) (key->data + 16), ks3);
-+  DES_ede3_cfb64_encrypt(buf->data, buf->data, buf->length, ks1, ks2, ks3,
++  DES_set_key((const_DES_cblock *) key->data, &ks1);
++  DES_set_key((const_DES_cblock *) (key->data + 8), &ks2);
++  DES_set_key((const_DES_cblock *) (key->data + 16), &ks3);
++  DES_ede3_cfb64_encrypt(buf->data, buf->data, buf->length, &ks1, &ks2, &ks3,
 +			(DES_cblock *) iv->data, &n, enc);
    return (0);
  }
@@ -240,9 +240,9 @@ Migrate to libssl 1.1
 -  des_key_schedule ks1;
 -  des_key_schedule ks2;
 -  des_key_schedule ks3;
-+  DES_key_schedule *ks1;
-+  DES_key_schedule *ks2;
-+  DES_key_schedule *ks3;
++  DES_key_schedule ks1;
++  DES_key_schedule ks2;
++  DES_key_schedule ks3;
    SHA_CTX c;
  
    assert(key->length == 25);
@@ -253,38 +253,44 @@ Migrate to libssl 1.1
 -  des_set_key((const_des_cblock *) (key->data + 1), ks1);
 -  des_set_key((const_des_cblock *) (key->data + 9), ks2);
 -  des_set_key((const_des_cblock *) (key->data+ 17), ks3);
-+  DES_set_key((const_DES_cblock *) (key->data + 1), ks1);
-+  DES_set_key((const_DES_cblock *) (key->data + 9), ks2);
-+  DES_set_key((const_DES_cblock *) (key->data+ 17), ks3);
++  DES_set_key((const_DES_cblock *) (key->data + 1), &ks1);
++  DES_set_key((const_DES_cblock *) (key->data + 9), &ks2);
++  DES_set_key((const_DES_cblock *) (key->data+ 17), &ks3);
  
    if (mdc) {
      mdc = 1;
-@@ -186,21 +186,21 @@
+@@ -186,22 +186,23 @@
      SHA1_Update(&c, in->data, in->length);
    }
    n = 0;
 -  des_ede3_cfb64_encrypt(out->data + mdc, out->data + mdc, 10, ks1, ks2, ks3, &iv, &n,
-+  DES_ede3_cfb64_encrypt(out->data + mdc, out->data + mdc, 10, ks1, ks2, ks3, &iv, &n,
- 			 ENCRYPT);
+-			 ENCRYPT);
++  DES_ede3_cfb64_encrypt(out->data + mdc, out->data + mdc, 10,
++			 &ks1, &ks2, &ks3, &iv, &n, ENCRYPT);
    if (!mdc) {
      iv[6] = iv[0], iv[7] = iv[1];
      memcpy(iv, out->data + 2, 6);
      n = 0;
    }
 -  des_ede3_cfb64_encrypt(in->data, out->data + 10 + mdc, in->length, ks1, ks2, ks3,
-+  DES_ede3_cfb64_encrypt(in->data, out->data + 10 + mdc, in->length, ks1, ks2, ks3,
- 			 &iv, &n, ENCRYPT);
+-			 &iv, &n, ENCRYPT);
++  DES_ede3_cfb64_encrypt(in->data, out->data + 10 + mdc, in->length,
++			 &ks1, &ks2, &ks3, &iv, &n, ENCRYPT);
    if (mdc) {
      SHA1_Update(&c, "\xD3\x14", 2); /* 0xD3 = 0xC0 | PGP_MDC */
 -    des_ede3_cfb64_encrypt("\xD3\x14", out->data + 11 + in->length, 2, ks1, ks2, ks3,
-+    DES_ede3_cfb64_encrypt("\xD3\x14", out->data + 11 + in->length, 2, ks1, ks2, ks3,
- 		       &iv, &n, ENCRYPT);
+-		       &iv, &n, ENCRYPT);
++    DES_ede3_cfb64_encrypt("\xD3\x14", out->data + 11 + in->length, 2,
++			   &ks1, &ks2, &ks3, &iv, &n, ENCRYPT);
      SHA1_Final(out->data + 13 + in->length, &c);
 -    des_ede3_cfb64_encrypt(out->data + 13 + in->length, out->data + 13 + in->length, 20, ks1, ks2, ks3,
-+    DES_ede3_cfb64_encrypt(out->data + 13 + in->length, out->data + 13 + in->length, 20, ks1, ks2, ks3,
- 		       &iv, &n, ENCRYPT);
+-		       &iv, &n, ENCRYPT);
++    DES_ede3_cfb64_encrypt(out->data + 13 + in->length,
++			   out->data + 13 + in->length, 20, &ks1, &ks2, &ks3,
++			   &iv, &n, ENCRYPT);
    }
    return (0);
+ }
 --- a/Src/pgpdata.c
 +++ b/Src/pgpdata.c
 @@ -131,6 +131,7 @@
@@ -580,35 +586,38 @@ Migrate to libssl 1.1
 -  des_key_schedule ks1;
 -  des_key_schedule ks2;
 -  des_key_schedule ks3;
-+  DES_key_schedule *ks1;
-+  DES_key_schedule *ks2;
-+  DES_key_schedule *ks3;
++  DES_key_schedule ks1;
++  DES_key_schedule ks2;
++  DES_key_schedule ks3;
    SHA_CTX c;
    char md[20]; /* we could make hdr 20 bytes long and reuse it for md */
  
-@@ -423,12 +423,12 @@
+@@ -423,12 +423,13 @@
    for (i = 0; i < 8; i++)
      iv[i] = 0;
  
 -  des_set_key((const_des_cblock *) key->data, ks1);
 -  des_set_key((const_des_cblock *) (key->data + 8), ks2);
 -  des_set_key((const_des_cblock *) (key->data+ 16), ks3);
-+  DES_set_key((const_DES_cblock *) key->data, ks1);
-+  DES_set_key((const_DES_cblock *) (key->data + 8), ks2);
-+  DES_set_key((const_DES_cblock *) (key->data+ 16), ks3);
++  DES_set_key((const_DES_cblock *) key->data, &ks1);
++  DES_set_key((const_DES_cblock *) (key->data + 8), &ks2);
++  DES_set_key((const_DES_cblock *) (key->data+ 16), &ks3);
  
    n = 0;
 -  des_ede3_cfb64_encrypt(in->data + mdc, hdr, 10, ks1, ks2, ks3, &iv, &n, DECRYPT);
-+  DES_ede3_cfb64_encrypt(in->data + mdc, hdr, 10, ks1, ks2, ks3, &iv, &n, DECRYPT);
++  DES_ede3_cfb64_encrypt(in->data + mdc, hdr, 10, &ks1, &ks2, &ks3,
++			 &iv, &n, DECRYPT);
    if (n != 2 || hdr[8] != hdr[6] || hdr[9] != hdr[7]) {
      err = -1;
      goto end;
-@@ -441,7 +441,7 @@
+@@ -441,8 +442,8 @@
      memcpy(iv, in->data + 2, 6);
      n = 0;
    }
 -  des_ede3_cfb64_encrypt(in->data + 10 + mdc, out->data, in->length - 10 + mdc, ks1,
-+  DES_ede3_cfb64_encrypt(in->data + 10 + mdc, out->data, in->length - 10 + mdc, ks1,
- 			 ks2, ks3, &iv, &n, DECRYPT);
+-			 ks2, ks3, &iv, &n, DECRYPT);
++  DES_ede3_cfb64_encrypt(in->data + 10 + mdc, out->data, in->length - 10 + mdc,
++			 &ks1, &ks2, &ks3, &iv, &n, DECRYPT);
    if (mdc) {
      if (out->length > 22) {
+       out->length -= 22;

--- End Message ---
--- Begin Message ---
Source: mixmaster
Source-Version: 3.0.0-10

We believe that the bug you reported is fixed in the latest version of
mixmaster, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 871...@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Colin Tuckley <col...@debian.org> (supplier of updated mixmaster package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmas...@ftp-master.debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Format: 1.8
Date: Thu, 10 Aug 2017 17:27:47 +0100
Source: mixmaster
Binary: mixmaster
Architecture: source amd64
Version: 3.0.0-10
Distribution: unstable
Urgency: medium
Maintainer: Colin Tuckley <col...@debian.org>
Changed-By: Colin Tuckley <col...@debian.org>
Description:
 mixmaster  - Anonymous remailer client and server
Closes: 871557
Changes:
 mixmaster (3.0.0-10) unstable; urgency=medium
 .
   * Fix segmentation fault in DES key handling
     patch from Benedikt Spranger <b.spran...@linutronix.de>
     (Closes: #871557)
   * Bump standards version to 4.0.0 (no changes required)
   * Add status option to /etc/init.d script.
Checksums-Sha1:
 eaac46fb5bc711f21fcf42e8ed2af50081a57771 1818 mixmaster_3.0.0-10.dsc
 c3b5c236f1a1785cf4be1ef90433ed610241093b 32800 mixmaster_3.0.0-10.debian.tar.xz
 ab8fd7ac4ce51e9bf4cbe5c7743ab7ab79452132 272164 
mixmaster-dbgsym_3.0.0-10_amd64.deb
 b60ffb4518c6f3bfb8270df76ca11ed5806a5123 6390 
mixmaster_3.0.0-10_amd64.buildinfo
 cadad719543eafbfee5f94af16de03c8e694b13e 207454 mixmaster_3.0.0-10_amd64.deb
Checksums-Sha256:
 c2947661356a0b0189e494e51329650d5dfe123f33edbbb0792d12010fcfbf2a 1818 
mixmaster_3.0.0-10.dsc
 5896f848ed06d20b675d34808a523802e7e959bdf03d7590fe2b7a395b7037f0 32800 
mixmaster_3.0.0-10.debian.tar.xz
 94b70223539bbcfe6097c2c895d04d7226f8a369f2f7bfad5898ac4f90441a73 272164 
mixmaster-dbgsym_3.0.0-10_amd64.deb
 63e2b4bccd8c9acc98241c641ef0aedbce0f9e50f2ddec21bdd718c2a399d5cc 6390 
mixmaster_3.0.0-10_amd64.buildinfo
 7770ea3bdd9811ddde958e29d1e1e90a7bc98074d58d2a8bd6b2376467642e16 207454 
mixmaster_3.0.0-10_amd64.deb
Files:
 0454b8120824ef2b26ba0e4a15bf038e 1818 mail optional mixmaster_3.0.0-10.dsc
 b10a7b092bdba4dbfc7bf3115217fea3 32800 mail optional 
mixmaster_3.0.0-10.debian.tar.xz
 5444727e1bc962272c195584d895c34d 272164 debug extra 
mixmaster-dbgsym_3.0.0-10_amd64.deb
 e3dc159ce445be94497240c66b188116 6390 mail optional 
mixmaster_3.0.0-10_amd64.buildinfo
 8ba226c1fca7ea424c7b7008ed803600 207454 mail optional 
mixmaster_3.0.0-10_amd64.deb

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEq4t0jL2QJYBE2VXS+gxBBzjJ2QMFAlmMkNsACgkQ+gxBBzjJ
2QMHog/9HvMzRRkJuangFUQaInCri+6/tSWrNWwGtoALQvsTeZTwXK1vN0YrAXmV
JC2co0OC5lpU4Cqp0RNLHZqgY/lmyqnCANE75ZFhPO6D7bU5wpKEM5tkzCtEVxHV
HYyYp7UvXYDp3sH5oPLWZPleLsXxeWT8Dvu1OXwaWNMc4wonWKchGsXWvZuIxRiN
y6H41pWa+CWqIBF0IlmO3nMvlcPf/79/3ZaKqiqzAbLNQQIe2l3UjdNvovIINrgD
ylVoTROOdNI/cgwtfnRhlUKkA/IdbhOki7fUw75ydDVS+SJ2z6k4jclao/h71gLM
alICnWHTASKkNMuVsZSinPPzgYl9ipEcsyx5lE3v3pRupQyKL/DjIPsjNQCPac+Y
ITL1CN9ix0WYWrCADXiIFmpH+6NrG6QvPuYVklSLGbb29/U2Bnt5aZ4dL0B7F8yP
+SeovYQfHqGSdTuIz8nTd7PyRPM9oDVAa77QGo4JP3TEzMdQ8vvX83WdTJGN0Pxb
qAaZmS+uIQHFAnGWQTFmk/TsRyLmZR4gxlFeemxioiNAts53EPXWuEhcwuiojeuT
vuUvX/ARRt/q4zYHBAEHzk2PRJ6ovxOojtsOG6+giKIRB/uw3wEbjx4KRKYkVWit
zX3rLDi0BfCmMbG0OXcMiGLDJ3w28O62JS/ciM80Hh5HB15UZiE=
=dWXC
-----END PGP SIGNATURE-----

--- End Message ---

Reply via email to