All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] posix-timers: fix stack info leak in timer_create()
@ 2014-10-04 21:06 Mathias Krause
  2014-10-05 21:06 ` Oleg Nesterov
  2014-10-25  8:45 ` [tip:timers/urgent] posix-timers: Fix " tip-bot for Mathias Krause
  0 siblings, 2 replies; 6+ messages in thread
From: Mathias Krause @ 2014-10-04 21:06 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: linux-kernel, Mathias Krause, Oleg Nesterov, Brad Spengler,
	PaX Team

If userland creates a timer without specifying a sigevent info, we'll
create one ourself, using a stack local variable. Particularly will we
use the timer ID as sival_int. But as sigev_value is a union containing
a pointer and an int, that assignment will only partially initialize
sigev_value on systems where the size of a pointer is bigger than the
size of an int. On such systems we'll copy the uninitialized stack bytes
from the timer_create() call to userland when the timer actually fires
and we're going to deliver the signal.

Initialize sigev_value with 0 to plug the stack info leak.

Found in the PaX patch, written by the PaX Team.

Fixes: 5a9fa7307285 ("posix-timers: kill ->it_sigev_signo and...")
Signed-off-by: Mathias Krause <minipli@googlemail.com>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Brad Spengler <spender@grsecurity.net>
Cc: PaX Team <pageexec@freemail.hu>
Cc: <stable@vger.kernel.org>	# v2.6.28+
---
 kernel/time/posix-timers.c |    1 +
 1 file changed, 1 insertion(+)

diff --git a/kernel/time/posix-timers.c b/kernel/time/posix-timers.c
index 42b463ad90f2..31ea01f42e1f 100644
--- a/kernel/time/posix-timers.c
+++ b/kernel/time/posix-timers.c
@@ -636,6 +636,7 @@ SYSCALL_DEFINE3(timer_create, const clockid_t, which_clock,
 			goto out;
 		}
 	} else {
+		memset(&event.sigev_value, 0, sizeof(event.sigev_value));
 		event.sigev_notify = SIGEV_SIGNAL;
 		event.sigev_signo = SIGALRM;
 		event.sigev_value.sival_int = new_timer->it_id;
-- 
1.7.10.4


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2014-10-25 18:43 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-10-04 21:06 [PATCH] posix-timers: fix stack info leak in timer_create() Mathias Krause
2014-10-05 21:06 ` Oleg Nesterov
2014-10-05 21:24   ` Thomas Gleixner
2014-10-05 21:54   ` Mathias Krause
2014-10-05 22:28     ` Oleg Nesterov
2014-10-25  8:45 ` [tip:timers/urgent] posix-timers: Fix " tip-bot for Mathias Krause

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.