Subject: BUG: unable to handle kernel NULL pointer dereference in addrconf_ifdown

From: syzbot <[email-masked]>
Date: Tue, 19 Dec 2017 23:50:01 -0800

Hello,

syzkaller hit the following crash on  
6084b576dca2e898f5c101baef151f7bfdbb606d
git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/master
compiler: gcc (GCC) 7.1.1 20170620
.config is attached
Raw console output is attached.

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

BUG: unable to handle kernel NULL pointer dereference at           (null)
IP: addrconf_ifdown+0x3a2/0x780 net/ipv6/addrconf.c:3674
PGD 1df99c067 P4D 1df99c067 PUD 1dfbbe067 PMD 0
Oops: 0000 [#1] SMP
Dumping ftrace buffer:
    (ftrace buffer empty)
Modules linked in:
CPU: 0 PID: 28113 Comm: syz-executor0 Not tainted 4.15.0-rc3-next-20171214+  
#67
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS  
Google 01/01/2011
RIP: 0010:addrconf_ifdown+0x3a2/0x780 net/ipv6/addrconf.c:3674
RSP: 0018:ffffc900014bf928 EFLAGS: 00010293
RAX: 0000000000000000 RBX: 0000000000000000 RCX: ffffffff82251944
RDX: ffff880216be6808 RSI: ffff880216be69b8 RDI: 0000000000000001
RBP: ffffc900014bf980 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000000 R12: ffff880216be6800
R13: ffff880216be6968 R14: 0000000000000000 R15: ffffffff831755a0
FS:  00007f91d886d700(0000) GS:ffff88021fc00000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000000000000 CR3: 00000001df119000 CR4: 00000000001426f0
DR0: 0000000020000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000600
Call Trace:
  addrconf_notify+0x86/0xd50 net/ipv6/addrconf.c:3514
  notifier_call_chain+0x41/0xc0 kernel/notifier.c:93
  __raw_notifier_call_chain kernel/notifier.c:394 [inline]
  raw_notifier_call_chain+0x2d/0x40 kernel/notifier.c:401
  call_netdevice_notifiers_info+0x32/0x60 net/core/dev.c:1679
  call_netdevice_notifiers net/core/dev.c:1697 [inline]
  dev_close_many+0x121/0x190 net/core/dev.c:1492
  rollback_registered_many+0x16f/0x490 net/core/dev.c:7265
  rollback_registered+0x59/0x90 net/core/dev.c:7330
  unregister_netdevice_queue+0xa5/0xf0 net/core/dev.c:8311
  unregister_netdevice include/linux/netdevice.h:2464 [inline]
  __tun_detach+0x618/0x680 drivers/net/tun.c:688
  tun_detach drivers/net/tun.c:699 [inline]
  tun_chr_close+0x26/0x30 drivers/net/tun.c:2955
  __fput+0x120/0x270 fs/file_table.c:209
  ____fput+0x15/0x20 fs/file_table.c:243
  task_work_run+0xa3/0xe0 kernel/task_work.c:113
  exit_task_work include/linux/task_work.h:22 [inline]
  do_exit+0x3e6/0x1050 kernel/exit.c:869
  do_group_exit+0x60/0x100 kernel/exit.c:972
  get_signal+0x36c/0xad0 kernel/signal.c:2337
  do_signal+0x23/0x670 arch/x86/kernel/signal.c:809
  exit_to_usermode_loop+0x13c/0x160 arch/x86/entry/common.c:161
  prepare_exit_to_usermode arch/x86/entry/common.c:195 [inline]
  syscall_return_slowpath+0x1b4/0x1e0 arch/x86/entry/common.c:264
  entry_SYSCALL_64_fastpath+0x94/0x96
RIP: 0033:0x452a39
RSP: 002b:00007f91d886cc58 EFLAGS: 00000212 ORIG_RAX: 0000000000000010
RAX: 0000000000000000 RBX: 00000000007580d8 RCX: 0000000000452a39
RDX: 0000000000000000 RSI: 0000000000004c06 RDI: 000000000000001c
RBP: 00000000000002dc R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000212 R12: 00000000006f2540
R13: 00000000ffffffff R14: 00007f91d886d6d4 R15: 0000000000000012
Code: 17 e8 13 8a 06 ff 41 8b b4 24 50 02 00 00 31 c0 85 f6 0f 94 c0 89 45  
d0 e8 fc 89 06 ff 49 8b 44 24 08 49 8d 54 24 08 48 89 55 b8 <48> 8b 08 48  
39 d0 48 8d 98 c8 fe ff ff 48 89 45 c0 4c 8d b1 c8
RIP: addrconf_ifdown+0x3a2/0x780 net/ipv6/addrconf.c:3674 RSP:  
ffffc900014bf928
CR2: 0000000000000000
---[ end trace 36c3336430e0eeeb ]---

---
This bug is generated by a dumb bot. It may contain errors.
See https://goo.gl/tpsmEJ for details.
Direct all questions to [email-masked].
Please credit me with: Reported-by: syzbot <[email-masked]>

syzbot will keep track of this bug report.
Once a fix for this bug is merged into any tree, reply to this email with:
#syz fix: exact-commit-title
To mark this as a duplicate of another syzbot report, please reply with:
#syz dup: exact-subject-of-another-report
If it's a one-off invalid bug report, please reply with:
#syz invalid
Note: if the crash happens again, it will cause creation of a new bug  
report.
Note: all commands must start from beginning of the line in the email body.