[kernel] r11431 - in dists/etch-security/linux-2.6/debian: . patches/bugfix patches/series

Dann Frazier dannf at alioth.debian.org
Wed May 21 07:16:36 UTC 2008


Author: dannf
Date: Wed May 21 07:16:35 2008
New Revision: 11431

Log:
bugfix/hrtimer-prevent-overrun.patch,
bugfix/ktime-fix-MTIME_SEC_MAX-on-32-bit.patch
[SECURITY] Fix potential infinite loop in hrtimer_forward on
64-bit systems
See CVE-2007-6712

Added:
   dists/etch-security/linux-2.6/debian/patches/bugfix/hrtimer-prevent-overrun.patch
   dists/etch-security/linux-2.6/debian/patches/bugfix/ktime-fix-MTIME_SEC_MAX-on-32-bit.patch
Modified:
   dists/etch-security/linux-2.6/debian/changelog
   dists/etch-security/linux-2.6/debian/patches/series/18etch5

Modified: dists/etch-security/linux-2.6/debian/changelog
==============================================================================
--- dists/etch-security/linux-2.6/debian/changelog	(original)
+++ dists/etch-security/linux-2.6/debian/changelog	Wed May 21 07:16:35 2008
@@ -4,8 +4,13 @@
     [SECURITY] Fix remotely-triggerable memory leak in the Simple
     Internet Transition (SIT) code used for IPv6 over IPv4 tunnels
     See CVE-2008-2136
+  * bugfix/hrtimer-prevent-overrun.patch,
+    bugfix/ktime-fix-MTIME_SEC_MAX-on-32-bit.patch
+    [SECURITY] Fix potential infinite loop in hrtimer_forward on
+    64-bit systems
+    See CVE-2007-6712
 
- -- dann frazier <dannf at debian.org>  Wed, 21 May 2008 00:19:51 -0600
+ -- dann frazier <dannf at debian.org>  Wed, 21 May 2008 01:14:18 -0600
 
 linux-2.6 (2.6.18.dfsg.1-18etch4) stable-security; urgency=high
 

Added: dists/etch-security/linux-2.6/debian/patches/bugfix/hrtimer-prevent-overrun.patch
==============================================================================
--- (empty file)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/hrtimer-prevent-overrun.patch	Wed May 21 07:16:35 2008
@@ -0,0 +1,38 @@
+commit 13788ccc41ceea5893f9c747c59bc0b28f2416c2
+Author: Thomas Gleixner <tglx at linutronix.de>
+Date:   Fri Mar 16 13:38:20 2007 -0800
+
+    [PATCH] hrtimer: prevent overrun DoS in hrtimer_forward()
+    
+    hrtimer_forward() does not check for the possible overflow of
+    timer->expires.  This can happen on 64 bit machines with large interval
+    values and results currently in an endless loop in the softirq because the
+    expiry value becomes negative and therefor the timer is expired all the
+    time.
+    
+    Check for this condition and set the expiry value to the max.  expiry time
+    in the future.  The fix should be applied to stable kernel series as well.
+    
+    Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+    Acked-by: Ingo Molnar <mingo at elte.hu>
+    Cc: <stable at kernel.org>
+    Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
+    Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
+
+diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c
+index ec4cb9f..5e7122d 100644
+--- a/kernel/hrtimer.c
++++ b/kernel/hrtimer.c
+@@ -644,6 +644,12 @@ hrtimer_forward(struct hrtimer *timer, ktime_t now, ktime_t interval)
+ 		orun++;
+ 	}
+ 	timer->expires = ktime_add(timer->expires, interval);
++	/*
++	 * Make sure, that the result did not wrap with a very large
++	 * interval.
++	 */
++	if (timer->expires.tv64 < 0)
++		timer->expires = ktime_set(KTIME_SEC_MAX, 0);
+ 
+ 	return orun;
+ }

Added: dists/etch-security/linux-2.6/debian/patches/bugfix/ktime-fix-MTIME_SEC_MAX-on-32-bit.patch
==============================================================================
--- (empty file)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/ktime-fix-MTIME_SEC_MAX-on-32-bit.patch	Wed May 21 07:16:35 2008
@@ -0,0 +1,29 @@
+commit 5379058b718ac6354ba99cc74d10c28d632dc28a
+Author: Thomas Gleixner <tglx at linutronix.de>
+Date:   Fri Mar 16 14:15:57 2007 -0800
+
+    [PATCH] fix MTIME_SEC_MAX on 32-bit
+    
+    The maximum seconds value we can handle on 32bit is LONG_MAX.
+    
+    Cc: Ingo Molnar <mingo at elte.hu>
+    Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
+    Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
+
+diff --git a/include/linux/ktime.h b/include/linux/ktime.h
+index c68c7ac..248305b 100644
+--- a/include/linux/ktime.h
++++ b/include/linux/ktime.h
+@@ -57,7 +57,11 @@ typedef union {
+ } ktime_t;
+ 
+ #define KTIME_MAX			((s64)~((u64)1 << 63))
+-#define KTIME_SEC_MAX			(KTIME_MAX / NSEC_PER_SEC)
++#if (BITS_PER_LONG == 64)
++# define KTIME_SEC_MAX			(KTIME_MAX / NSEC_PER_SEC)
++#else
++# define KTIME_SEC_MAX			LONG_MAX
++#endif
+ 
+ /*
+  * ktime_t definitions when using the 64-bit scalar representation:

Modified: dists/etch-security/linux-2.6/debian/patches/series/18etch5
==============================================================================
--- dists/etch-security/linux-2.6/debian/patches/series/18etch5	(original)
+++ dists/etch-security/linux-2.6/debian/patches/series/18etch5	Wed May 21 07:16:35 2008
@@ -1 +1,3 @@
 + bugfix/sit-missing-kfree_skb-on-pskb_may_pull.patch
++ bugfix/hrtimer-prevent-overrun.patch
++ bugfix/ktime-fix-MTIME_SEC_MAX-on-32-bit.patch



More information about the Kernel-svn-changes mailing list