syzbot


BUG: unable to handle kernel paging request in do_csum (2)

Status: fixed on 2020/02/18 14:31
Reported-by: syzbot+@syzkaller.appspotmail.com
Fix commit: 6cd021a58c18 udp: segment looped gso packets correctly
First crash: 980d, last: 979d

Cause bisection: introduced by (bisect log) :
commit cf329aa42b6659204fee865bbce0ea20462552eb
Author: Paolo Abeni <pabeni@redhat.com>
Date: Wed Nov 7 11:38:33 2018 +0000

  udp: cope with UDP GRO packet misdirection

Crash: WARNING in skb_warn_bad_offload (log)
Repro: C syz .config
similar bugs (3):
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream BUG: unable to handle kernel paging request in do_csum C 11 1398d 1398d 12/24 fixed on 2019/03/06 07:43
upstream BUG: unable to handle kernel paging request in do_csum (3) C error error 31 406d 662d 0/24 closed as invalid on 2022/01/07 18:56
linux-4.19 BUG: unable to handle kernel paging request in do_csum C done 1 405d 624d 1/1 fixed on 2021/09/21 12:35

Sample crash report:
BUG: unable to handle page fault for address: ffff8880bfffd000
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
PGD c401067 P4D c401067 PUD 21ffff067 PMD 21fffe067 PTE 0
Oops: 0000 [#1] PREEMPT SMP KASAN
CPU: 0 PID: 10029 Comm: syz-executor685 Not tainted 5.5.0-rc7-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
RIP: 0010:do_csum+0x19f/0x420 arch/x86/lib/csum-partial_64.c:72
Code: 37 47 a4 f9 41 83 ef 01 31 ff 31 c0 44 89 fe 49 03 1e 49 13 5e 08 49 13 5e 10 49 13 5e 18 49 13 5e 20 49 13 5e 28 49 13 5e 30 <49> 13 5e 38 48 11 c3 e8 85 48 a4 f9 49 83 c6 40 45 85 ff 75 c0 8b
RSP: 0018:ffffc90000007650 EFLAGS: 00010206
RAX: 0000000000000000 RBX: 0169cfbd192ebe0a RCX: ffffffff87d0b05b
RDX: 0000000000000100 RSI: 00000000039ec55f RDI: 0000000000000000
RBP: ffffc90000007688 R08: ffff8880a2e844c0 R09: fffff94000484ec7
R10: fffff94000484ec6 R11: ffffea0002427637 R12: 00000000ffffff38
R13: ffff8880a7b128c8 R14: ffff8880bfffcfc8 R15: 00000000039ec55f
FS:  00000000022fa880(0000) GS:ffff8880ae800000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: ffff8880bfffd000 CR3: 00000000a9533000 CR4: 00000000001406f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
 <IRQ>
 csum_partial+0x21/0x30 arch/x86/lib/csum-partial_64.c:136
 gso_make_checksum include/linux/skbuff.h:4387 [inline]
 __udp_gso_segment+0x7fa/0x1140 net/ipv4/udp_offload.c:252
 udp4_ufo_fragment net/ipv4/udp_offload.c:311 [inline]
 udp4_ufo_fragment+0x55f/0x770 net/ipv4/udp_offload.c:288
 inet_gso_segment+0x53c/0x1170 net/ipv4/af_inet.c:1348
 skb_mac_gso_segment+0x295/0x590 net/core/dev.c:3177
 __skb_gso_segment+0x363/0x730 net/core/dev.c:3250
 udp_rcv_segment include/net/udp.h:482 [inline]
 udp_queue_rcv_skb net/ipv4/udp.c:2107 [inline]
 udp_queue_rcv_skb+0x2b2/0x790 net/ipv4/udp.c:2097
 __udp4_lib_mcast_deliver net/ipv4/udp.c:2194 [inline]
 __udp4_lib_rcv+0x20bc/0x2d20 net/ipv4/udp.c:2324
 udp_rcv+0x22/0x30 net/ipv4/udp.c:2499
 ip_protocol_deliver_rcu+0x5a/0x880 net/ipv4/ip_input.c:204
 ip_local_deliver_finish+0x23b/0x380 net/ipv4/ip_input.c:231
 NF_HOOK include/linux/netfilter.h:307 [inline]
 NF_HOOK include/linux/netfilter.h:301 [inline]
 ip_local_deliver+0x1e9/0x520 net/ipv4/ip_input.c:252
 dst_input include/net/dst.h:442 [inline]
 ip_rcv_finish+0x1db/0x2f0 net/ipv4/ip_input.c:428
 NF_HOOK include/linux/netfilter.h:307 [inline]
 NF_HOOK include/linux/netfilter.h:301 [inline]
 ip_rcv+0xe8/0x3f0 net/ipv4/ip_input.c:538
 __netif_receive_skb_one_core+0x113/0x1a0 net/core/dev.c:5150
 __netif_receive_skb+0x2c/0x1d0 net/core/dev.c:5264
 process_backlog+0x206/0x750 net/core/dev.c:6096
 napi_poll net/core/dev.c:6534 [inline]
 net_rx_action+0x508/0x1120 net/core/dev.c:6602
 __do_softirq+0x262/0x98c kernel/softirq.c:292
 do_softirq_own_stack+0x2a/0x40 arch/x86/entry/entry_64.S:1082
 </IRQ>
 do_softirq.part.0+0x11a/0x170 kernel/softirq.c:337
 do_softirq+0x18/0x20 kernel/softirq.c:325
 netif_rx_ni+0x3ea/0x670 net/core/dev.c:4708
 dev_loopback_xmit+0x285/0x750 net/core/dev.c:3728
 ip_mc_finish_output+0x16e/0x4a0 net/ipv4/ip_output.c:357
 NF_HOOK include/linux/netfilter.h:307 [inline]
 NF_HOOK include/linux/netfilter.h:301 [inline]
 ip_mc_output+0x5d8/0xf60 net/ipv4/ip_output.c:396
 dst_output include/net/dst.h:436 [inline]
 ip_local_out+0xbb/0x1b0 net/ipv4/ip_output.c:125
 ip_send_skb+0x42/0xf0 net/ipv4/ip_output.c:1562
 udp_send_skb.isra.0+0x6d5/0x11b0 net/ipv4/udp.c:891
 udp_sendmsg+0x1e8f/0x2810 net/ipv4/udp.c:1178
 udpv6_sendmsg+0x14c7/0x2b40 net/ipv6/udp.c:1284
 inet6_sendmsg+0x9e/0xe0 net/ipv6/af_inet6.c:576
 sock_sendmsg_nosec net/socket.c:639 [inline]
 sock_sendmsg+0xd7/0x130 net/socket.c:659
 __sys_sendto+0x262/0x380 net/socket.c:1985
 __do_sys_sendto net/socket.c:1997 [inline]
 __se_sys_sendto net/socket.c:1993 [inline]
 __x64_sys_sendto+0xe1/0x1a0 net/socket.c:1993
 do_syscall_64+0xfa/0x790 arch/x86/entry/common.c:294
 entry_SYSCALL_64_after_hwframe+0x49/0xbe
RIP: 0033:0x4426a9
Code: 18 89 d0 c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 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 0f 83 7b 10 fc ff c3 66 2e 0f 1f 84 00 00 00 00
RSP: 002b:00007fff9f0c94c8 EFLAGS: 00000246 ORIG_RAX: 000000000000002c
RAX: ffffffffffffffda RBX: 0000000000000003 RCX: 00000000004426a9
RDX: 0000000000000401 RSI: 0000000020000600 RDI: 0000000000000003
RBP: 00007fff9f0c94f0 R08: 00000000200011c0 R09: 000000000000001c
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 0000000000403c40 R14: 0000000000000000 R15: 0000000000000000
Modules linked in:
CR2: ffff8880bfffd000
---[ end trace 29cb815cb2b402c9 ]---
RIP: 0010:do_csum+0x19f/0x420 arch/x86/lib/csum-partial_64.c:72
Code: 37 47 a4 f9 41 83 ef 01 31 ff 31 c0 44 89 fe 49 03 1e 49 13 5e 08 49 13 5e 10 49 13 5e 18 49 13 5e 20 49 13 5e 28 49 13 5e 30 <49> 13 5e 38 48 11 c3 e8 85 48 a4 f9 49 83 c6 40 45 85 ff 75 c0 8b
RSP: 0018:ffffc90000007650 EFLAGS: 00010206
RAX: 0000000000000000 RBX: 0169cfbd192ebe0a RCX: ffffffff87d0b05b
RDX: 0000000000000100 RSI: 00000000039ec55f RDI: 0000000000000000
RBP: ffffc90000007688 R08: ffff8880a2e844c0 R09: fffff94000484ec7
R10: fffff94000484ec6 R11: ffffea0002427637 R12: 00000000ffffff38
R13: ffff8880a7b128c8 R14: ffff8880bfffcfc8 R15: 00000000039ec55f
FS:  00000000022fa880(0000) GS:ffff8880ae800000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: ffff8880bfffd000 CR3: 00000000a9533000 CR4: 00000000001406f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400

Crashes (6):
Manager Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Title
ci-upstream-kasan-gce-root 2020/01/26 08:39 upstream 2821e26f3a0a f4e7270e .config log report syz C
ci-upstream-kasan-gce-selinux-root 2020/01/25 21:56 upstream d5d359b0ac3f 2e95ab33 .config log report syz C
ci-upstream-kasan-gce 2020/01/24 11:30 upstream 4703d9119972 2e95ab33 .config log report syz C
ci-upstream-kasan-gce-386 2020/01/24 11:29 upstream 4703d9119972 2e95ab33 .config log report syz C
ci-upstream-net-this-kasan-gce 2020/01/24 10:46 net 61678d28d4a4 2e95ab33 .config log report syz C
ci-upstream-net-kasan-gce 2020/01/24 11:37 net-next 9bbc8be29d66 2e95ab33 .config log report syz C
* Struck through repros no longer work on HEAD.