From: Babanpreet Singh <bbnpreetsingh@gmail.com>
To: Paul Moore <paul@paul-moore.com>, Eric Paris <eparis@redhat.com>
Cc: audit@vger.kernel.org, linux-kernel@vger.kernel.org,
Babanpreet Singh <bbnpreetsingh@gmail.com>,
syzbot+39b8fea0641107a1ccee@syzkaller.appspotmail.com
Subject: [PATCH v2] audit: annotate the lockless read of the audit control lock owner
Date: Thu, 8 Oct 2026 03:44:03 +0000 [thread overview]
Message-ID: <20261008034403.7-1-bbnpreetsingh@gmail.com> (raw)
audit_ctl_owner_current() reads the lock owner without taking the lock
and KCSAN complains about it. Only the current task can store itself as
owner, so the check can't give a wrong answer. Mark the accesses with
READ_ONCE() and WRITE_ONCE().
Reported-by: syzbot+39b8fea0641107a1ccee@syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=39b8fea0641107a1ccee
Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Babanpreet Singh <bbnpreetsingh@gmail.com>
---
v2: drop the comment in audit_ctl_owner_current(). The KCSAN build of
audit.o disassembles the same as v1.
v1: https://lore.kernel.org/all/20261002011712.7-1-bbnpreetsingh@gmail.com/
Compile tested only (gcc W=1 and the KCSAN instrumentation diff); I
could not reproduce the race in QEMU.
kernel/audit.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/kernel/audit.c b/kernel/audit.c
index 631d6d4a23cfd..d0c2036bde759 100644
--- a/kernel/audit.c
+++ b/kernel/audit.c
@@ -247,7 +247,7 @@ int auditd_test_task(struct task_struct *task)
void audit_ctl_lock(void)
{
mutex_lock(&audit_cmd_mutex.lock);
- audit_cmd_mutex.owner = current;
+ WRITE_ONCE(audit_cmd_mutex.owner, current);
}
/**
@@ -255,7 +255,7 @@ void audit_ctl_lock(void)
*/
void audit_ctl_unlock(void)
{
- audit_cmd_mutex.owner = NULL;
+ WRITE_ONCE(audit_cmd_mutex.owner, NULL);
mutex_unlock(&audit_cmd_mutex.lock);
}
@@ -268,7 +268,7 @@ void audit_ctl_unlock(void)
*/
static bool audit_ctl_owner_current(void)
{
- return (current == audit_cmd_mutex.owner);
+ return (current == READ_ONCE(audit_cmd_mutex.owner));
}
/**
base-commit: a8bdcf944504980635c2069b4a4cfcf677b09bbb
--
2.43.0
next reply other threads:[~2026-10-08 3:44 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-08 3:44 Babanpreet Singh [this message]
2026-10-08 3:48 ` [PATCH v2] audit: annotate the lockless read of the audit control lock owner sashiko-bot
2026-10-08 15:03 ` Bradley Morgan
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=20261008034403.7-1-bbnpreetsingh@gmail.com \
--to=bbnpreetsingh@gmail.com \
--cc=audit@vger.kernel.org \
--cc=eparis@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=paul@paul-moore.com \
--cc=syzbot+39b8fea0641107a1ccee@syzkaller.appspotmail.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.