Eric W. Biederman
e71b4e061c
ptrace: Don't allow accessing an undumpable mm
...
commit 84d77d3f06e7e8dea057d10e8ec77ad71f721be3 upstream.
It is the reasonable expectation that if an executable file is not
readable there will be no way for a user without special privileges to
read the file. This is enforced in ptrace_attach but if ptrace
is already attached before exec there is no enforcement for read-only
executables.
As the only way to read such an mm is through access_process_vm
spin a variant called ptrace_access_vm that will fail if the
target process is not being ptraced by the current process, or
the current process did not have sufficient privileges when ptracing
began to read the target processes mm.
In the ptrace implementations replace access_process_vm by
ptrace_access_vm. There remain several ptrace sites that still use
access_process_vm as they are reading the target executables
instructions (for kernel consumption) or register stacks. As such it
does not appear necessary to add a permission check to those calls.
This bug has always existed in Linux.
Fixes: v1.0
Reported-by: Andy Lutomirski <luto@amacapital.net>
Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-01-06 10:40:13 +01:00
..
.gitignore
8250-platform.c
asm-offsets.c
MIPS: KVM: Drop now unused asm offsets
2016-07-05 16:08:48 +02:00
binfmt_elfn32.c
MIPS: kernel: Audit and remove any unnecessary uses of module.h
2016-10-05 01:31:20 +02:00
binfmt_elfo32.c
MIPS: kernel: Audit and remove any unnecessary uses of module.h
2016-10-05 01:31:20 +02:00
bmips_5xxx_init.S
MIPS: BMIPS: Make whitespacely correct.
2016-05-09 12:00:01 +02:00
bmips_vec.S
MIPS: BMIPS: Add Whirlwind (BMIPS5200) initialization code
2016-05-09 12:00:01 +02:00
branch.c
MIPS: tracing: disable uprobe/kprobe on compact branch instructions
2016-10-06 17:37:40 +02:00
cevt-bcm1480.c
MIPS: cevt-bcm1480: Migrate to new 'set-state' interface
2015-09-03 12:07:51 +02:00
cevt-ds1287.c
MIPS: cevt-ds1287: Migrate to new 'set-state' interface
2015-09-03 12:07:51 +02:00
cevt-gt641xx.c
MIPS: cevt-gt641xx: Migrate to new 'set-state' interface
2015-09-03 12:07:51 +02:00
cevt-r4k.c
MIPS: Fix r4k clockevents registration
2016-07-24 11:59:48 +02:00
cevt-sb1250.c
MIPS: cevt-sb1250: Migrate to new 'set-state' interface
2015-09-03 12:07:52 +02:00
cevt-txx9.c
MIPS: cevt-txx9: Migrate to new 'set-state' interface
2015-09-03 12:07:53 +02:00
cps-vec-ns16550.S
MIPS: CPS: Early debug using an ns16550-compatible UART
2015-11-11 08:34:25 +01:00
cps-vec.S
MIPS: CPS: Copy EVA configuration when starting secondary VPs.
2016-05-28 12:35:05 +02:00
cpu-bugs64.c
tree-wide: replace config_enabled() with IS_ENABLED()
2016-08-04 08:50:07 -04:00
cpu-probe.c
MIPS: clear execution hazard after changing FTLB enable
2016-09-29 18:59:49 +02:00
crash.c
mips/panic: replace smp_send_stop() with kdump friendly version in panic path
2016-10-11 15:06:32 -07:00
crash_dump.c
mips: Convert pr_warning to pr_warn
2014-11-24 07:44:51 +01:00
csrc-bcm1480.c
MIPS: csrc-bcm1480: Implement read_sched_clock
2015-04-01 17:21:27 +02:00
csrc-ioasic.c
MIPS: csrc-ioasic: Implement read_sched_clock
2015-04-01 17:21:28 +02:00
csrc-r4k.c
MIPS: Don't register r4k sched clock when CPUFREQ enabled
2016-07-24 12:00:15 +02:00
csrc-sb1250.c
MIPS: csrc-sb1250: Implement read_sched_clock
2015-04-01 17:21:33 +02:00
early_printk.c
early_printk: consolidate random copies of identical code
2013-04-29 18:28:13 -07:00
early_printk_8250.c
MIPS: Add 8250/16550 serial early printk driver
2013-10-29 21:24:36 +01:00
elf.c
Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus
2016-08-06 09:13:11 -04:00
entry.S
MIPS: kernel: entry.S: Set correct ISA level for mips_ihb
2015-04-10 15:41:46 +02:00
ftrace.c
ftrace: Add return address pointer to ftrace_ret_stack
2016-08-24 12:15:14 +02:00
genex.S
MIPS: Fix BUILD_ROLLBACK_PROLOGUE for microMIPS
2016-09-29 18:59:49 +02:00
gpio_txx9.c
MIPS: txx9: switch to gpiochip_add_data()
2016-02-19 09:51:44 +01:00
head.S
MIPS: store the appended dtb address in a variable
2016-08-02 14:00:16 +02:00
i8253.c
idle.c
MIPS: Loongson: Add Loongson-3A R2 basic support
2016-05-13 14:02:14 +02:00
irq-gt641xx.c
MIPS: Whitespace cleanup.
2013-02-01 10:00:22 +01:00
irq-msc01.c
MIPS: MSC: Prevent out-of-bounds writes to MIPS SC ioremap'd region
2014-06-26 10:48:23 +01:00
irq-rm7000.c
MIPS: Whitespace cleanup.
2013-02-01 10:00:22 +01:00
irq.c
MIPS: Clear Status IPL field when using EIC
2016-05-28 12:35:02 +02:00
irq_txx9.c
MIPS: Whitespace cleanup.
2013-02-01 10:00:22 +01:00
jump_label.c
jump_label: Rename JUMP_LABEL_{EN,DIS}ABLE to JUMP_LABEL_{JMP,NOP}
2015-08-03 11:34:12 +02:00
kgdb.c
MIPS: Get rid of 'kgdb_early_setup' cruft.
2015-06-21 21:54:10 +02:00
kprobes.c
MIPS: tracing: disable uprobe/kprobe on compact branch instructions
2016-10-06 17:37:40 +02:00
linux32.c
MIPS: kernel: Audit and remove any unnecessary uses of module.h
2016-10-05 01:31:20 +02:00
machine_kexec.c
mips/panic: replace smp_send_stop() with kdump friendly version in panic path
2016-10-11 15:06:32 -07:00
Makefile
MIPS: Factor o32 specific code into signal_o32.c
2016-08-02 11:02:35 +02:00
mcount.S
MIPS: mcount: Adjust stack pointer for static trace in MIPS32
2014-09-26 11:41:17 +02:00
mips-cm.c
tree-wide: replace config_enabled() with IS_ENABLED()
2016-08-04 08:50:07 -04:00
mips-cpc.c
MIPS: CPC: Provide default mips_cpc_default_phys_base to ignore CPC
2016-11-04 00:17:46 +01:00
mips-mt-fpaff.c
MIPS: Fix sched_getaffinity with MT FPAFF enabled
2015-08-03 09:25:02 +02:00
mips-mt.c
MIPS: MT: Remove SMTC support
2014-05-24 00:07:01 +02:00
mips-r2-to-r6-emul.c
MIPS: Fix FCSR Cause bit handling for correct SIGFPE issue
2016-11-04 01:28:41 +01:00
mips_ksyms.c
MIPS: uaccess: Take EVA into account in [__]clear_user
2015-12-22 11:58:43 +01:00
mips_machine.c
MIPS: move mips_{set,get}_machine_name() to a more generic place
2013-05-08 01:19:07 +02:00
module-rela.c
MIPS: module: fix incorrect IS_ERR_VALUE macro usages
2016-05-13 14:02:11 +02:00
module.c
MIPS: Migrate exception table users off module.h and onto extable.h
2016-10-04 16:13:57 +02:00
octeon_switch.S
MIPS: Fix octeon FP context switch handling
2015-10-02 19:16:06 +02:00
perf_event.c
perf core: Add a 'nr' field to perf_event_callchain_context
2016-05-16 23:11:51 -03:00
perf_event_mipsxx.c
MIPS: perf: Fix I6400 event numbers
2016-05-17 11:05:07 +02:00
pm-cps.c
MIPS: pm-cps: Generate idle state entry code when CPUs are onlined
2016-10-05 01:31:20 +02:00
pm.c
MIPS: Fix watchpoint restoration
2016-05-09 12:00:02 +02:00
probes-common.h
MIPS: tracing: disable uprobe/kprobe on compact branch instructions
2016-10-06 17:37:40 +02:00
proc.c
MIPS: Move identification of VP(E) into proc.c from smp-mt.c
2016-10-04 16:13:57 +02:00
process.c
nmi_backtrace: add more trigger_*_cpu_backtrace() methods
2016-10-07 18:46:30 -07:00
prom.c
MIPS: Fix build with CONFIG_OF=y for non OF-enabled targets
2015-08-03 09:25:00 +02:00
ptrace.c
MIPS: Fix FCSR Cause bit handling for correct SIGFPE issue
2016-11-04 01:28:41 +01:00
ptrace32.c
ptrace: Don't allow accessing an undumpable mm
2017-01-06 10:40:13 +01:00
r4k_fpu.S
MIPS: Use copy_s.fmt rather than copy_u.fmt
2016-05-09 12:00:04 +02:00
r4k_switch.S
MIPS: Remove redundant asm/pgtable-bits.h inclusions
2016-05-13 15:30:25 +02:00
r2300_fpu.S
MIPS: Correct MIPS I FP sigcontext layout
2016-11-04 01:39:23 +01:00
r2300_switch.S
MIPS: Fix R2300 FP context switch handling
2015-10-02 19:16:46 +02:00
r6000_fpu.S
MIPS: Fix ISA I/II FP signal context offsets
2016-11-04 01:38:52 +01:00
relocate.c
MIPS: KASLR: Fix handling of NULL FDT
2016-11-04 00:30:49 +01:00
relocate_kernel.S
MIPS: Replace add and sub instructions in relocate_kernel.S with addiu
2015-08-03 15:26:30 +02:00
reset.c
MIPS: Provide fallback reboot/poweroff/halt implementations
2015-04-01 17:21:58 +02:00
rtlx-cmp.c
MIPS: APRP: Fix an issue when device_create() fails.
2014-08-01 17:30:35 +02:00
rtlx-mt.c
MIPS: APRP: Fix an issue when device_create() fails.
2014-08-01 17:30:35 +02:00
rtlx.c
MIPS: rtlx: Remove KERN_DEBUG from pr_debug() arguments in rtlx.c
2014-11-24 07:44:04 +01:00
scall32-o32.S
MIPS: Wire up new pkey_{mprotect,alloc,free} syscalls
2016-10-14 11:05:13 -07:00
scall64-64.S
MIPS: Wire up new pkey_{mprotect,alloc,free} syscalls
2016-10-14 11:05:13 -07:00
scall64-n32.S
MIPS: Wire up new pkey_{mprotect,alloc,free} syscalls
2016-10-14 11:05:13 -07:00
scall64-o32.S
MIPS: Wire up new pkey_{mprotect,alloc,free} syscalls
2016-10-14 11:05:13 -07:00
segment.c
MIPS: Print segment physical address when EU=1
2016-07-28 11:44:30 +02:00
setup.c
MIPS: Fix max_low_pfn with disabled highmem
2016-11-04 01:45:22 +01:00
signal-common.h
MIPS: Save MSA extended context around signals
2015-09-03 12:07:59 +02:00
signal.c
Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus
2016-08-06 09:13:11 -04:00
signal32.c
MIPS: Factor o32 specific code into signal_o32.c
2016-08-02 11:02:35 +02:00
signal_n32.c
MIPS: Initial implementation of a VDSO
2015-11-11 08:36:36 +01:00
signal_o32.c
MIPS: Factor o32 specific code into signal_o32.c
2016-08-02 11:02:35 +02:00
smp-bmips.c
MIPS: SMP: Update cpu_foreign_map on CPU disable
2016-07-29 10:19:28 +02:00
smp-cmp.c
MIPS: Make smp CMP, CPS and MT use the new generic IPI functions
2016-02-25 10:56:58 +01:00
smp-cps.c
MIPS: smp-cps: Avoid BUG() when offlining pre-r6 CPUs
2016-09-29 18:59:49 +02:00
smp-mt.c
MIPS: Move identification of VP(E) into proc.c from smp-mt.c
2016-10-04 16:13:57 +02:00
smp-up.c
MIPS: SMP: Remove plat_smp_ops cpus_done method.
2014-05-27 11:06:42 +02:00
smp.c
MIPS: kernel: Audit and remove any unnecessary uses of module.h
2016-10-05 01:31:20 +02:00
spinlock_test.c
MIPS: Declare mips_debugfs_dir in a header
2015-10-26 09:49:42 +01:00
spram.c
MIPS: Add P6600 cases to CPU switch statements
2016-05-13 14:01:52 +02:00
stacktrace.c
MIPS: Add LATENCYTOP support
2015-11-11 08:36:46 +01:00
sync-r4k.c
MIPS: sync-r4k: reduce skew while synchronization
2016-01-24 01:31:51 +01:00
syscall.c
MIPS: kernel: syscall: Set the appropriate ISA level for MIPS R6
2015-02-17 15:37:29 +00:00
sysrq.c
MIPS: Refactor dumping of TLB registers for r3k/r4k
2015-09-03 12:07:45 +02:00
time.c
MIPS: Return -ENODEV from weak implementation of rtc_mips_set_time
2016-12-11 11:19:04 +01:00
topology.c
traps.c
MIPS: Fix FCSR Cause bit handling for correct SIGFPE issue
2016-11-04 01:28:41 +01:00
unaligned.c
tree-wide: replace config_enabled() with IS_ENABLED()
2016-08-04 08:50:07 -04:00
uprobes.c
MIPS: tracing: disable uprobe/kprobe on compact branch instructions
2016-10-06 17:37:40 +02:00
vdso.c
MIPS: vDSO: Fix Malta EVA mapping to vDSO page structs
2016-09-21 15:56:10 +02:00
vmlinux.lds.S
nmi_backtrace: generate one-line reports for idle cpus
2016-10-07 18:46:30 -07:00
vpe-cmp.c
MIPS: APRP: Add VPE loader support for CMP platforms.
2014-01-22 20:19:02 +01:00
vpe-mt.c
MIPS: MT: Remove SMTC support
2014-05-24 00:07:01 +02:00
vpe.c
module: use a structure to encapsulate layout.
2015-12-04 22:46:25 +01:00
watch.c
MIPS: Add and use watch register field definitions
2016-05-13 14:02:13 +02:00