I did not see AppArmor patch for this problem in 5.3-rc1. John, are you OK with this patch for 5.2-stable and 5.3 ? On 2019/07/09 19:51, Tetsuo Handa wrote: > For now, can we apply this patch for 5.2-stable ? > > >>From dd62fab0592e02580fd5a34222a2d11bfc179f61 Mon Sep 17 00:00:00 2001 > From: Tetsuo Handa <penguin-kernel@xxxxxxxxxxxxxxxxxxx> > Date: Tue, 9 Jul 2019 19:05:49 +0900 > Subject: [PATCH] LSM: Disable move_mount() syscall when TOMOYO or AppArmor is enabled. > > Commit 2db154b3ea8e14b0 ("vfs: syscall: Add move_mount(2) to move mounts > around") introduced security_move_mount() LSM hook, but we missed that > TOMOYO and AppArmor did not implement hooks for checking move_mount(2). > For pathname based access controls like TOMOYO and AppArmor, unchecked > mount manipulation is not acceptable. Therefore, until TOMOYO and AppArmor > implement hooks, in order to avoid unchecked mount manipulation, pretend > as if move_mount(2) is unavailable when either TOMOYO or AppArmor is > enabled. > > Signed-off-by: Tetsuo Handa <penguin-kernel@xxxxxxxxxxxxxxxxxxx> > Fixes: 2db154b3ea8e14b0 ("vfs: syscall: Add move_mount(2) to move mounts around") > Cc: stable@xxxxxxxxxxxxxxx # 5.2 > --- > include/linux/lsm_hooks.h | 6 ++++++ > security/apparmor/lsm.c | 1 + > security/tomoyo/tomoyo.c | 1 + > 3 files changed, 8 insertions(+) > > diff --git a/include/linux/lsm_hooks.h b/include/linux/lsm_hooks.h > index 47f58cf..cd411b7 100644 > --- a/include/linux/lsm_hooks.h > +++ b/include/linux/lsm_hooks.h > @@ -2142,4 +2142,10 @@ static inline void security_delete_hooks(struct security_hook_list *hooks, > > extern int lsm_inode_alloc(struct inode *inode); > > +static inline int no_move_mount(const struct path *from_path, > + const struct path *to_path) > +{ > + return -ENOSYS; > +} > + > #endif /* ! __LINUX_LSM_HOOKS_H */ > diff --git a/security/apparmor/lsm.c b/security/apparmor/lsm.c > index ec3a928..5cdf63b 100644 > --- a/security/apparmor/lsm.c > +++ b/security/apparmor/lsm.c > @@ -1158,6 +1158,7 @@ struct lsm_blob_sizes apparmor_blob_sizes __lsm_ro_after_init = { > LSM_HOOK_INIT(capable, apparmor_capable), > > LSM_HOOK_INIT(sb_mount, apparmor_sb_mount), > + LSM_HOOK_INIT(move_mount, no_move_mount), > LSM_HOOK_INIT(sb_umount, apparmor_sb_umount), > LSM_HOOK_INIT(sb_pivotroot, apparmor_sb_pivotroot), > > diff --git a/security/tomoyo/tomoyo.c b/security/tomoyo/tomoyo.c > index 716c92e..be1b1a1 100644 > --- a/security/tomoyo/tomoyo.c > +++ b/security/tomoyo/tomoyo.c > @@ -558,6 +558,7 @@ static void tomoyo_task_free(struct task_struct *task) > LSM_HOOK_INIT(path_chown, tomoyo_path_chown), > LSM_HOOK_INIT(path_chroot, tomoyo_path_chroot), > LSM_HOOK_INIT(sb_mount, tomoyo_sb_mount), > + LSM_HOOK_INIT(move_mount, no_move_mount), > LSM_HOOK_INIT(sb_umount, tomoyo_sb_umount), > LSM_HOOK_INIT(sb_pivotroot, tomoyo_sb_pivotroot), > LSM_HOOK_INIT(socket_bind, tomoyo_socket_bind), >