[syzbot] [net?] general protection fault in __fib6_drop_pcpu_from (6)

From: syzbot
Date: Tue Feb 04 2025 - 00:52:42 EST


Hello,

syzbot found the following issue on:

HEAD commit: 21266b8df522 Merge tag 'AT_EXECVE_CHECK-v6.14-rc1' of git:..
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=145d5ab0580000
kernel config: https://syzkaller.appspot.com/x/.config?x=35d426d11e96abde
dashboard link: https://syzkaller.appspot.com/bug?extid=1e7754bbf472315fa1e2
compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40

Unfortunately, I don't have any reproducer for this issue yet.

Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/1ae7dbe9a3c4/disk-21266b8d.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/df012528770e/vmlinux-21266b8d.xz
kernel image: https://storage.googleapis.com/syzbot-assets/b59f340ba623/bzImage-21266b8d.xz

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+1e7754bbf472315fa1e2@xxxxxxxxxxxxxxxxxxxxxxxxx

Oops: general protection fault, probably for non-canonical address 0xdffffc0000000013: 0000 [#1] PREEMPT SMP KASAN PTI
KASAN: null-ptr-deref in range [0x0000000000000098-0x000000000000009f]
CPU: 0 UID: 0 PID: 52 Comm: kworker/u8:3 Not tainted 6.13.0-syzkaller-04858-g21266b8df522 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 12/27/2024
Workqueue: netns cleanup_net
RIP: 0010:__fib6_drop_pcpu_from+0x1fd/0x3d0 net/ipv6/ip6_fib.c:980
Code: 48 c1 e8 03 42 80 3c 20 00 74 08 48 89 ef e8 ba 1d 93 f7 48 8b 6d 00 48 85 ed 74 30 48 81 c5 90 00 00 00 48 89 e8 48 c1 e8 03 <42> 80 3c 20 00 74 08 48 89 ef e8 94 1d 93 f7 48 8b 45 00 4c 39 f0
RSP: 0018:ffffc90000bc6c00 EFLAGS: 00010202
RAX: 0000000000000013 RBX: ffffffff8e2fbb50 RCX: ffff888021ac8000
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
RBP: 0000000000000098 R08: ffffffff8a704438 R09: 1ffffffff20345d6
R10: dffffc0000000000 R11: fffffbfff20345d7 R12: dffffc0000000000
R13: ffff8880248a8510 R14: ffff8880248a8400 R15: 0000000000000000
FS: 0000000000000000(0000) GS:ffff8880b8600000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 000000110c335fd7 CR3: 00000000118ae000 CR4: 00000000003526f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
<TASK>
fib6_drop_pcpu_from net/ipv6/ip6_fib.c:1024 [inline]
fib6_purge_rt+0x193/0x890 net/ipv6/ip6_fib.c:1035
fib6_del_route net/ipv6/ip6_fib.c:1995 [inline]
fib6_del+0xe71/0x1600 net/ipv6/ip6_fib.c:2040
fib6_clean_node+0x2f7/0x5e0 net/ipv6/ip6_fib.c:2202
fib6_walk_continue+0x658/0x8f0 net/ipv6/ip6_fib.c:2124
fib6_walk+0x168/0x2b0 net/ipv6/ip6_fib.c:2172
fib6_clean_tree net/ipv6/ip6_fib.c:2252 [inline]
__fib6_clean_all+0x31f/0x4b0 net/ipv6/ip6_fib.c:2268
rt6_sync_down_dev net/ipv6/route.c:4908 [inline]
rt6_disable_ip+0x170/0x800 net/ipv6/route.c:4913
addrconf_ifdown+0x15d/0x1bd0 net/ipv6/addrconf.c:3849
addrconf_notify+0x3cb/0x1020
notifier_call_chain+0x1a5/0x3f0 kernel/notifier.c:85
call_netdevice_notifiers_extack net/core/dev.c:2179 [inline]
call_netdevice_notifiers net/core/dev.c:2193 [inline]
dev_close_many+0x33c/0x4c0 net/core/dev.c:1717
unregister_netdevice_many_notify+0x52b/0x2030 net/core/dev.c:11779
unregister_netdevice_many net/core/dev.c:11875 [inline]
default_device_exit_batch+0xa1f/0xaa0 net/core/dev.c:12360
ops_exit_list net/core/net_namespace.c:177 [inline]
cleanup_net+0x8ad/0xd60 net/core/net_namespace.c:652
process_one_work kernel/workqueue.c:3236 [inline]
process_scheduled_works+0xa66/0x1840 kernel/workqueue.c:3317
worker_thread+0x870/0xd30 kernel/workqueue.c:3398
kthread+0x7a9/0x920 kernel/kthread.c:464
ret_from_fork+0x4b/0x80 arch/x86/kernel/process.c:148
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244
</TASK>
Modules linked in:
---[ end trace 0000000000000000 ]---
RIP: 0010:__fib6_drop_pcpu_from+0x1fd/0x3d0 net/ipv6/ip6_fib.c:980
Code: 48 c1 e8 03 42 80 3c 20 00 74 08 48 89 ef e8 ba 1d 93 f7 48 8b 6d 00 48 85 ed 74 30 48 81 c5 90 00 00 00 48 89 e8 48 c1 e8 03 <42> 80 3c 20 00 74 08 48 89 ef e8 94 1d 93 f7 48 8b 45 00 4c 39 f0
RSP: 0018:ffffc90000bc6c00 EFLAGS: 00010202
RAX: 0000000000000013 RBX: ffffffff8e2fbb50 RCX: ffff888021ac8000
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
RBP: 0000000000000098 R08: ffffffff8a704438 R09: 1ffffffff20345d6
R10: dffffc0000000000 R11: fffffbfff20345d7 R12: dffffc0000000000
R13: ffff8880248a8510 R14: ffff8880248a8400 R15: 0000000000000000
FS: 0000000000000000(0000) GS:ffff8880b8600000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 000000110c335fd7 CR3: 00000000118ae000 CR4: 00000000003526f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
----------------
Code disassembly (best guess):
0: 48 c1 e8 03 shr $0x3,%rax
4: 42 80 3c 20 00 cmpb $0x0,(%rax,%r12,1)
9: 74 08 je 0x13
b: 48 89 ef mov %rbp,%rdi
e: e8 ba 1d 93 f7 call 0xf7931dcd
13: 48 8b 6d 00 mov 0x0(%rbp),%rbp
17: 48 85 ed test %rbp,%rbp
1a: 74 30 je 0x4c
1c: 48 81 c5 90 00 00 00 add $0x90,%rbp
23: 48 89 e8 mov %rbp,%rax
26: 48 c1 e8 03 shr $0x3,%rax
* 2a: 42 80 3c 20 00 cmpb $0x0,(%rax,%r12,1) <-- trapping instruction
2f: 74 08 je 0x39
31: 48 89 ef mov %rbp,%rdi
34: e8 94 1d 93 f7 call 0xf7931dcd
39: 48 8b 45 00 mov 0x0(%rbp),%rax
3d: 4c 39 f0 cmp %r14,%rax


---
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.

If the report is already addressed, let syzbot know by replying with:
#syz fix: exact-commit-title

If you want to overwrite report's subsystems, reply with:
#syz set subsystems: new-subsystem
(See the list of subsystem names on the web dashboard)

If the report is a duplicate of another one, reply with:
#syz dup: exact-subject-of-another-report

If you want to undo deduplication, reply with:
#syz undup