From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: "Masami Hiramatsu (Google)" <mhiramat@kernel.org>,
Steven Rostedt <rostedt@goodmis.org>,
Sasha Levin <sashal@kernel.org>,
naveen.n.rao@linux.ibm.com, anil.s.keshavamurthy@intel.com,
davem@davemloft.net, linux-trace-kernel@vger.kernel.org
Subject: [PATCH AUTOSEL 5.15 31/31] kprobes: Prohibit probing on CFI preamble symbol
Date: Sun, 13 Aug 2023 12:06:04 -0400 [thread overview]
Message-ID: <20230813160605.1080385-31-sashal@kernel.org> (raw)
In-Reply-To: <20230813160605.1080385-1-sashal@kernel.org>
From: "Masami Hiramatsu (Google)" <mhiramat@kernel.org>
[ Upstream commit de02f2ac5d8cfb311f44f2bf144cc20002f1fbbd ]
Do not allow to probe on "__cfi_" or "__pfx_" started symbol, because those
are used for CFI and not executed. Probing it will break the CFI.
Link: https://lore.kernel.org/all/168904024679.116016.18089228029322008512.stgit@devnote2/
Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Reviewed-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
kernel/kprobes.c | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/kernel/kprobes.c b/kernel/kprobes.c
index 7e9fa1b7ff671..6cf561322bbe6 100644
--- a/kernel/kprobes.c
+++ b/kernel/kprobes.c
@@ -1545,6 +1545,17 @@ int __weak arch_check_ftrace_location(struct kprobe *p)
return 0;
}
+static bool is_cfi_preamble_symbol(unsigned long addr)
+{
+ char symbuf[KSYM_NAME_LEN];
+
+ if (lookup_symbol_name(addr, symbuf))
+ return false;
+
+ return str_has_prefix("__cfi_", symbuf) ||
+ str_has_prefix("__pfx_", symbuf);
+}
+
static int check_kprobe_address_safe(struct kprobe *p,
struct module **probed_mod)
{
@@ -1563,7 +1574,8 @@ static int check_kprobe_address_safe(struct kprobe *p,
within_kprobe_blacklist((unsigned long) p->addr) ||
jump_label_text_reserved(p->addr, p->addr) ||
static_call_text_reserved(p->addr, p->addr) ||
- find_bug((unsigned long)p->addr)) {
+ find_bug((unsigned long)p->addr) ||
+ is_cfi_preamble_symbol((unsigned long)p->addr)) {
ret = -EINVAL;
goto out;
}
--
2.40.1
prev parent reply other threads:[~2023-08-13 16:10 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-13 16:05 [PATCH AUTOSEL 5.15 01/31] phy: qcom-snps-femto-v2: keep cfg_ahb_clk enabled during runtime suspend Sasha Levin
2023-08-13 16:05 ` [PATCH AUTOSEL 5.15 02/31] phy: qcom-snps-femto-v2: use qcom_snps_hsphy_suspend/resume error code Sasha Levin
2023-08-13 16:05 ` [PATCH AUTOSEL 5.15 03/31] media: pulse8-cec: handle possible ping error Sasha Levin
2023-08-13 16:05 ` [PATCH AUTOSEL 5.15 04/31] media: pci: cx23885: fix error handling for cx23885 ATSC boards Sasha Levin
2023-08-13 16:05 ` [PATCH AUTOSEL 5.15 05/31] 9p: virtio: make sure 'offs' is initialized in zc_request Sasha Levin
2023-08-13 16:05 ` [PATCH AUTOSEL 5.15 06/31] ksmbd: fix out of bounds in smb3_decrypt_req() Sasha Levin
2023-08-13 16:05 ` [PATCH AUTOSEL 5.15 07/31] ksmbd: no response from compound read Sasha Levin
2023-08-13 16:05 ` [PATCH AUTOSEL 5.15 08/31] ASoC: da7219: Flush pending AAD IRQ when suspending Sasha Levin
2023-08-13 16:05 ` [PATCH AUTOSEL 5.15 09/31] ASoC: da7219: Check for failure reading AAD IRQ events Sasha Levin
2023-08-13 16:05 ` [PATCH AUTOSEL 5.15 10/31] ethernet: atheros: fix return value check in atl1c_tso_csum() Sasha Levin
2023-08-13 16:05 ` [PATCH AUTOSEL 5.15 11/31] vxlan: generalize vxlan_parse_gpe_hdr and remove unused args Sasha Levin
2023-08-13 16:05 ` [PATCH AUTOSEL 5.15 12/31] m68k: Fix invalid .section syntax Sasha Levin
2023-08-13 16:05 ` [PATCH AUTOSEL 5.15 13/31] s390/dasd: use correct number of retries for ERP requests Sasha Levin
2023-08-13 16:05 ` [PATCH AUTOSEL 5.15 14/31] s390/dasd: fix hanging device after request requeue Sasha Levin
2023-08-13 16:05 ` [PATCH AUTOSEL 5.15 15/31] fs/nls: make load_nls() take a const parameter Sasha Levin
2023-08-13 16:05 ` [PATCH AUTOSEL 5.15 16/31] ASoC: rt5682-sdw: fix for JD event handling in ClockStop Mode0 Sasha Levin
2023-08-13 16:05 ` [PATCH AUTOSEL 5.15 17/31] ASoc: codecs: ES8316: Fix DMIC config Sasha Levin
2023-08-13 16:05 ` [PATCH AUTOSEL 5.15 18/31] ASoC: rt711: fix for JD event handling in ClockStop Mode0 Sasha Levin
2023-08-13 16:05 ` [PATCH AUTOSEL 5.15 19/31] ASoC: rt711-sdca: " Sasha Levin
2023-08-13 16:05 ` [PATCH AUTOSEL 5.15 20/31] ASoC: atmel: Fix the 8K sample parameter in I2SC master Sasha Levin
2023-08-13 16:05 ` [PATCH AUTOSEL 5.15 21/31] ALSA: usb-audio: Add quirk for Microsoft Modern Wireless Headset Sasha Levin
2023-08-13 16:05 ` [PATCH AUTOSEL 5.15 22/31] platform/x86: intel: hid: Always call BTNL ACPI method Sasha Levin
2023-08-13 16:05 ` [PATCH AUTOSEL 5.15 23/31] platform/x86/intel/hid: Add HP Dragonfly G2 to VGBS DMI quirks Sasha Levin
2023-08-13 16:05 ` [PATCH AUTOSEL 5.15 24/31] platform/x86: huawei-wmi: Silence ambient light sensor Sasha Levin
2023-08-13 16:05 ` [PATCH AUTOSEL 5.15 25/31] drm/amd/display: Exit idle optimizations before attempt to access PHY Sasha Levin
2023-08-13 16:05 ` [PATCH AUTOSEL 5.15 26/31] ovl: Always reevaluate the file signature for IMA Sasha Levin
2023-08-13 16:06 ` [PATCH AUTOSEL 5.15 27/31] ata: pata_arasan_cf: Use dev_err_probe() instead dev_err() in data_xfer() Sasha Levin
2023-08-13 16:06 ` [PATCH AUTOSEL 5.15 28/31] rbd: make get_lock_owner_info() return a single locker or NULL Sasha Levin
2023-08-14 13:17 ` Ilya Dryomov
2023-08-13 16:06 ` [PATCH AUTOSEL 5.15 29/31] rbd: harden get_lock_owner_info() a bit Sasha Levin
2023-08-13 16:06 ` [PATCH AUTOSEL 5.15 30/31] security: keys: perform capable check only on privileged operations Sasha Levin
2023-08-13 16:06 ` Sasha Levin [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230813160605.1080385-31-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=anil.s.keshavamurthy@intel.com \
--cc=davem@davemloft.net \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=mhiramat@kernel.org \
--cc=naveen.n.rao@linux.ibm.com \
--cc=rostedt@goodmis.org \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®