linux/security
Tristan Madani 2fcaf133a8 selinux: avoid sk_socket dereference in selinux_sctp_bind_connect()
[ Upstream commit 56acfeb100 ]

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: d452930fd3 ("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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2026-08-23 14:17:21 +02:00
..
apparmor lsm: infrastructure management of the sock security 2026-08-23 14:17:21 +02:00
bpf bpf: Reject BPF_MAP_TYPE_INODE_STORAGE creation if BPF LSM is uninitialized 2026-08-23 14:17:17 +02:00
integrity ima: fix out-of-bounds read in xattr_verify() 2026-08-19 17:14:15 +02:00
keys keys: make keyring key-chunk byte order agree with keyring_diff_objects() 2026-08-19 17:14:06 +02:00
landlock landlock: Add the errata interface 2025-05-02 07:44:20 +02:00
loadpin LoadPin: Ignore the "contents" argument of the LSM hooks 2022-12-31 13:14:45 +01:00
lockdown Merge branch 'next-general' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security 2020-06-02 17:36:24 -07:00
safesetid safesetid: check size of policy writes 2025-03-13 12:50:17 +01:00
selinux selinux: avoid sk_socket dereference in selinux_sctp_bind_connect() 2026-08-23 14:17:21 +02:00
smack lsm: infrastructure management of the sock security 2026-08-23 14:17:21 +02:00
tomoyo tomoyo: don't emit warning in tomoyo_write_control() 2025-03-13 12:50:18 +01:00
yama task_work: cleanup notification modes 2020-10-17 15:05:30 -06:00
commoncap.c capabilities: fix potential memleak on error path from vfs_getxattr_alloc() 2022-11-10 18:15:39 +01:00
device_cgroup.c device_cgroup: Roll back to original exceptions after copy failure 2023-01-12 11:58:59 +01:00
inode.c securityfs: don't pin dentries twice, once is enough... 2025-08-28 16:24:17 +02:00
Kconfig proc: add config & param to block forcing mem writes 2024-10-17 15:11:27 +02:00
Kconfig.hardening security: Restrict CONFIG_ZERO_CALL_USED_REGS to gcc or clang > 15.0.6 2022-12-31 13:14:46 +01:00
lsm_audit.c audit: remove unnecessary 'ret' initialization 2021-06-11 13:21:28 -04:00
Makefile security: remove unneeded subdir-$(CONFIG_...) 2021-09-03 08:17:20 +09:00
min_addr.c sysctl: pass kernel pointers to ->proc_handler 2020-04-27 02:07:40 -04:00
security.c lsm: infrastructure management of the sock security 2026-08-23 14:17:21 +02:00