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

Bug#709490: Two disastrous bugs in RHash in Wheezy



Hello!

The debdiff is attached. It's the minimum patch fixing these two nasty bugs. :)


28.05.2013 3:27, Adam D. Barratt wrote:
On Fri, 2013-05-24 at 15:08 +0700, Aleksey K. wrote:
Sorry, I've mean proposed-updates for a point release. I've already
contacted security team, and was forwarded here :)
Okay.
There is a package (RHash 1.2.9-9) in Sid with these patches. It
should be easy to make debdiff. But since I have very little of free
time now, it can take several days :-/
In case there was any confusion, I meant a debdiff between the current
rhash package in wheezy and the package you'd like to upload containing
the fixes (which would be 1.2.9-8+deb7u1). We can't simply copy the
existing package from sid; the debdiff also has the advantage of meaning
you've built (and preferably tested) the package at least once. :-)

Regards,

Adam


diff -Nru rhash-1.2.9/debian/changelog rhash-1.2.9/debian/changelog
--- rhash-1.2.9/debian/changelog	2012-11-28 23:39:41.000000000 +0700
+++ rhash-1.2.9/debian/changelog	2013-05-31 01:17:54.000000000 +0700
@@ -1,3 +1,11 @@
+rhash (1.2.9-8+deb7u1) stable; urgency=medium
+
+  * Backported two critical bug fixes from RHash 1.2.10
+    - fix incorrect SHA-512 for messages of certain size
+    - fix incorrect GOST hash on non-x86/amd64 CPUs
+
+ -- Aleksey Kravchenko <rhash.admin@gmail.com>  Thu, 30 May 2013 22:34:57 +0700
+
 rhash (1.2.9-8) unstable; urgency=medium
 
   [ Aleksey Kravchenko ]
diff -Nru rhash-1.2.9/debian/patches/03_fix_sha512_and_gost.patch rhash-1.2.9/debian/patches/03_fix_sha512_and_gost.patch
--- rhash-1.2.9/debian/patches/03_fix_sha512_and_gost.patch	1970-01-01 06:00:00.000000000 +0600
+++ rhash-1.2.9/debian/patches/03_fix_sha512_and_gost.patch	2013-05-31 01:00:29.000000000 +0700
@@ -0,0 +1,45 @@
+Description: Fix calculation of SHA-512 and GOST hash
+ This patch backports two critical bug fixes from RHash 1.2.10.
+ SHA-512 was not correctly calculated for files with size
+   112 <= (file_size % 128) < 120.
+ The bug occurs only when several files are sequentually hashed.
+ .
+ Internal buffer of SHA-512 context was not fully cleared by zeroes,
+ when processing final block of data.
+ See also SF-Bug: https://sourceforge.net/p/rhash/bugs/31/
+ .
+ Also the GOST R 34.11-94 hash was broken on non x86 CPUs
+ on some messages containg sequences of words 0xFFFFFFFF.
+ The bug does not occur on x86 and x86-64, because
+ on these archs assembly code replaces C.
+
+Author: Aleksey Kravchenko <rhash.admin@gmail.com>
+Origin: upstream
+Forwarded: not-needed
+Last-Update: 2013-05-31
+
+--- rhash-1.2.9.orig/librhash/sha512.c
++++ rhash-1.2.9/librhash/sha512.c
+@@ -238,6 +238,7 @@ void rhash_sha512_final(sha512_ctx *ctx,
+ 
+ 	/* if no room left in the message to store 64-bit message length */
+ 	if(index >= 15) {
++		if(index == 15) ctx->message[index] = 0;
+ 		rhash_sha512_process_block(ctx->hash, ctx->message);
+ 		index = 0;
+ 	}
+--- rhash-1.2.9.orig/librhash/gost.c
++++ rhash-1.2.9/librhash/gost.c
+@@ -321,10 +321,10 @@ static void rhash_gost_compute_sum_and_h
+ 
+ 	/* compute the 256-bit sum */
+ 	for(i = 0; i < 8; i++) {
+-		const unsigned old = ctx->sum[i];
+ 		LOAD_BLOCK_LE(i);
+ 		ctx->sum[i] += block_le[i] + carry;
+-		carry = (ctx->sum[i] < old || ctx->sum[i] < block_le[i] ? 1 : 0);
++		carry = (ctx->sum[i] < block_le[i] ? 1 :
++			ctx->sum[i] == block_le[i] ? carry : 0);
+ 	}
+ #endif /* USE_GCC_ASM_IA32 */
+ 
diff -Nru rhash-1.2.9/debian/patches/series rhash-1.2.9/debian/patches/series
--- rhash-1.2.9/debian/patches/series	2012-11-28 01:45:27.000000000 +0700
+++ rhash-1.2.9/debian/patches/series	2013-05-30 23:23:06.000000000 +0700
@@ -1,2 +1,3 @@
 01_configure-bindings.patch
 02_python_function_prototypes.patch
+03_fix_sha512_and_gost.patch

Reply to: