On Sep 11, 2023 Ondrej Mosnacek <omosnace@xxxxxxxxxx> wrote: > > selinux_set_mnt_opts() relies on the fact that the mount options pointer > is always NULL when all options are unset (specifically in its > !selinux_initialized() branch. However, the new > selinux_fs_context_submount() hook breaks this rule by allocating a new > structure even if no options are set. That causes any submount created > before a SELinux policy is loaded to be rejected in > selinux_set_mnt_opts(). > > Fix this by making selinux_fs_context_submount() leave fc->security > set to NULL when there are no options to be copied from the reference > superblock. > > Reported-by: Adam Williamson <awilliam@xxxxxxxxxx> > Link: https://bugzilla.redhat.com/show_bug.cgi?id=2236345 > Fixes: d80a8f1b58c2 ("vfs, security: Fix automount superblock LSM init problem, preventing NFS sb sharing") > Signed-off-by: Ondrej Mosnacek <omosnace@xxxxxxxxxx> > Reviewed-by: Jeff Layton <jlayton@xxxxxxxxxx> > --- > security/selinux/hooks.c | 10 ++++++++-- > 1 file changed, 8 insertions(+), 2 deletions(-) Thanks Ondrej, this looks good. I'm going to merge this into selinux/stable-6.6 and assuming all goes well with the automated testing (I can't imagine it would catch anything) I'll send this up to Linus later this week. I'm also tagging this for the stable kernels even though this patch is only present in v6.6-rc1 because the original patch has a number of 'Fixes:' tags which means the stable folks will probably end up pulling it into their trees. -- paul-moore.com