From: sashiko-bot@kernel.org
To: mbenes@suse.cz
Cc: live-patching@vger.kernel.org, jpoimboe@kernel.org,
"Rui Qi" <qirui.001@bytedance.com>,
joe.lawrence@redhat.com, pmladek@suse.com,
linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org,
jikos@kernel.org, shuah@kernel.org
Subject: Re: [PATCH v2] selftests/livepatch: fix resource leak in test_klp_syscall init error path
Date: Thu, 04 Jun 2026 08:42:13 +0000 [thread overview]
Message-ID: <20260604084214.4F9751F00893@smtp.kernel.org> (raw)
In-Reply-To: <20260604083208.1071428-1-qirui.001@bytedance.com>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
Pre-existing issues:
- [High] Relying exclusively on kobject_put() to clean up sysfs attributes backed by module memory introduces a use-after-free window during module unload if CONFIG_DEBUG_KOBJECT_RELEASE is enabled.
--
commit 89541aa9ecd8e356eaf4884fa2b111bc605a7933
Author: Rui Qi <qirui.001@bytedance.com>
selftests/livepatch: fix resource leak in test_klp_syscall init error path
This commit attempts to fix a resource leak in livepatch_init() by calling
kobject_put() on the error path if klp_enable_patch() fails.
> --- a/tools/testing/selftests/livepatch/test_modules/test_klp_syscall.c
> +++ b/tools/testing/selftests/livepatch/test_modules/test_klp_syscall.c
[ ... ]
> @@ -98,7 +98,11 @@ static int livepatch_init(void)
> */
> npids = npids_pending;
>
> - return klp_enable_patch(&patch);
> + ret = klp_enable_patch(&patch);
> + if (ret)
> + kobject_put(klp_kobj);
[Severity: High]
This isn't a bug introduced by this patch, but it replicates a pre-existing
issue into the error path.
Does relying exclusively on kobject_put() here create a use-after-free window
during module unload?
If CONFIG_DEBUG_KOBJECT_RELEASE is enabled, kobject_put() drops the refcount
but schedules kobject_cleanup() (and thus sysfs_remove_dir()) to run
asynchronously via a workqueue after a 1 to 4 second delay. Because klp_attr
and its show callback are allocated in the module's memory, returning an error
here causes the module loader to free that memory immediately.
During this delay, the sysfs file remains fully accessible. If a user reads
this file, would sysfs_kf_seq_show() dereference the attribute and callback
that now point to unmapped module memory?
Should kobject_del(klp_kobj) be called prior to kobject_put() to
synchronously remove the sysfs entries?
> +
> + return ret;
> }
>
> static void livepatch_exit(void)
> {
> kobject_put(klp_kobj);
> }
[Severity: High]
This is a pre-existing issue, but the exact same vulnerability exists here in
the unmodified module exit path where kobject_put() is the only cleanup
mechanism before the module unloads.
Could we also add kobject_del(klp_kobj) before kobject_put() in
livepatch_exit() to ensure sysfs entries are synchronously removed before
module memory is freed?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260604083208.1071428-1-qirui.001@bytedance.com?part=1
next prev parent reply other threads:[~2026-06-04 8:42 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-02 12:45 [PATCH] selftests/livepatch: fix resource leak in test_klp_syscall init error path Rui Qi
2026-06-03 13:09 ` Miroslav Benes
2026-06-04 8:10 ` Rui Qi
2026-06-04 8:32 ` [PATCH v2] " Rui Qi
2026-06-04 8:42 ` sashiko-bot [this message]
2026-06-04 13:09 ` Petr Mladek
2026-06-04 13:12 ` Petr Mladek
2026-06-05 6:51 ` Miroslav Benes
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=20260604084214.4F9751F00893@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=jikos@kernel.org \
--cc=joe.lawrence@redhat.com \
--cc=jpoimboe@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=live-patching@vger.kernel.org \
--cc=mbenes@suse.cz \
--cc=pmladek@suse.com \
--cc=qirui.001@bytedance.com \
--cc=sashiko-reviews@lists.linux.dev \
--cc=shuah@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