* [PATCH v2] security: commoncap: clarify CAP_FS_SET comment in cap_task_fix_setuid()
@ 2026-09-21 2:52 Adriano Cordova
2026-09-21 2:55 ` sashiko-bot
2026-09-22 17:02 ` Serge E. Hallyn
0 siblings, 2 replies; 3+ messages in thread
From: Adriano Cordova @ 2026-09-21 2:52 UTC (permalink / raw)
To: Serge Hallyn
Cc: Paul Moore, James Morris, linux-security-module, Adriano Cordova
CAP_FS_SET is exactly the set of capabilities that an fsuid of 0
historically granted (see CAP_FS_MASK in include/linux/capability.h),
so cap_task_fix_setuid() drops that set from the effective set when
fsuid leaves 0. Replace the stale FIXME with this explanation.
Signed-off-by: Adriano Cordova <adrianox@gmail.com>
---
v2: reword the comment to something more concise.
security/commoncap.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/security/commoncap.c b/security/commoncap.c
index 3399535808fe..1ba2ea2651fc 100644
--- a/security/commoncap.c
+++ b/security/commoncap.c
@@ -1169,11 +1169,13 @@ int cap_task_fix_setuid(struct cred *new, const struct cred *old, int flags)
break;
case LSM_SETID_FS:
- /* juggle the capabilities to follow FSUID changes, unless
- * otherwise suppressed
+ /* Juggle the capabilities to follow FSUID changes, unless
+ * otherwise suppressed.
*
- * FIXME - is fsuser used for all CAP_FS_MASK capabilities?
- * if not, we might be a bit too harsh here.
+ * CAP_FS_SET is exactly the set of capabilities that an
+ * fsuid of 0 historically granted (see CAP_FS_MASK in
+ * <linux/capability.h>), so we drop that set when fsuid
+ * leaves 0.
*/
if (!issecure(SECURE_NO_SETUID_FIXUP)) {
kuid_t root_uid = make_kuid(old->user_ns, 0);
--
2.51.0
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH v2] security: commoncap: clarify CAP_FS_SET comment in cap_task_fix_setuid()
2026-09-21 2:52 [PATCH v2] security: commoncap: clarify CAP_FS_SET comment in cap_task_fix_setuid() Adriano Cordova
@ 2026-09-21 2:55 ` sashiko-bot
2026-09-22 17:02 ` Serge E. Hallyn
1 sibling, 0 replies; 3+ messages in thread
From: sashiko-bot @ 2026-09-21 2:55 UTC (permalink / raw)
Cc: linux-security-module
> CAP_FS_SET is exactly the set of capabilities that an fsuid of 0
> historically granted (see CAP_FS_MASK in include/linux/capability.h),
> so cap_task_fix_setuid() drops that set from the effective set when
> fsuid leaves 0. Replace the stale FIXME with this explanation.
>
> Signed-off-by: Adriano Cordova <adrianox@gmail.com>
Sashiko has reviewed this patch and found no issues. It looks great!
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260921025209.1023530-1-adrianox@gmail.com?part=1
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH v2] security: commoncap: clarify CAP_FS_SET comment in cap_task_fix_setuid()
2026-09-21 2:52 [PATCH v2] security: commoncap: clarify CAP_FS_SET comment in cap_task_fix_setuid() Adriano Cordova
2026-09-21 2:55 ` sashiko-bot
@ 2026-09-22 17:02 ` Serge E. Hallyn
1 sibling, 0 replies; 3+ messages in thread
From: Serge E. Hallyn @ 2026-09-22 17:02 UTC (permalink / raw)
To: Adriano Cordova; +Cc: Paul Moore, James Morris, linux-security-module
On Sun, Sep 20, 2026 at 11:52:08PM -0300, Adriano Cordova wrote:
> CAP_FS_SET is exactly the set of capabilities that an fsuid of 0
> historically granted (see CAP_FS_MASK in include/linux/capability.h),
> so cap_task_fix_setuid() drops that set from the effective set when
> fsuid leaves 0. Replace the stale FIXME with this explanation.
>
> Signed-off-by: Adriano Cordova <adrianox@gmail.com>
lgtm, thanks.
Reviewed-by: Serge Hallyn <serge@hallyn.com>
If I don't see objections soon, I can merge it into the caps-next
tree.
thanks,
-serge
> ---
> v2: reword the comment to something more concise.
>
> security/commoncap.c | 10 ++++++----
> 1 file changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/security/commoncap.c b/security/commoncap.c
> index 3399535808fe..1ba2ea2651fc 100644
> --- a/security/commoncap.c
> +++ b/security/commoncap.c
> @@ -1169,11 +1169,13 @@ int cap_task_fix_setuid(struct cred *new, const struct cred *old, int flags)
> break;
>
> case LSM_SETID_FS:
> - /* juggle the capabilities to follow FSUID changes, unless
> - * otherwise suppressed
> + /* Juggle the capabilities to follow FSUID changes, unless
> + * otherwise suppressed.
> *
> - * FIXME - is fsuser used for all CAP_FS_MASK capabilities?
> - * if not, we might be a bit too harsh here.
> + * CAP_FS_SET is exactly the set of capabilities that an
> + * fsuid of 0 historically granted (see CAP_FS_MASK in
> + * <linux/capability.h>), so we drop that set when fsuid
> + * leaves 0.
> */
> if (!issecure(SECURE_NO_SETUID_FIXUP)) {
> kuid_t root_uid = make_kuid(old->user_ns, 0);
> --
> 2.51.0
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-09-22 17:03 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-21 2:52 [PATCH v2] security: commoncap: clarify CAP_FS_SET comment in cap_task_fix_setuid() Adriano Cordova
2026-09-21 2:55 ` sashiko-bot
2026-09-22 17:02 ` Serge E. Hallyn
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox