Possible MPX improvements for 3.19
Get series with b4
b4 am [email protected]Versions newest first
- v1 Latest3 patches 24 repliesIn review
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/3 | x86, mpx: Check user mode bitness correctly when decoding instructionsarch/ arch/ | +6 | 2 replies | |
| 2/3 | x86, mpx: Short-circuit the instruction decoder for unexpected opcodesarch/ | +17 | 1 reply | |
| 3/3 | x86, mpx: Change the MPX enable/disable API to arch_prctlarch/ arch/ include/ +1 more | +21 | 21 replies |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.
Cover letter [PATCH 3.19 0/3] Possible MPX improvements for 3.19
I don't have the hardware, so this is only compile-tested.
Patches 1 and 2 should be safe. Patch 1 is a bugfix, although given the bitness sensitivity of the MPX data structures, any user code that hits the bug is probably doomed to failure anyway. Patch 2 is a hardening change that adds almost no complexity (it's mostly just reordering some code) that will make it considerably harder to exploit a possibly insn decoder vulnerability using threads that modify MPX instructions that send #BR before the trap handler runs.
Patch 3 will be much more controversial, since it's a complete ABI break. The ABI in question has never appeared in a released kernel, though. If patch 3 is not okay, then I want to fix the prctl implementation to at least validate its arguments.
Andy Lutomirski (3):
x86, mpx: Check user mode bitness correctly when decoding instructions x86, mpx: Short-circuit the instruction decoder for unexpected opcodes x86, mpx: Change the MPX enable/disable API to arch_prctl
arch/x86/include/asm/ptrace.h | 5 +++++ arch/x86/include/uapi/asm/prctl.h | 15 +++++++++++---- arch/x86/kernel/process_64.c | 10 ++++++++++ arch/x86/mm/mpx.c | 28 ++++++++++++++++++---------- include/uapi/linux/prctl.h | 6 ------ kernel/sys.c | 12 ------------ 6 files changed, 44 insertions(+), 32 deletions(-)
Signature · 1 line
2.1.0