Hello, I am seeing the following crashes in request_key while running syzkaller fuzzer. This is observed on upstream commits 566cf877a1fcb6d6dc0126b076aad062054c2637, f9a42e0d58cf0fe3d902e63d4582f2ea4cd2bb8b and a2ca3d617944417e9dd5f09fc8a4549cda115f4f. Unfortunately this is not reproducible (probably due to global nature of keys).
BUG: unable to handle kernel paging request at fffffbfff9453f4d IP: __key_link_begin+0x35/0x2d0 security/keys/keyring.c:1107 PGD 21fff4067 PUD 21fff3067 PMD 0 Oops: 0000 [#1] SMP KASAN Dumping ftrace buffer: (ftrace buffer empty) Modules linked in: CPU: 0 PID: 3682 Comm: syz-executor5 Not tainted 4.10.0-rc6+ #30 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 task: ffff8801ca97c740 task.stack: ffff8801c1160000 RIP: 0010:__key_link_begin+0x35/0x2d0 security/keys/keyring.c:1107 RSP: 0018:ffff8801c1167b88 EFLAGS: 00010a06 RAX: dffffc0000000000 RBX: ffff8801d772bac0 RCX: ffffc90004787000 RDX: 1ffffffff9453f4d RSI: ffffffff8209b8df RDI: ffffffffca29fa68 RBP: ffff8801c1167bb8 R08: ffff8801dbe1cfa0 R09: 0000000000000001 R10: ffffe8ffffc32628 R11: 1ffff1003b7c39f8 R12: ffffffffca29fa58 R13: ffff8801d772bac0 R14: dffffc0000000000 R15: ffff8801c1167bf8 FS: 00007f4ae1cdb700(0000) GS:ffff8801dbe00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: fffffbfff9453f4d CR3: 00000001db964000 CR4: 00000000001406f0 DR0: 0000000020000000 DR1: 0000000020001000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000600 Call Trace: key_link+0x90/0x230 security/keys/keyring.c:1258 request_key_and_link+0x2d8/0x1150 security/keys/request_key.c:549 SYSC_request_key security/keys/keyctl.c:213 [inline] SyS_request_key+0x1a8/0x370 security/keys/keyctl.c:158 entry_SYSCALL_64_fastpath+0x1f/0xc2 RIP: 0033:0x44fac9 RSP: 002b:00007f4ae1cdab58 EFLAGS: 00000212 ORIG_RAX: 00000000000000f9 RAX: ffffffffffffffda RBX: 0000000020ebe000 RCX: 000000000044fac9 RDX: 0000000020b1b000 RSI: 0000000020ebe000 RDI: 00000000209b8ffb RBP: 00000000209b8ffb R08: 0000000000000000 R09: 0000000000000000 R10: fffffffffffffffb R11: 0000000000000212 R12: 0000000000708000 R13: 00000000ffffffff R14: 00000000202f7000 R15: 0000000000000000 Code: 41 54 49 89 f4 53 49 89 d7 48 89 fb 48 83 ec 08 e8 d1 50 67 ff 49 8d 7c 24 10 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 <80> 3c 02 00 0f 85 35 02 00 00 49 83 7c 24 10 00 0f 84 bb 01 00 RIP: __key_link_begin+0x35/0x2d0 security/keys/keyring.c:1107 RSP: ffff8801c1167b88 CR2: fffffbfff9453f4d ---[ end trace ccc5ddd8687a3f43 ]--- general protection fault: 0000 [#1] SMP KASAN Dumping ftrace buffer: (ftrace buffer empty) Modules linked in: CPU: 1 PID: 19539 Comm: syz-executor7 Not tainted 4.10.0-rc6+ #32 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 task: ffff88017e7fa200 task.stack: ffff8801d1db8000 RIP: 0010:__key_link_begin+0x35/0x2d0 security/keys/keyring.c:1107 RSP: 0018:ffff8801d1dbfb88 EFLAGS: 00010202 RAX: dffffc0000000000 RBX: ffff8801d76f0ac0 RCX: ffffc900012be000 RDX: 000000000fa33dad RSI: ffffffff8209b8bf RDI: 000000007d19ed68 RBP: ffff8801d1dbfbb8 R08: ffff8801dbf1cfa0 R09: 0000000000000001 R10: ffffe8ffffd55c18 R11: 1ffff1003b7e39f8 R12: 000000007d19ed58 R13: ffff8801d76f0ac0 R14: dffffc0000000000 R15: ffff8801d1dbfbf8 FS: 00007f6815118700(0000) GS:ffff8801dbf00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000020b22000 CR3: 00000001c6dc1000 CR4: 00000000001406e0 DR0: 0000000020000000 DR1: 0000000020000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000600 Call Trace: key_link+0x90/0x230 security/keys/keyring.c:1258 request_key_and_link+0x2d8/0x1150 security/keys/request_key.c:549 SYSC_request_key security/keys/keyctl.c:213 [inline] SyS_request_key+0x1a8/0x370 security/keys/keyctl.c:158 entry_SYSCALL_64_fastpath+0x1f/0xc2 RIP: 0033:0x44fac9 RSP: 002b:00007f6815117b58 EFLAGS: 00000212 ORIG_RAX: 00000000000000f9 RAX: ffffffffffffffda RBX: 0000000020ebe000 RCX: 000000000044fac9 RDX: 0000000020b1b000 RSI: 0000000020ebe000 RDI: 00000000209b8ffb RBP: 00000000209b8ffb R08: 0000000000000000 R09: 0000000000000000 R10: fffffffffffffffb R11: 0000000000000212 R12: 0000000000708000 R13: 0000000080000001 R14: 00000000004c2a80 R15: 0000000000000000 Code: 41 54 49 89 f4 53 49 89 d7 48 89 fb 48 83 ec 08 e8 d1 50 67 ff 49 8d 7c 24 10 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 <80> 3c 02 00 0f 85 35 02 00 00 49 83 7c 24 10 00 0f 84 bb 01 00 RIP: __key_link_begin+0x35/0x2d0 security/keys/keyring.c:1107 RSP: ffff8801d1dbfb88 ---[ end trace 75fd8b40181652fb ]--- BUG: unable to handle kernel paging request at fffffbfffae46d45 IP: __key_link_begin+0x35/0x2d0 security/keys/keyring.c:1107 PGD 21fff4067 PUD 21fff3067 PMD 0 Oops: 0000 [#1] SMP KASAN Dumping ftrace buffer: (ftrace buffer empty) Modules linked in: CPU: 0 PID: 16792 Comm: syz-executor1 Not tainted 4.10.0-rc6 #29 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 task: ffff8801c92f2480 task.stack: ffff8801d1e50000 RIP: 0010:__key_link_begin+0x35/0x2d0 security/keys/keyring.c:1107 RSP: 0018:ffff8801d1e57840 EFLAGS: 00010a02 RAX: dffffc0000000000 RBX: ffff8801d770c940 RCX: ffffc90001f07000 RDX: 1ffffffffae46d45 RSI: ffffffff8209b8df RDI: ffffffffd7236a28 RBP: ffff8801d1e57870 R08: ffff8801dbe1cfa0 R09: 0000000000000001 R10: ffffe8ffffc38e88 R11: 1ffff1003b7c39f8 R12: ffffffffd7236a18 R13: ffff8801d770c940 R14: dffffc0000000000 R15: ffff8801d1e578b0 FS: 00007f7f98ebe700(0000) GS:ffff8801dbe00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: fffffbfffae46d45 CR3: 00000001c97f7000 CR4: 00000000001426f0 Call Trace: key_link+0x90/0x230 security/keys/keyring.c:1258 request_key_and_link+0x2d8/0x1150 security/keys/request_key.c:549 SYSC_request_key security/keys/keyctl.c:213 [inline] SyS_request_key+0x1a8/0x370 security/keys/keyctl.c:158 do_syscall_64+0x2e8/0x930 arch/x86/entry/common.c:280 entry_SYSCALL64_slow_path+0x25/0x25 RIP: 0033:0x44fa69 RSP: 002b:00007f7f98ebdb58 EFLAGS: 00000212 ORIG_RAX: 00000000000000f9 RAX: ffffffffffffffda RBX: 0000000000708000 RCX: 000000000044fa69 RDX: 0000000020b1b000 RSI: 0000000020ebe000 RDI: 00000000209b8ffb RBP: 000000000000034e R08: 0000000000000000 R09: 0000000000000000 R10: fffffffffffffffb R11: 0000000000000212 R12: 00000000209b8ffb R13: 0000000020ebe000 R14: 0000000020b1b000 R15: 0000000000000000 Code: 41 54 49 89 f4 53 49 89 d7 48 89 fb 48 83 ec 08 e8 d1 50 67 ff 49 8d 7c 24 10 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 <80> 3c 02 00 0f 85 35 02 00 00 49 83 7c 24 10 00 0f 84 bb 01 00 RIP: __key_link_begin+0x35/0x2d0 security/keys/keyring.c:1107 RSP: ffff8801d1e57840 CR2: fffffbfffae46d45 ---[ end trace 70f503a26e161643 ]--- The line causes the crash is: BUG_ON(index_key->desc_len == 0); The addresses that the line tried to access are: RDI: ffffffffca29fa68 RDI: ffffffffd7236a28 RDI: 000000007d19ed68 The first two point to modules range and the last one is somewhere is userspace (if not KASAN, it could actually succeed). Looking at these values I can suggest that it is a random int32 sign-extended to pointer.