[PATCH] KEYS: Protect user key quota access during instantiation
sashiko-bot at kernel.org
sashiko-bot at kernel.org
Mon Oct 12 03:25:08 UTC 2026
> The owner account must remain alive throughout payload quota
> reservation. The user key type calls generic_key_instantiate(), which
> dereferences key->user in key_payload_reserve(), without holding
> key->sem. The construction mutex excludes other instantiators but does
> not exclude keyctl_chown_key().
>
> A kernel caller can allocate an in-quota user key, retain its reference
> and instantiate it with a nonempty payload after publishing its serial.
> A concurrent task with Setattr permission and CAP_SYS_ADMIN can chown
> the still-uninstantiated key through KEY_LOOKUP_PARTIAL. If the key
> holds the last reference to its non-root account, instantiation has no
> authorization key, and the new owner has sufficient quota, this ordering
> is possible:
>
> Instantiator Chown task
> [ ... ]
> BUG: KASAN: slab-use-after-free in key_payload_reserve+0x54d/0x560
>
>
> Fixes: 5801649d8b83 ("[PATCH] keys: let keyctl_chown() change a key's owner")
> Signed-off-by: Cen Zhang <zzzccc427 at gmail.com>
Sashiko has reviewed this patch and found no issues. It looks great!
--
Sashiko AI review · https://sashiko.dev/#/patchset/pm-key-management-objects-candidate-0001-v6-9876bf3e2116d47c065e@gmail.com?part=1
More information about the Linux-security-module-archive
mailing list