From: Maninder Singh <maninder1.s@samsung.com>
To: keescook@chromium.org, pmladek@suse.com, bcain@quicinc.com,
mpe@ellerman.id.au, benh@kernel.crashing.org, paulus@samba.org,
hca@linux.ibm.com, gor@linux.ibm.com, agordeev@linux.ibm.com,
borntraeger@linux.ibm.com, svens@linux.ibm.com,
satishkh@cisco.com, sebaddel@cisco.com, kartilak@cisco.com,
jejb@linux.ibm.com, martin.petersen@oracle.com,
mcgrof@kernel.org, jason.wessel@windriver.com,
daniel.thompson@linaro.org, dianders@chromium.org,
naveen.n.rao@linux.ibm.com, anil.s.keshavamurthy@intel.com,
davem@davemloft.net, mhiramat@kernel.org, peterz@infradead.org,
mingo@redhat.com, will@kernel.org, longman@redhat.com,
boqun.feng@gmail.com, rostedt@goodmis.org,
senozhatsky@chromium.org, andriy.shevchenko@linux.intel.com,
linux@rasmusvillemoes.dk, akpm@linux-foundation.org,
arnd@arndb.de
Cc: linux-hexagon@vger.kernel.org, linux-kernel@vger.kernel.org,
linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org,
linux-scsi@vger.kernel.org, linux-fsdevel@vger.kernel.org,
linux-modules@vger.kernel.org,
kgdb-bugreport@lists.sourceforge.net, v.narang@samsung.com,
onkarnath.1@samsung.com, Maninder Singh <maninder1.s@samsung.com>
Subject: [PATCH 0/5] kallsyms: make kallsym APIs more safe with scnprintf
Date: Fri, 20 May 2022 14:06:56 +0530 [thread overview]
Message-ID: <20220520083701.2610975-1-maninder1.s@samsung.com> (raw)
In-Reply-To: <CGME20220520083715epcas5p400b11adef4d540756c985feb20ba29bc@epcas5p4.samsung.com>
kallsyms functionality depends on KSYM_NAME_LEN directly.
but if user passed array length lesser than it, sprintf
can cause issues of buffer overflow attack.
So changing *sprint* and *lookup* APIs in this patch set
to have buffer size as an argument and replacing sprintf with
scnprintf.
patch 1 and 2 can be clubbed, but then it will be difficult
to review, so patch 1 changes prototype only and patch 2
includes passed argument usage.
Patch 3 and patch 5 are bug fixes.
Patch 1, 2 and 4 are changing prorotypes.
Tried build and kallsyms test on ARM64 environment.
APIs are called at multiple places. So build can
be failed if updation missed at any place.
lets see if autobot reports any build failure
with any config combination.
[ 12.247313] ps function_check [crash]
[ 12.247906] pS function_check+0x4/0x40 [crash]
[ 12.247999] pSb function_check+0x4/0x40 [crash df48d71893b7fb2688ac9739346449e89e8a76ca]
[ 12.248092] pB function_check+0x4/0x40 [crash]
[ 12.248190] pBb function_check+0x4/0x40 [crash df48d71893b7fb2688ac9739346449e89e8a76ca]
...
[ 12.261175] Call trace:
[ 12.261361] function_2+0x74/0x88 [crash df48d71893b7fb2688ac9739346449e89e8a76ca]
[ 12.261859] function_1+0x10/0x1c [crash df48d71893b7fb2688ac9739346449e89e8a76ca]
[ 12.262237] hello_init+0x24/0x34 [crash df48d71893b7fb2688ac9739346449e89e8a76ca]
[ 12.262603] do_one_initcall+0x54/0x1c8
[ 12.262803] do_init_module+0x44/0x1d0
[ 12.262992] load_module+0x1688/0x19f0
[ 12.263179] __do_sys_init_module+0x1a0/0x210
[ 12.263387] __arm64_sys_init_module+0x1c/0x28
[ 12.263596] invoke_syscall+0x44/0x108
[ 12.263788] el0_svc_common.constprop.0+0x44/0xf0
[ 12.264014] do_el0_svc_compat+0x1c/0x50
[ 12.264209] el0_svc_compat+0x2c/0x88
[ 12.264397] el0t_32_sync_handler+0x90/0x140
[ 12.264600] el0t_32_sync+0x190/0x194
Maninder Singh, Onkarnath (5):
kallsyms: pass buffer size in sprint_* APIs
kallsyms: replace sprintf with scprintf
arch:hexagon/powerpc: use KSYM_NAME_LEN as array size
kallsyms: pass buffer size argument in *lookup* APIs
kallsyms: remove unsed API lookup_symbol_attrs
arch/hexagon/kernel/traps.c | 4 +-
arch/powerpc/xmon/xmon.c | 6 +-
arch/s390/lib/test_unwind.c | 2 +-
drivers/scsi/fnic/fnic_trace.c | 8 +--
fs/proc/base.c | 2 +-
include/linux/kallsyms.h | 34 +++++------
include/linux/module.h | 14 ++---
init/main.c | 2 +-
kernel/debug/kdb/kdb_support.c | 2 +-
kernel/kallsyms.c | 92 ++++++++++++------------------
kernel/kprobes.c | 4 +-
kernel/locking/lockdep.c | 8 +--
kernel/locking/lockdep_internals.h | 2 +-
kernel/locking/lockdep_proc.c | 4 +-
kernel/module/kallsyms.c | 36 ++----------
kernel/trace/ftrace.c | 9 +--
kernel/trace/trace_kprobe.c | 2 +-
kernel/trace/trace_output.c | 4 +-
kernel/trace/trace_syscalls.c | 2 +-
lib/vsprintf.c | 10 ++--
20 files changed, 93 insertions(+), 154 deletions(-)
--
2.17.1
next parent reply other threads:[~2022-05-20 8:39 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CGME20220520083715epcas5p400b11adef4d540756c985feb20ba29bc@epcas5p4.samsung.com>
2022-05-20 8:36 ` Maninder Singh [this message]
[not found] ` <CGME20220520083725epcas5p1c3e2989c991e50603a40c81ccc4982e0@epcas5p1.samsung.com>
2022-05-20 8:36 ` [PATCH 1/5] kallsyms: pass buffer size in sprint_* APIs Maninder Singh
2022-05-20 19:52 ` Waiman Long
2022-05-22 9:43 ` Andy Shevchenko
[not found] ` <CGME20220520083733epcas5p4ff2414309bf128f40b0bbd3adde52297@epcas5p4.samsung.com>
2022-05-20 8:36 ` [PATCH 2/5] kallsyms: replace sprintf with scnprintf Maninder Singh
[not found] ` <CGME20220520083742epcas5p4fa741caf7079a1305ef99cf00a07054a@epcas5p4.samsung.com>
2022-05-20 8:36 ` [PATCH 3/5] arch:hexagon/powerpc: use KSYM_NAME_LEN as array size Maninder Singh
[not found] ` <CGME20220520083755epcas5p454d450935fb427fd270295e967b0cbe8@epcas5p4.samsung.com>
2022-05-20 8:37 ` [PATCH 4/5] kallsyms: pass buffer size argument in *lookup* APIs Maninder Singh
[not found] ` <CGME20220520083805epcas5p40642f5a7f9844c61792cd3ac41ac01d3@epcas5p4.samsung.com>
2022-05-20 8:37 ` [PATCH 5/5] kallsyms: remove unsed API lookup_symbol_attrs Maninder Singh
2022-05-22 6:07 ` [PATCH 0/5] kallsyms: make kallsym APIs more safe with scnprintf Christoph Hellwig
2022-05-23 19:39 ` Kees Cook
2022-06-15 8:01 ` Petr Mladek
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=20220520083701.2610975-1-maninder1.s@samsung.com \
--to=maninder1.s@samsung.com \
--cc=agordeev@linux.ibm.com \
--cc=akpm@linux-foundation.org \
--cc=andriy.shevchenko@linux.intel.com \
--cc=anil.s.keshavamurthy@intel.com \
--cc=arnd@arndb.de \
--cc=bcain@quicinc.com \
--cc=benh@kernel.crashing.org \
--cc=boqun.feng@gmail.com \
--cc=borntraeger@linux.ibm.com \
--cc=daniel.thompson@linaro.org \
--cc=davem@davemloft.net \
--cc=dianders@chromium.org \
--cc=gor@linux.ibm.com \
--cc=hca@linux.ibm.com \
--cc=jason.wessel@windriver.com \
--cc=jejb@linux.ibm.com \
--cc=kartilak@cisco.com \
--cc=keescook@chromium.org \
--cc=kgdb-bugreport@lists.sourceforge.net \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-hexagon@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-modules@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=linux@rasmusvillemoes.dk \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=longman@redhat.com \
--cc=martin.petersen@oracle.com \
--cc=mcgrof@kernel.org \
--cc=mhiramat@kernel.org \
--cc=mingo@redhat.com \
--cc=mpe@ellerman.id.au \
--cc=naveen.n.rao@linux.ibm.com \
--cc=onkarnath.1@samsung.com \
--cc=paulus@samba.org \
--cc=peterz@infradead.org \
--cc=pmladek@suse.com \
--cc=rostedt@goodmis.org \
--cc=satishkh@cisco.com \
--cc=sebaddel@cisco.com \
--cc=senozhatsky@chromium.org \
--cc=svens@linux.ibm.com \
--cc=v.narang@samsung.com \
--cc=will@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®