Re: general protection fault in lo_ioctl
From: Dmitry Vyukov
Date: Fri Nov 03 2017 - 09:03:40 EST
On Fri, Nov 3, 2017 at 4:01 PM, syzbot
<bot+b87b24db14d35489d47950bf0550cbcd86e5563e@xxxxxxxxxxxxxxxxxxxxxxxxx>
wrote:
> Hello,
>
> syzkaller hit the following crash on
> c52f56a69d104d5294af3d652776d94b1ef6a175
> git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/master
> compiler: gcc (GCC) 7.1.1 20170620
> .config is attached
> Raw console output is attached.
>
>
>
>
> kasan: CONFIG_KASAN_INLINE enabled
> kasan: GPF could be caused by NULL-ptr deref or user memory access
> general protection fault: 0000 [#1] SMP KASAN
> Dumping ftrace buffer:
> (ftrace buffer empty)
> Modules linked in:
> CPU: 0 PID: 7227 Comm: syz-executor5 Not tainted 4.14.0-rc1+ #93
> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
> Google 01/01/2011
> task: ffff8801c32ae200 task.stack: ffff8801d9aa8000
> RIP: 0010:loop_set_fd drivers/block/loop.c:885 [inline]
> RIP: 0010:lo_ioctl+0x678/0x1b80 drivers/block/loop.c:1353
> RSP: 0018:ffff8801d9aafaa0 EFLAGS: 00010202
> RAX: 0000000000010000 RBX: dffffc0000000000 RCX: ffffc9000448e000
> RDX: 000000000000003b RSI: ffffffff83541738 RDI: 00000000000001d8
> RBP: ffff8801d9aafb18 R08: ffffffff85b382a0 R09: 1ffff1003b355efd
> R10: ffff8801c32ae200 R11: 0000000000000001 R12: 0000000000000000
> R13: ffff8801d4ff7200 R14: ffff8801d6551100 R15: ffff8801d4ff7358
> FS: 00007f63068df700(0000) GS:ffff8801db200000(0000) knlGS:0000000000000000
> CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> CR2: 00007f783dc354a0 CR3: 00000001d78d6000 CR4: 00000000001426f0
> DR0: 0000000020000008 DR1: 0000000020000008 DR2: 0000000000000000
> DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000600
> Call Trace:
> __blkdev_driver_ioctl block/ioctl.c:297 [inline]
> blkdev_ioctl+0xc07/0x1de0 block/ioctl.c:594
> block_ioctl+0xea/0x130 fs/block_dev.c:1870
> vfs_ioctl fs/ioctl.c:45 [inline]
> do_vfs_ioctl+0x1b1/0x1530 fs/ioctl.c:685
> SYSC_ioctl fs/ioctl.c:700 [inline]
> SyS_ioctl+0x8f/0xc0 fs/ioctl.c:691
> entry_SYSCALL_64_fastpath+0x1f/0xbe
> RIP: 0033:0x4520a9
> RSP: 002b:00007f63068dec08 EFLAGS: 00000216 ORIG_RAX: 0000000000000010
> RAX: ffffffffffffffda RBX: 00000000007180b0 RCX: 00000000004520a9
> RDX: 0000000000000016 RSI: 0000000000004c00 RDI: 0000000000000006
> RBP: 0000000000000082 R08: 0000000000000000 R09: 0000000000000000
> R10: 0000000000000000 R11: 0000000000000216 R12: 0000000000000000
> R13: 0000000000a6f7ef R14: 00007f63068df9c0 R15: 0000000000000023
> Code: 00 00 00 48 89 fa 48 c1 ea 03 80 3c 1a 00 0f 85 81 14 00 00 4d 8b a4
> 24 f0 00 00 00 49 8d bc 24 d8 01 00 00 48 89 fa 48 c1 ea 03 <80> 3c 1a 00 0f
> 85 56 14 00 00 4d 8b a4 24 d8 01 00 00 4c 89 e2
> RIP: loop_set_fd drivers/block/loop.c:885 [inline] RSP: ffff8801d9aafaa0
> RIP: lo_ioctl+0x678/0x1b80 drivers/block/loop.c:1353 RSP: ffff8801d9aafaa0
> ---[ end trace 249e5d44fb303080 ]---
> sctp: [Deprecated]: syz-executor1 (pid 7255) Use of struct sctp_assoc_value
> in delayed_ack socket option.
> Use struct sctp_sack_info instead
> netlink: 5 bytes leftover after parsing attributes in process
> `syz-executor3'.
> IPv6: Can't replace route, no match found
> sctp: [Deprecated]: syz-executor1 (pid 7255) Use of struct sctp_assoc_value
> in delayed_ack socket option.
> Use struct sctp_sack_info instead
> SELinux: unrecognized netlink message: protocol=6 nlmsg_type=65535
> sclass=netlink_xfrm_socket pig=7254 comm=syz-executor3
> netlink: 60 bytes leftover after parsing attributes in process
> `syz-executor3'.
> IPv6: Can't replace route, no match found
> SELinux: unrecognized netlink message: protocol=6 nlmsg_type=65535
> sclass=netlink_xfrm_socket pig=7266 comm=syz-executor3
> sctp: [Deprecated]: syz-executor1 (pid 7274) Use of struct sctp_assoc_value
> in delayed_ack socket option.
> Use struct sctp_sack_info instead
> IPv6: Can't replace route, no match found
> SELinux: unrecognized netlink message: protocol=6 nlmsg_type=65535
> sclass=netlink_xfrm_socket pig=7283 comm=syz-executor3
> IPv6: Can't replace route, no match found
> SELinux: unrecognized netlink message: protocol=6 nlmsg_type=65535
> sclass=netlink_xfrm_socket pig=7283 comm=syz-executor3
This also happened on more recent commits, including linux-next
36ef71cae353f88fd6e095e2aaa3e5953af1685d (oct 19):
kasan: CONFIG_KASAN_INLINE enabled
kasan: GPF could be caused by NULL-ptr deref or user memory access
general protection fault: 0000 [#1] SMP KASAN
Dumping ftrace buffer:
(ftrace buffer empty)
Modules linked in:
CPU: 2 PID: 4083 Comm: syz-executor6 Not tainted 4.14.0-rc5-next-20171018+ #8
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
task: ffff88006c556440 task.stack: ffff88006b198000
RIP: 0010:loop_set_fd drivers/block/loop.c:890 [inline]
RIP: 0010:lo_ioctl+0x672/0x1b70 drivers/block/loop.c:1358
print_req_error: I/O error, dev loop3, sector 0
Buffer I/O error on dev loop3, logical block 0, lost async page write
print_req_error: I/O error, dev loop3, sector 8
Buffer I/O error on dev loop3, logical block 1, lost async page write
print_req_error: I/O error, dev loop3, sector 16
Buffer I/O error on dev loop3, logical block 2, lost async page write
print_req_error: I/O error, dev loop3, sector 24
Buffer I/O error on dev loop3, logical block 3, lost async page write
print_req_error: I/O error, dev loop3, sector 32
Buffer I/O error on dev loop3, logical block 4, lost async page write
print_req_error: I/O error, dev loop3, sector 40
Buffer I/O error on dev loop3, logical block 5, lost async page write
print_req_error: I/O error, dev loop3, sector 48
Buffer I/O error on dev loop3, logical block 6, lost async page write
print_req_error: I/O error, dev loop3, sector 56
Buffer I/O error on dev loop3, logical block 7, lost async page write
print_req_error: I/O error, dev loop3, sector 64
Buffer I/O error on dev loop3, logical block 8, lost async page write
print_req_error: I/O error, dev loop3, sector 72
Buffer I/O error on dev loop3, logical block 9, lost async page write
RSP: 0018:ffff88006b19faa0 EFLAGS: 00010202
RAX: 0000000000010000 RBX: dffffc0000000000 RCX: ffffffff8365b372
RDX: 0000000000000037 RSI: ffffc90003814000 RDI: 00000000000001b8
RBP: ffff88006b19fb18 R08: 0000000000000001 R09: 1ffff1000d633f05
R10: ffff88006b19f7f0 R11: 0000000000000001 R12: 0000000000000000
R13: ffff88006b628000 R14: ffff88006d45a680 R15: ffff88006b628150
FS: 00007f047db9f700(0000) GS:ffff88006de00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000020766fc5 CR3: 000000004d2b4000 CR4: 00000000000026e0
DR0: 0000000020000000 DR1: 0000000020001000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000600
Call Trace:
__blkdev_driver_ioctl block/ioctl.c:297 [inline]
blkdev_ioctl+0xc07/0x1de0 block/ioctl.c:594
block_ioctl+0xde/0x120 fs/block_dev.c:1860
vfs_ioctl fs/ioctl.c:45 [inline]
do_vfs_ioctl+0x1b1/0x1520 fs/ioctl.c:685
SYSC_ioctl fs/ioctl.c:700 [inline]
SyS_ioctl+0x8f/0xc0 fs/ioctl.c:691
entry_SYSCALL_64_fastpath+0x1f/0xbe
RIP: 0033:0x447c89
RSP: 002b:00007f047db9ebd8 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
RAX: ffffffffffffffda RBX: 00007f047db9f6cc RCX: 0000000000447c89
RDX: 0000000000000013 RSI: 0000000000004c00 RDI: 0000000000000014
RBP: 0000000000000082 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 00000000ffffffff
R13: 0000000000004020 R14: 00000000006e80c0 R15: 00007f047db9f700
Code: 00 00 00 48 89 fa 48 c1 ea 03 80 3c 1a 00 0f 85 6f 14 00 00 4d
8b a4 24 f0 00 00 00 49 8d bc 24 b8 01 00 00 48 89 fa 48 c1 ea 03 <80>
3c 1a 00 0f 85 44 14 00 00 4d 8b a4 24 b8 01 00 00 4c 89 e2
RIP: loop_set_fd drivers/block/loop.c:890 [inline] RSP: ffff88006b19faa0
RIP: lo_ioctl+0x672/0x1b70 drivers/block/loop.c:1358 RSP: ffff88006b19faa0
---[ end trace 6a5ea439dc513bfe ]---
> ---
> This bug is generated by a dumb bot. It may contain errors.
> See https://goo.gl/tpsmEJ for details.
> Direct all questions to syzkaller@xxxxxxxxxxxxxxxxx
> Please credit me with: Reported-by: syzbot <syzkaller@xxxxxxxxxxxxxxxx>
>
> syzbot will keep track of this bug report.
> Once a fix for this bug is committed, please 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.
>
> --
> You received this message because you are subscribed to the Google Groups
> "syzkaller-bugs" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to syzkaller-bugs+unsubscribe@xxxxxxxxxxxxxxxxx
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/syzkaller-bugs/001a114aa95c07e7b3055d13b4ee%40google.com.
> For more options, visit https://groups.google.com/d/optout.