Re: WARNING in mark_lock

John Fastabend
2019-07-08T16:21:30Z

syzbot wrote:
> Hello,
>
> syzbot has tested the proposed patch but the reproducer still triggered
> crash:
> KASAN: use-after-free Read in class_equal
>
> ==================================================================
> BUG: KASAN: use-after-free in class_equal+0x40/0x50
> kernel/locking/lockdep.c:1527
> Read of size 8 at addr ffff88808a268ba0 by task syz-executor.1/9270
>
> CPU: 0 PID: 9270 Comm: syz-executor.1 Not tainted 5.2.0-rc3+ #1
> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
> Google 01/01/2011
> Call Trace:
>
> Allocated by task 2647419968:
> BUG: unable to handle page fault for address: ffffffff8c00b020
> #PF: supervisor read access in kernel mode
> #PF: error_code(0x0000) - not-present page
> PGD 8a70067 P4D 8a70067 PUD 8a71063 PMD 0
> Thread overran stack, or stack corrupted
> Oops: 0000 [#1] PREEMPT SMP KASAN
> CPU: 0 PID: 9270 Comm: syz-executor.1 Not tainted 5.2.0-rc3+ #1
> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
> Google 01/01/2011
> RIP: 0010:stack_depot_fetch+0x10/0x30 lib/stackdepot.c:203
> Code: e9 7b fd ff ff 4c 89 ff e8 8d b4 62 fe e9 e6 fd ff ff 90 90 90 90 90
> 90 90 90 89 f8 c1 ef 11 25 ff ff 1f 00 81 e7 f0 3f 00 00 <48> 03 3c c5 20
> 6c 04 8b 48 8d 47 18 48 89 06 8b 47 0c c3 0f 1f 00
> RSP: 0018:ffff88808a2688e8 EFLAGS: 00010006
> RAX: 00000000001f8880 RBX: ffff88808a269304 RCX: 0000000000000000
> RDX: 0000000000000000 RSI: ffff88808a2688f0 RDI: 0000000000003ff0
> RBP: ffff88808a268908 R08: 0000000000000020 R09: ffffed1015d044fa
> R10: ffffed1015d044f9 R11: ffff8880ae8227cf R12: ffffea0002289a00
> R13: ffff88808a268ba0 R14: ffff8880aa58ec40 R15: ffff88808a269300
> FS: 00005555570ba940(0000) GS:ffff8880ae800000(0000) knlGS:0000000000000000
> CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> CR2: ffffffff8c00b020 CR3: 000000008dd00000 CR4: 00000000001406f0
> DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
> Call Trace:
> Modules linked in:
> CR2: ffffffff8c00b020
> ---[ end trace 4acfe4b59fbc9cdb ]---
> RIP: 0010:stack_depot_fetch+0x10/0x30 lib/stackdepot.c:203
> Code: e9 7b fd ff ff 4c 89 ff e8 8d b4 62 fe e9 e6 fd ff ff 90 90 90 90 90
> 90 90 90 89 f8 c1 ef 11 25 ff ff 1f 00 81 e7 f0 3f 00 00 <48> 03 3c c5 20
> 6c 04 8b 48 8d 47 18 48 89 06 8b 47 0c c3 0f 1f 00
> RSP: 0018:ffff88808a2688e8 EFLAGS: 00010006
> RAX: 00000000001f8880 RBX: ffff88808a269304 RCX: 0000000000000000
> RDX: 0000000000000000 RSI: ffff88808a2688f0 RDI: 0000000000003ff0
> RBP: ffff88808a268908 R08: 0000000000000020 R09: ffffed1015d044fa
> R10: ffffed1015d044f9 R11: ffff8880ae8227cf R12: ffffea0002289a00
> R13: ffff88808a268ba0 R14: ffff8880aa58ec40 R15: ffff88808a269300
> FS: 00005555570ba940(0000) GS:ffff8880ae800000(0000) knlGS:0000000000000000
> CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> CR2: ffffffff8c00b020 CR3: 000000008dd00000 CR4: 00000000001406f0
> DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
>
>
> Tested on:
>
> commit: 0b58d013 bpf: tls, implement unhash to avoid transition ou..
> git tree: git://github.com/cilium/linux ktls-unhash
> console output: https://syzkaller.appspot.com/x/log.txt?x=153368a3a00000
> kernel config: https://syzkaller.appspot.com/x/.config?x=2cc918d28ebd06b4
> compiler: gcc (GCC) 9.0.0 20181231 (experimental)
>

#syz test: git://github.com/cilium/linux fix-unhash