diff options
| -rw-r--r-- | security/selinux/hooks.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c index 889cf4c3c3fa..b03b0776955a 100644 --- a/security/selinux/hooks.c +++ b/security/selinux/hooks.c | |||
| @@ -2123,11 +2123,13 @@ static int selinux_bprm_set_creds(struct linux_binprm *bprm) | |||
| 2123 | new_tsec->exec_sid = 0; | 2123 | new_tsec->exec_sid = 0; |
| 2124 | 2124 | ||
| 2125 | /* | 2125 | /* |
| 2126 | * Minimize confusion: if no_new_privs and a transition is | 2126 | * Minimize confusion: if no_new_privs or nosuid and a |
| 2127 | * explicitly requested, then fail the exec. | 2127 | * transition is explicitly requested, then fail the exec. |
| 2128 | */ | 2128 | */ |
| 2129 | if (bprm->unsafe & LSM_UNSAFE_NO_NEW_PRIVS) | 2129 | if (bprm->unsafe & LSM_UNSAFE_NO_NEW_PRIVS) |
| 2130 | return -EPERM; | 2130 | return -EPERM; |
| 2131 | if (bprm->file->f_path.mnt->mnt_flags & MNT_NOSUID) | ||
| 2132 | return -EACCES; | ||
| 2131 | } else { | 2133 | } else { |
| 2132 | /* Check for a default transition on this program. */ | 2134 | /* Check for a default transition on this program. */ |
| 2133 | rc = security_transition_sid(old_tsec->sid, isec->sid, | 2135 | rc = security_transition_sid(old_tsec->sid, isec->sid, |
