Helge Deller
d0c4b05e43
parisc: Fix kernel panic due invalid values in IAOQ0 or IAOQ1
...
commit 10835c854685393a921b68f529bf740fa7c9984d upstream.
On parisc the privilege level of a process is stored in the lowest two bits of
the instruction pointers (IAOQ0 and IAOQ1). On Linux we use privilege level 0
for the kernel and privilege level 3 for user-space. So userspace should not be
allowed to modify IAOQ0 or IAOQ1 of a ptraced process to change it's privilege
level to e.g. 0 to try to gain kernel privileges.
This patch prevents such modifications by always setting the two lowest bits to
one (which relates to privilege level 3 for user-space) if IAOQ0 or IAOQ1 are
modified via ptrace calls in the native and compat ptrace paths.
Link: https://bugs.gentoo.org/481768
Reported-by: Jeroen Roovers <jer@gentoo.org>
Cc: <stable@vger.kernel.org>
Tested-by: Rolf Eike Beer <eike-kernel@sf-tec.de>
Signed-off-by: Helge Deller <deller@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-08-04 09:33:31 +02:00
..
.gitignore
asm-offsets.c
parisc: Unbreak handling exceptions from kernel modules
2016-04-08 22:14:14 +02:00
audit.c
parisc: add kernel audit feature
2013-11-07 22:27:20 +01:00
binfmt_elf32.c
parisc: fix redefinition of SET_PERSONALITY
2013-03-02 20:15:28 +01:00
cache.c
parisc: Handle case where flush_cache_range is called with no context
2018-03-22 09:17:59 +01:00
compat_audit.c
parisc: add kernel audit feature
2013-11-07 22:27:20 +01:00
drivers.c
parisc: Fix out of array access in match_pci_device()
2018-04-20 08:20:40 +02:00
entry.S
parisc: Fix address in HPMC IVA
2018-11-13 11:16:46 -08:00
firmware.c
parisc: Add break statements to pdc_pat_io_pci_cfg_read()
2016-08-02 16:44:33 +02:00
ftrace.c
ftrace: Add return address pointer to ftrace_ret_stack
2016-08-24 12:15:14 +02:00
hardware.c
parisc: add serial ports of C8000/1GHz machine to hardware database
2014-07-13 15:51:58 +02:00
head.S
parisc: Rename LEVEL to PA_ASM_LEVEL to avoid name clash with DRBD code
2019-05-25 18:26:45 +02:00
hpmc.S
parisc: Fix exported address of os_hpmc handler
2018-11-21 09:25:58 +01:00
inventory.c
parisc: Fix printk continuations in system detection
2016-11-22 18:09:33 +01:00
irq.c
parisc: Filter out spurious interrupts in PA-RISC irq handler
2015-09-08 15:31:16 +02:00
Makefile
parisc: Fix ftrace function tracer
2016-04-14 17:47:19 +02:00
module.c
parisc: Handle R_PARISC_PCREL32 relocations in kernel modules
2016-04-08 22:10:35 +02:00
pa7300lc.c
pacache.S
parisc: Define mb() and add memory barriers to assembler unlock sequences
2018-08-15 18:14:41 +02:00
parisc_ksyms.c
parisc: Clean up fixup routines for get_user()/put_user()
2017-04-08 09:30:34 +02:00
pci-dma.c
parisc: Fix race in pci-dma.c
2016-11-25 12:31:59 +01:00
pci.c
parisc: Initialize PCI bridge cache line and default latency
2016-01-12 22:03:21 +01:00
pdc_chassis.c
parisc: single_open() leaks
2013-05-05 00:10:41 -04:00
pdc_cons.c
parisc: don't use module_init for non-modular core pdc_cons code
2015-06-16 14:12:30 -04:00
perf.c
parisc: perf: Fix potential NULL pointer dereference
2017-10-08 10:26:10 +02:00
perf_asm.S
perf_images.h
process.c
parisc: Export running_on_qemu symbol for modules
2019-05-25 18:26:45 +02:00
processor.c
parisc: Fix automatic selection of cr16 clocksource
2016-08-20 13:33:51 +02:00
ptrace.c
parisc: Fix kernel panic due invalid values in IAOQ0 or IAOQ1
2019-08-04 09:33:31 +02:00
real2.S
parisc: Add cfi_startproc and cfi_endproc to assembly code
2016-10-05 22:54:40 +02:00
setup.c
parisc: Detect QEMU earlier in boot process
2019-04-17 08:36:46 +02:00
signal.c
parisc: Fix syscall restarts
2015-12-21 10:16:18 +01:00
signal32.c
parisc: Fix SIGSYS signals in compat case
2016-03-31 12:28:37 +02:00
signal32.h
constify copy_siginfo_to_user{,32}()
2013-11-09 00:16:29 -05:00
smp.c
parisc: Check return value of smp_boot_one_cpu()
2016-09-20 18:02:36 +02:00
stacktrace.c
sys_parisc.c
mm: larger stack guard gap, between vmas
2017-06-24 07:11:18 +02:00
sys_parisc32.c
parisc: drop unused defines and header includes
2014-07-13 15:56:12 +02:00
syscall.S
parisc: Rename LEVEL to PA_ASM_LEVEL to avoid name clash with DRBD code
2019-05-25 18:26:45 +02:00
syscall_table.S
parisc: use compat_sys_keyctl()
2017-07-21 07:42:20 +02:00
time.c
parisc: Use cr16 interval timers unconditionally on qemu
2019-04-17 08:36:47 +02:00
topology.c
traps.c
parisc: Fix address in HPMC IVA
2018-11-13 11:16:46 -08:00
unaligned.c
parisc: Move die_if_kernel() prototype into traps.h header
2016-06-05 08:49:01 +02:00
unwind.c
parisc: Fix backtrace on PA-RISC
2016-06-04 22:05:07 +02:00
vmlinux.lds.S
parisc: Move exception table into read-only section
2016-10-09 13:29:07 +02:00