security: keys: perform capable check only on privileged operations
authorChristian Göttsche <cgzones@googlemail.com>
Thu, 11 May 2023 12:32:52 +0000 (14:32 +0200)
committerJarkko Sakkinen <jarkko@kernel.org>
Fri, 28 Jul 2023 18:07:41 +0000 (18:07 +0000)
commit2d7f105edbb3b2be5ffa4d833abbf9b6965e9ce7
treef6ebc1b970968129a1bacc8b1468de0fbe77f93d
parent57012c57536f8814dec92e74197ee96c3498d24e
security: keys: perform capable check only on privileged operations

If the current task fails the check for the queried capability via
`capable(CAP_SYS_ADMIN)` LSMs like SELinux generate a denial message.
Issuing such denial messages unnecessarily can lead to a policy author
granting more privileges to a subject than needed to silence them.

Reorder CAP_SYS_ADMIN checks after the check whether the operation is
actually privileged.

Signed-off-by: Christian Göttsche <cgzones@googlemail.com>
Reviewed-by: Jarkko Sakkinen <jarkko@kernel.org>
Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>
security/keys/keyctl.c