linux/include
Kees Cook d049f74f2d exec/ptrace: fix get_dumpable() incorrect tests
The get_dumpable() return value is not boolean.  Most users of the
function actually want to be testing for non-SUID_DUMP_USER(1) rather than
SUID_DUMP_DISABLE(0).  The SUID_DUMP_ROOT(2) is also considered a
protected state.  Almost all places did this correctly, excepting the two
places fixed in this patch.

Wrong logic:
    if (dumpable == SUID_DUMP_DISABLE) { /* be protective */ }
        or
    if (dumpable == 0) { /* be protective */ }
        or
    if (!dumpable) { /* be protective */ }

Correct logic:
    if (dumpable != SUID_DUMP_USER) { /* be protective */ }
        or
    if (dumpable != 1) { /* be protective */ }

Without this patch, if the system had set the sysctl fs/suid_dumpable=2, a
user was able to ptrace attach to processes that had dropped privileges to
that user.  (This may have been partially mitigated if Yama was enabled.)

The macros have been moved into the file that declares get/set_dumpable(),
which means things like the ia64 code can see them too.

CVE-2013-2929

Reported-by: Vasily Kulikov <segoon@openwall.com>
Signed-off-by: Kees Cook <keescook@chromium.org>
Cc: "Luck, Tony" <tony.luck@intel.com>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2013-11-13 12:09:33 +09:00
..
acpi ACPI, CPER: Update cper info 2013-10-21 15:12:00 -07:00
asm-generic bitops/find: clarify and extend documentation 2013-11-13 12:09:22 +09:00
clocksource drivers: clocksource: add support for ARM architected timer event stream 2013-09-26 09:48:00 +01:00
crypto
drm Revert "drm: mark context support as a legacy subsystem" 2013-09-20 08:32:59 +10:00
dt-bindings The clock changes for 3.13 are an even mix of framework improvements & 2013-11-12 16:11:47 +09:00
keys
kvm
linux exec/ptrace: fix get_dumpable() incorrect tests 2013-11-13 12:09:33 +09:00
math-emu
media Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2013-09-05 14:54:29 -07:00
memory
misc
net ipv6: reset dst.expires value when clearing expire flag 2013-10-25 19:26:59 -04:00
pcmcia
ras
rdma
rxrpc
scsi Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending 2013-09-12 16:11:45 -07:00
sound Merge remote-tracking branch 'asoc/topic/twl4030' into asoc-next 2013-11-08 10:43:40 +00:00
target target/iscsi: Bump versions to v4.1.0 2013-09-10 20:23:37 -07:00
trace mm: get rid of unnecessary overhead of trace_mm_page_alloc_extfrag() 2013-11-13 12:09:10 +09:00
uapi errno.h: remove "NFS" from descriptions in comments 2013-11-13 12:09:12 +09:00
video video: exynos_dp: remove non-DT support for Exynos Display Port 2013-10-16 13:48:09 -07:00
xen Features: 2013-09-04 17:45:39 -07:00
Kbuild