proc: avoid information leaks to non-privileged processes
commit6b06d6282100dd5aacf7d45443d651a1995bd9c4
authorJake Edge <jake@lwn.net>
Mon, 4 May 2009 18:51:14 +0000 (4 12:51 -0600)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 8 May 2009 21:54:36 +0000 (8 14:54 -0700)
tree450de121e3a80bff9c6357963ed720b8007a36e5
parenta239571a953830dbf73f2fcdee6731b5483c77d6
proc: avoid information leaks to non-privileged processes

commit f83ce3e6b02d5e48b3a43b001390e2b58820389d upstream.

By using the same test as is used for /proc/pid/maps and /proc/pid/smaps,
only allow processes that can ptrace() a given process to see information
that might be used to bypass address space layout randomization (ASLR).
These include eip, esp, wchan, and start_stack in /proc/pid/stat as well
as the non-symbolic output from /proc/pid/wchan.

ASLR can be bypassed by sampling eip as shown by the proof-of-concept
code at http://code.google.com/p/fuzzyaslr/ As part of a presentation
(http://www.cr0.org/paper/to-jt-linux-alsr-leak.pdf) esp and wchan were
also noted as possibly usable information leaks as well.  The
start_stack address also leaks potentially useful information.

Cc: Stable Team <stable@kernel.org>
Signed-off-by: Jake Edge <jake@lwn.net>
Acked-by: Arjan van de Ven <arjan@linux.intel.com>
Acked-by: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
fs/proc/array.c
fs/proc/base.c