[PATCH] security/keys: fix slab-out-of-bounds in key_task_permission

Jarkko Sakkinen jarkko at kernel.org
Sun Sep 15 13:59:34 UTC 2024


On Sun Sep 15, 2024 at 3:55 AM EEST, Chen Ridong wrote:
>
>
> On 2024/9/14 19:33, Jarkko Sakkinen wrote:
> > On Fri Sep 13, 2024 at 10:09 AM EEST, Chen Ridong wrote:
> >> We meet the same issue with the LINK, which reads memory out of bounds:
> > 
> > Nit: don't use "we" anywhere".
> > 
> > Tbh, I really don't understand the sentence above. I don't what
> > "the same issue with the LINK" really is.
> > 
>
> Hello, Jarkko.
> I apologize for any confusion caused.
>
> I've encountered a bug reported by syzkaller. I also found the same bug 
> reported at this LINK: 
> https://syzkaller.appspot.com/bug?id=68a5e206c2a8e08d317eb83f05610c0484ad10b9.
>
> >> BUG: KASAN: slab-out-of-bounds in __kuid_val include/linux/uidgid.h:36
> >> BUG: KASAN: slab-out-of-bounds in uid_eq include/linux/uidgid.h:63 [inline]
> >> BUG: KASAN: slab-out-of-bounds in key_task_permission+0x394/0x410
> >> security/keys/permission.c:54
> >> Read of size 4 at addr ffff88813c3ab618 by task stress-ng/4362
> >>
> >> CPU: 2 PID: 4362 Comm: stress-ng Not tainted 5.10.0-14930-gafbffd6c3ede #15
> >> Call Trace:
> >>   __dump_stack lib/dump_stack.c:82 [inline]
> >>   dump_stack+0x107/0x167 lib/dump_stack.c:123
> >>   print_address_description.constprop.0+0x19/0x170 mm/kasan/report.c:400
> >>   __kasan_report.cold+0x6c/0x84 mm/kasan/report.c:560
> >>   kasan_report+0x3a/0x50 mm/kasan/report.c:585
> >>   __kuid_val include/linux/uidgid.h:36 [inline]
> >>   uid_eq include/linux/uidgid.h:63 [inline]
> >>   key_task_permission+0x394/0x410 security/keys/permission.c:54
> >>   search_nested_keyrings+0x90e/0xe90 security/keys/keyring.c:793
> >>   keyring_search_rcu+0x1b6/0x310 security/keys/keyring.c:922
> >>   search_cred_keyrings_rcu+0x111/0x2e0 security/keys/process_keys.c:459
> >>   search_process_keyrings_rcu+0x1d/0x310 security/keys/process_keys.c:544
> >>   lookup_user_key+0x782/0x12e0 security/keys/process_keys.c:762
> >>   keyctl_invalidate_key+0x20/0x190 security/keys/keyctl.c:434
> >>   __do_sys_keyctl security/keys/keyctl.c:1978 [inline]
> >>   __se_sys_keyctl+0x1de/0x5b0 security/keys/keyctl.c:1880
> >>   do_syscall_64+0x30/0x40 arch/x86/entry/common.c:46
> >>   entry_SYSCALL_64_after_hwframe+0x67/0xd1
> >>
> >> However, we can't reproduce this issue.
> > 
> > "The issue cannot be easily reproduced but by analyzing the code
> > it can be broken into following steps:"
>
> Thank you for your correction.
> Does this patch address the issue correctly? Is this patch acceptable?

I only comment new patch versions so not giving any promises but I can
say that it is I think definitely in the correct direction :-)

BR, Jarkko



More information about the Linux-security-module-archive mailing list