lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20230705064653.226811-1-lihuafei1@huawei.com>
Date:   Wed, 5 Jul 2023 14:46:44 +0800
From:   Li Huafei <lihuafei1@...wei.com>
To:     <stable@...r.kernel.org>
CC:     <gregkh@...uxfoundation.org>, <mhiramat@...nel.org>,
        <tglx@...utronix.de>, <mingo@...hat.com>, <bp@...en8.de>,
        <x86@...nel.org>, <hpa@...or.com>, <sashal@...nel.org>,
        <peterz@...radead.org>, <linux-kernel@...r.kernel.org>,
        <xukuohai@...wei.com>, <natechancellor@...il.com>,
        <ndesaulniers@...gle.com>, <rostedt@...dmis.org>,
        <weiyongjun1@...wei.com>, <gustavoars@...nel.org>,
        <namit@...are.com>, <laijs@...ux.alibaba.com>,
        <clang-built-linux@...glegroups.com>, <lihuafei1@...wei.com>
Subject: [PATCH 5.10 0/9] x86/kprobes: Fix kprobe debug exception handling logic

We found an issue with null pointer access due to kprobe debug exception
error handling on 5.10, and I proposed a separate fix patch for 5.10,
see [1]. But as Greg gave advice, we always choose to backport relevant
patches from upstream to fix issues with stable kernels, so I made this
patch set.

The main one we need to backport is patch 5, which uses int3 instead of
debug trap for single-stepping, thus avoiding the problems we
encountered with kprobe debug exception error handling. Patches 1-4 are
pre-patches, and patches 6-9 are fixes for patch 5. The major
modifications are patch 2 and patch 5. Patch 2 optimizes
resume_execution() to avoid repeated instruction decoding, and patch 5
uses int3 instead of debug trap, and as Masami said in the commit
message this patch will change some behavior of kprobe, but it has
almost no effect on the actual usage.

Please let me know if there are any problems, thanks!

[1] https://lore.kernel.org/lkml/20230630020845.227939-1-lihuafei1@huawei.com/

Gustavo A. R. Silva (1):
  kprobes/x86: Fix fall-through warnings for Clang

Masami Hiramatsu (5):
  x86/kprobes: Do not decode opcode in resume_execution()
  x86/kprobes: Retrieve correct opcode for group instruction
  x86/kprobes: Identify far indirect JMP correctly
  x86/kprobes: Use int3 instead of debug trap for single-step
  x86/kprobes: Fix to identify indirect jmp and others using range case

Masami Hiramatsu (Google) (1):
  x86/kprobes: Update kcb status flag after singlestepping

Nadav Amit (1):
  x86/kprobes: Fix JNG/JNLE emulation

Wei Yongjun (1):
  x86/kprobes: Move 'inline' to the beginning of the kprobe_is_ss()
    declaration

 arch/x86/include/asm/kprobes.h |  24 +-
 arch/x86/kernel/kprobes/core.c | 639 ++++++++++++++++++++-------------
 arch/x86/kernel/traps.c        |   3 -
 3 files changed, 409 insertions(+), 257 deletions(-)

-- 
2.17.1

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ