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

Bug#773887: unblock: sox/14.4.1-5



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

Please unblock package sox

Version 14.4.1-5 addresses DSA-3112-1. A specially crafted wav file
could cause an application using SoX to crash or, possibly, execute ar
bitrary code.

Please see attached file for the debdiff against the package in testing.

Please,
unblock sox/14.4.1-5

-- System Information:
Debian Release: 8.0
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.16.0-4-amd64 (SMP w/2 CPU cores)
Locale: LANG=fr_CA.utf8, LC_CTYPE=fr_CA.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Init: systemd (via /run/systemd/system)
-- 
Homepage (http://organact.mine.nu)
Debian GNU/Linux (http://www.debian.org)
COMunité/LACIME: École de technologie supérieure (http://www.comunite.ca)
ISIP Laboratory: McGill (http://www.isip.ece.mcgill.ca)
diff -Nru sox-14.4.1/debian/changelog sox-14.4.1/debian/changelog
--- sox-14.4.1/debian/changelog	2014-05-21 22:09:53.000000000 -0400
+++ sox-14.4.1/debian/changelog	2014-12-24 14:40:04.000000000 -0500
@@ -1,3 +1,12 @@
+sox (14.4.1-5) unstable; urgency=medium
+
+  * Patches to fix memory corruptions on the heap, CVE-2014-8145
+    (closes: #773720):
+    + 0001-Check-for-minimum-size-sphere-headers.patch
+    + 0002-More-checks-for-invalid-MS-ADPCM-blocks.patch
+
+ -- Pascal Giard <pascal@debian.org>  Wed, 24 Dec 2014 14:33:55 -0500
+
 sox (14.4.1-4) unstable; urgency=low
 
   * [debian/rules,debian/control]:
diff -Nru sox-14.4.1/debian/patches/0001-Check-for-minimum-size-sphere-headers.patch sox-14.4.1/debian/patches/0001-Check-for-minimum-size-sphere-headers.patch
--- sox-14.4.1/debian/patches/0001-Check-for-minimum-size-sphere-headers.patch	1969-12-31 19:00:00.000000000 -0500
+++ sox-14.4.1/debian/patches/0001-Check-for-minimum-size-sphere-headers.patch	2014-12-24 14:32:59.000000000 -0500
@@ -0,0 +1,14 @@
+--- src/sphere.c.old
++++ src/sphere.c
+@@ -47,6 +47,11 @@ static int start_read(sox_format_t * ft)
+ 
+   /* Determine header size, and allocate a buffer large enough to hold it. */
+   sscanf(fldsval, "%lu", &header_size_ul);
++  if (header_size_ul < 16) {
++    lsx_fail_errno(ft, SOX_EHDR, "Error reading Sphere header");
++    return (SOX_EOF);
++  }
++
+   buf = lsx_malloc(header_size = header_size_ul);
+ 
+   /* Skip what we have read so far */
diff -Nru sox-14.4.1/debian/patches/0002-More-checks-for-invalid-MS-ADPCM-blocks.patch sox-14.4.1/debian/patches/0002-More-checks-for-invalid-MS-ADPCM-blocks.patch
--- sox-14.4.1/debian/patches/0002-More-checks-for-invalid-MS-ADPCM-blocks.patch	1969-12-31 19:00:00.000000000 -0500
+++ sox-14.4.1/debian/patches/0002-More-checks-for-invalid-MS-ADPCM-blocks.patch	2014-12-24 14:32:59.000000000 -0500
@@ -0,0 +1,11 @@
+--- src/wav.c.old
++++ src/wav.c
+@@ -166,7 +166,7 @@ static unsigned short  AdpcmReadBlock(sox_format_t * ft)
+         /* work with partial blocks.  Specs say it should be null */
+         /* padded but I guess this is better than trailing quiet. */
+         samplesThisBlock = lsx_ms_adpcm_samples_in((size_t)0, (size_t)ft->signal.channels, bytesRead, (size_t)0);
+-        if (samplesThisBlock == 0)
++        if (samplesThisBlock == 0 || samplesThisBlock > wav->samplesPerBlock)
+         {
+             lsx_warn("Premature EOF on .wav input file");
+             return 0;

Reply to: