Re: [syzbot] [kernel?] general protection fault in netdev_register_kobject
From: Andy Shevchenko
Date: Thu Aug 31 2023 - 10:13:43 EST
On Thu, Aug 31, 2023 at 12:05:53AM -0700, syzbot wrote:
> Hello,
>
> syzbot found the following issue on:
>
> HEAD commit: 2ee82481c392 Add linux-next specific files for 20230828
> git tree: linux-next
> console+strace: https://syzkaller.appspot.com/x/log.txt?x=16ea87b7a80000
> kernel config: https://syzkaller.appspot.com/x/.config?x=e82a7781f9208c0d
> dashboard link: https://syzkaller.appspot.com/bug?extid=d2c31705e468a347e6db
> compiler: gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40
> syz repro: https://syzkaller.appspot.com/x/repro.syz?x=141c0267a80000
> C reproducer: https://syzkaller.appspot.com/x/repro.c?x=1585c0c0680000
>
> Downloadable assets:
> disk image: https://storage.googleapis.com/syzbot-assets/30801702ce78/disk-2ee82481.raw.xz
> vmlinux: https://storage.googleapis.com/syzbot-assets/8d9b67709145/vmlinux-2ee82481.xz
> kernel image: https://storage.googleapis.com/syzbot-assets/47f8ef9bffd0/bzImage-2ee82481.xz
>
> The issue was bisected to:
>
> commit d21fdd07cea418c0d98c8a15fc95b8b8970801e7
> Author: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
> Date: Thu Aug 17 09:12:21 2023 +0000
>
> driver core: Return proper error code when dev_set_name() fails
>
> bisection log: https://syzkaller.appspot.com/x/bisect.txt?x=16cefca8680000
> final oops: https://syzkaller.appspot.com/x/report.txt?x=15cefca8680000
> console output: https://syzkaller.appspot.com/x/log.txt?x=11cefca8680000
>
> IMPORTANT: if you fix the issue, please add the following tag to the commit:
> Reported-by: syzbot+d2c31705e468a347e6db@xxxxxxxxxxxxxxxxxxxxxxxxx
> Fixes: d21fdd07cea4 ("driver core: Return proper error code when dev_set_name() fails")
>
> RBP: 0000000000000002 R08: 00007ffd497ebaf6 R09: 0000000100000000
> R10: 0000000000000002 R11: 0000000000000246 R12: 0000000000000000
> R13: 00000000000f4240 R14: 00000000000162a9 R15: 00007ffd497ebd74
> </TASK>
> general protection fault, probably for non-canonical address 0xdffffc0000000000: 0000 [#1] PREEMPT SMP KASAN
> KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007]
> CPU: 0 PID: 5057 Comm: syz-executor401 Not tainted 6.5.0-next-20230828-syzkaller #0
> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/26/2023
> RIP: 0010:strchr+0x1b/0xb0 lib/string.c:329
> Code: a3 ac f7 48 8b 74 24 08 48 8b 14 24 eb 89 90 f3 0f 1e fa 48 b8 00 00 00 00 00 fc ff df 48 89 fa 55 48 c1 ea 03 53 48 83 ec 10 <0f> b6 04 02 48 89 fa 83 e2 07 38 d0 7f 04 84 c0 75 51 0f b6 07 89
> RSP: 0018:ffffc90003abf058 EFLAGS: 00010282
> RAX: dffffc0000000000 RBX: 0000000000000000 RCX: 0000000000000000
> RDX: 0000000000000000 RSI: 0000000000000025 RDI: 0000000000000000
> RBP: ffffc90003abf0e8 R08: 0000000000000001 R09: 0000000000000000
> R10: 0000000000000001 R11: 0000000000000000 R12: ffffc90003abf0e8
> R13: 0000000000000cc0 R14: ffff8880142f8880 R15: 0000000000000001
> FS: 0000555555e44380(0000) GS:ffff8880b9800000(0000) knlGS:0000000000000000
> CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> CR2: 00007f8bf2d75fc4 CR3: 000000007211d000 CR4: 00000000003506f0
> DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
> Call Trace:
> <TASK>
> kvasprintf_const+0x25/0x190 lib/kasprintf.c:45
> kobject_set_name_vargs+0x5a/0x130 lib/kobject.c:272
> kobject_add_varg lib/kobject.c:366 [inline]
> kobject_add+0x12a/0x240 lib/kobject.c:424
> device_add+0x290/0x1ac0 drivers/base/core.c:3560
> netdev_register_kobject+0x183/0x3f0 net/core/net-sysfs.c:2044
> register_netdevice+0xbcb/0x1490 net/core/dev.c:10133
> macvlan_common_newlink+0x1102/0x1a40 drivers/net/macvlan.c:1545
> rtnl_newlink_create net/core/rtnetlink.c:3485 [inline]
> __rtnl_newlink+0x1177/0x1940 net/core/rtnetlink.c:3705
> rtnl_newlink+0x67/0xa0 net/core/rtnetlink.c:3718
> rtnetlink_rcv_msg+0x439/0xd30 net/core/rtnetlink.c:6444
> netlink_rcv_skb+0x16b/0x440 net/netlink/af_netlink.c:2545
> netlink_unicast_kernel net/netlink/af_netlink.c:1342 [inline]
> netlink_unicast+0x536/0x810 net/netlink/af_netlink.c:1368
> netlink_sendmsg+0x93c/0xe40 net/netlink/af_netlink.c:1910
> sock_sendmsg_nosec net/socket.c:730 [inline]
> sock_sendmsg+0xd9/0x180 net/socket.c:753
> ____sys_sendmsg+0x6ac/0x940 net/socket.c:2540
> ___sys_sendmsg+0x135/0x1d0 net/socket.c:2594
> __sys_sendmsg+0x117/0x1e0 net/socket.c:2623
> do_syscall_x64 arch/x86/entry/common.c:50 [inline]
> do_syscall_64+0x38/0xb0 arch/x86/entry/common.c:80
> entry_SYSCALL_64_after_hwframe+0x63/0xcd
> RIP: 0033:0x7f8bf2d14ce9
> Code: 28 00 00 00 75 05 48 83 c4 28 c3 e8 d1 19 00 00 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 b8 ff ff ff f7 d8 64 89 01 48
> RSP: 002b:00007ffd497ebd58 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
> RAX: ffffffffffffffda RBX: 0000000000000003 RCX: 00007f8bf2d14ce9
> RDX: 0000000000000000 RSI: 0000000020000280 RDI: 0000000000000003
> RBP: 0000000000000002 R08: 00007ffd497ebaf6 R09: 0000000100000000
> R10: 0000000000000002 R11: 0000000000000246 R12: 0000000000000000
> R13: 00000000000f4240 R14: 00000000000162a9 R15: 00007ffd497ebd74
> </TASK>
> Modules linked in:
> ---[ end trace 0000000000000000 ]---
> RIP: 0010:strchr+0x1b/0xb0 lib/string.c:329
> Code: a3 ac f7 48 8b 74 24 08 48 8b 14 24 eb 89 90 f3 0f 1e fa 48 b8 00 00 00 00 00 fc ff df 48 89 fa 55 48 c1 ea 03 53 48 83 ec 10 <0f> b6 04 02 48 89 fa 83 e2 07 38 d0 7f 04 84 c0 75 51 0f b6 07 89
> RSP: 0018:ffffc90003abf058 EFLAGS: 00010282
> RAX: dffffc0000000000 RBX: 0000000000000000 RCX: 0000000000000000
> RDX: 0000000000000000 RSI: 0000000000000025 RDI: 0000000000000000
> RBP: ffffc90003abf0e8 R08: 0000000000000001 R09: 0000000000000000
> R10: 0000000000000001 R11: 0000000000000000 R12: ffffc90003abf0e8
> R13: 0000000000000cc0 R14: ffff8880142f8880 R15: 0000000000000001
> FS: 0000555555e44380(0000) GS:ffff8880b9800000(0000) knlGS:0000000000000000
> CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> CR2: 00005628e3c36050 CR3: 000000007211d000 CR4: 00000000003506f0
> DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
> ----------------
> Code disassembly (best guess):
> 0: a3 ac f7 48 8b 74 24 movabs %eax,0x480824748b48f7ac
> 7: 08 48
> 9: 8b 14 24 mov (%rsp),%edx
> c: eb 89 jmp 0xffffff97
> e: 90 nop
> f: f3 0f 1e fa endbr64
> 13: 48 b8 00 00 00 00 00 movabs $0xdffffc0000000000,%rax
> 1a: fc ff df
> 1d: 48 89 fa mov %rdi,%rdx
> 20: 55 push %rbp
> 21: 48 c1 ea 03 shr $0x3,%rdx
> 25: 53 push %rbx
> 26: 48 83 ec 10 sub $0x10,%rsp
> * 2a: 0f b6 04 02 movzbl (%rdx,%rax,1),%eax <-- trapping instruction
> 2e: 48 89 fa mov %rdi,%rdx
> 31: 83 e2 07 and $0x7,%edx
> 34: 38 d0 cmp %dl,%al
> 36: 7f 04 jg 0x3c
> 38: 84 c0 test %al,%al
> 3a: 75 51 jne 0x8d
> 3c: 0f b6 07 movzbl (%rdi),%eax
> 3f: 89 .byte 0x89
>
>
> ---
> This report is generated by a bot. It may contain errors.
> See https://goo.gl/tpsmEJ for more information about syzbot.
> syzbot engineers can be reached at syzkaller@xxxxxxxxxxxxxxxx.
>
> syzbot will keep track of this issue. See:
> https://goo.gl/tpsmEJ#status for how to communicate with syzbot.
> For information about bisection process see: https://goo.gl/tpsmEJ#bisection
>
> If the bug is already fixed, let syzbot know by replying with:
> #syz fix: exact-commit-title
>
> If you want syzbot to run the reproducer, reply with:
> #syz test: git://repo/address.git branch-or-commit-hash
> If you attach or paste a git patch, syzbot will apply it before testing.
>
> If you want to overwrite bug's subsystems, reply with:
> #syz set subsystems: new-subsystem
> (See the list of subsystem names on the web dashboard)
>
> If the bug is a duplicate of another bug, reply with:
> #syz dup: exact-subject-of-another-report
#syz dup: [syzbot] [kernel?] general protection fault in nfc_register_device
> If you want to undo deduplication, reply with:
> #syz undup
--
With Best Regards,
Andy Shevchenko