]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
selinux: avoid sk_socket dereference in selinux_sctp_bind_connect()
authorTristan Madani <tristan@talencesecurity.com>
Thu, 25 Jun 2026 23:53:36 +0000 (23:53 +0000)
committerPaul Moore <paul@paul-moore.com>
Wed, 1 Jul 2026 22:22:22 +0000 (18:22 -0400)
commit56acfeb10019e200ab6787d01f8d7cbe0f01526f
treeeba23a7a49194621ee182a56316c0c751a765910
parent44c74d27d1b9aaa99fa8a83640c1223575262b80
selinux: avoid sk_socket dereference in selinux_sctp_bind_connect()

selinux_sctp_bind_connect() dereferences sk->sk_socket to pass a
struct socket * to selinux_socket_bind() and
selinux_socket_connect_helper().  However, when the hook is invoked
from the ASCONF softirq path (sctp_process_asconf), there is no file
reference guaranteeing that sk->sk_socket is non-NULL.  The setsockopt
callers (bindx, connectx, set_primary, sendmsg connect) hold a file
reference and are not affected.

Both selinux_socket_bind() and selinux_socket_connect_helper()
immediately resolve sock->sk, never using the struct socket * for
anything else.  Refactor the inner logic into helpers that take a
struct sock * directly so that selinux_sctp_bind_connect() never needs
to touch sk->sk_socket at all.

Cc: stable@vger.kernel.org
Fixes: d452930fd3b9 ("selinux: Add SCTP support")
Suggested-by: Stephen Smalley <stephen.smalley.work@gmail.com>
Signed-off-by: Tristan Madani <tristan@talencesecurity.com>
Reviewed-by: Stephen Smalley <stephen.smalley.work@gmail.com>
Tested-by: Stephen Smalley <stephen.smalley.work@gmail.com>
Signed-off-by: Paul Moore <paul@paul-moore.com>
security/selinux/hooks.c