syzbot


BUG: unable to handle kernel paging request in __skb_frag_unref

Status: upstream: reported syz repro on 2024/11/22 14:53
Subsystems: net
[Documentation on labels]
Reported-by: syzbot+3bd2949d1470dea6df73@syzkaller.appspotmail.com
First crash: 31d, last: 4d03h
Discussions (1)
Title Replies (including bot) Last reply
[syzbot] [net?] BUG: unable to handle kernel paging request in __skb_frag_unref 0 (1) 2024/11/22 14:53
Last patch testing requests (2)
Created Duration User Patch Repo Result
2024/11/18 20:24 20m retest repro git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci report log
2024/11/04 18:17 26m edumazet@google.com git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci report log

Sample crash report:
Unable to handle kernel paging request at virtual address dfff800000000001
KASAN: null-ptr-deref in range [0x0000000000000008-0x000000000000000f]
Mem abort info:
  ESR = 0x0000000096000005
  EC = 0x25: DABT (current EL), IL = 32 bits
  SET = 0, FnV = 0
  EA = 0, S1PTW = 0
  FSC = 0x05: level 1 translation fault
Data abort info:
  ISV = 0, ISS = 0x00000005, ISS2 = 0x00000000
  CM = 0, WnR = 0, TnD = 0, TagAccess = 0
  GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0
[dfff800000000001] address between user and kernel address ranges
Internal error: Oops: 0000000096000005 [#1] PREEMPT SMP
Modules linked in:
CPU: 0 UID: 0 PID: 16 Comm: ksoftirqd/0 Not tainted 6.12.0-rc3-syzkaller-g86cada34bc3a #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024
pstate: 40400005 (nZcv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
pc : _compound_head include/linux/page-flags.h:242 [inline]
pc : put_page include/linux/mm.h:1554 [inline]
pc : skb_page_unref include/linux/skbuff_ref.h:43 [inline]
pc : __skb_frag_unref+0x80/0x214 include/linux/skbuff_ref.h:56
lr : netmem_to_page include/net/netmem.h:83 [inline]
lr : skb_page_unref include/linux/skbuff_ref.h:43 [inline]
lr : __skb_frag_unref+0x78/0x214 include/linux/skbuff_ref.h:56
sp : ffff8000978f6aa0
x29: ffff8000978f6aa0 x28: dfff800000000000 x27: 0000000000000007
x26: ffff0000d3573d40 x25: ffff0000d3573d70 x24: 0000000000000000
x23: ffff0000d3573d42 x22: 1fffe0001a6ae7a8 x21: dfff800000000000
x20: 0000000000000008 x19: 0000000000000000 x18: ffff0000d1eba80c
x17: 0000000000013a0a x16: ffff800080588a40 x15: 0000000000000001
x14: 1fffe0001a6ae7ac x13: 0000000000000000 x12: 0000000000000000
x11: ffff60001a6ae7ad x10: 0000000000ff0100 x9 : 0000000000000000
x8 : 0000000000000001 x7 : 0000000000000000 x6 : 0000000000000000
x5 : 0000000000000001 x4 : 0000000000000008 x3 : ffff8000895974dc
x2 : 0000000000000000 x1 : 0000000000000000 x0 : 0000000000000000
Call trace:
 _compound_head include/linux/page-flags.h:242 [inline] (P)
 put_page include/linux/mm.h:1554 [inline] (P)
 skb_page_unref include/linux/skbuff_ref.h:43 [inline] (P)
 __skb_frag_unref+0x80/0x214 include/linux/skbuff_ref.h:56 (P)
 netmem_to_page include/net/netmem.h:83 [inline] (L)
 skb_page_unref include/linux/skbuff_ref.h:43 [inline] (L)
 __skb_frag_unref+0x78/0x214 include/linux/skbuff_ref.h:56 (L)
 skb_release_data+0x3c4/0x618 net/core/skbuff.c:1119
 skb_release_all net/core/skbuff.c:1190 [inline]
 __kfree_skb+0x58/0x78 net/core/skbuff.c:1204
 tcp_wmem_free_skb include/net/tcp.h:306 [inline]
 tcp_rtx_queue_unlink_and_free+0x2e8/0x4a8 include/net/tcp.h:2091
 tcp_clean_rtx_queue net/ipv4/tcp_input.c:3436 [inline]
 tcp_ack+0x1c84/0x55ac net/ipv4/tcp_input.c:4032
 tcp_rcv_state_process+0x528/0x3e30 net/ipv4/tcp_input.c:6805
 tcp_v4_do_rcv+0x71c/0xc44 net/ipv4/tcp_ipv4.c:1938
 tcp_v4_rcv+0x2498/0x2dbc net/ipv4/tcp_ipv4.c:2350
 ip_protocol_deliver_rcu+0x1f8/0x484 net/ipv4/ip_input.c:205
 ip_local_deliver_finish+0x284/0x4f0 net/ipv4/ip_input.c:233
 NF_HOOK+0x328/0x3d4 include/linux/netfilter.h:314
 ip_local_deliver+0x120/0x194 net/ipv4/ip_input.c:254
 dst_input include/net/dst.h:460 [inline]
 ip_rcv_finish+0x220/0x24c net/ipv4/ip_input.c:449
 NF_HOOK+0x328/0x3d4 include/linux/netfilter.h:314
 ip_rcv+0x7c/0x9c net/ipv4/ip_input.c:569
 __netif_receive_skb_one_core net/core/dev.c:5666 [inline]
 __netif_receive_skb+0x18c/0x3c8 net/core/dev.c:5779
 process_backlog+0x640/0x123c net/core/dev.c:6111
 __napi_poll+0xb4/0x3fc net/core/dev.c:6775
 napi_poll net/core/dev.c:6844 [inline]
 net_rx_action+0x6a8/0xf4c net/core/dev.c:6966
 handle_softirqs+0x2e0/0xbf8 kernel/softirq.c:554
 run_ksoftirqd+0x70/0x158 kernel/softirq.c:927
 smpboot_thread_fn+0x4b0/0x90c kernel/smpboot.c:164
 kthread+0x288/0x310 kernel/kthread.c:389
 ret_from_fork+0x10/0x20 arch/arm64/kernel/entry.S:862
Code: 37000653 97a5f838 91002274 d343fe88 (38756908) 
---[ end trace 0000000000000000 ]---
----------------
Code disassembly (best guess):
   0:	37000653 	tbnz	w19, #0, 0xc8
   4:	97a5f838 	bl	0xfffffffffe97e0e4
   8:	91002274 	add	x20, x19, #0x8
   c:	d343fe88 	lsr	x8, x20, #3
* 10:	38756908 	ldrb	w8, [x8, x21] <-- trapping instruction

Crashes (3):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2024/10/22 10:25 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci 86cada34bc3a a93682b3 .config console log report syz / log [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 BUG: unable to handle kernel paging request in __skb_frag_unref
2024/10/22 05:32 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci 86cada34bc3a a93682b3 .config console log report syz / log [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 BUG: unable to handle kernel paging request in __skb_frag_unref
2024/10/22 04:16 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci 86cada34bc3a a93682b3 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 BUG: unable to handle kernel paging request in __skb_frag_unref
* Struck through repros no longer work on HEAD.