capabilities: Don't allow writing ambiguous v3 file capabilities
authorEric W. Biederman <ebiederm@xmission.com>
Thu, 17 Dec 2020 15:42:00 +0000 (09:42 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 3 Mar 2021 17:22:44 +0000 (18:22 +0100)
commite516a306ef914bd2cddcb256bae09ec86ae07b05
tree0fc31af44ca7acd15ef87cc45656497ab2dcb8a6
parent9bbd72356348b710f2559542bb73948f30b90b4c
capabilities: Don't allow writing ambiguous v3 file capabilities

[ Upstream commit 95ebabde382c371572297915b104e55403674e73 ]

The v3 file capabilities have a uid field that records the filesystem
uid of the root user of the user namespace the file capabilities are
valid in.

When someone is silly enough to have the same underlying uid as the
root uid of multiple nested containers a v3 filesystem capability can
be ambiguous.

In the spirit of don't do that then, forbid writing a v3 filesystem
capability if it is ambiguous.

Fixes: 8db6c34f1dbc ("Introduce v3 namespaced file capabilities")
Reviewed-by: Andrew G. Morgan <morgan@kernel.org>
Reviewed-by: Serge Hallyn <serge@hallyn.com>
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
security/commoncap.c