panic: acquiring blockable sleep lock with spinlock or critical section held (kernelp_alonicck): &kkerernnelel d_ilao

0 views
Skip to first unread message

syzbot

unread,
Mar 22, 2022, 8:01:21 PM3/22/22
to syzkaller-o...@googlegroups.com
Hello,

syzbot found the following issue on:

HEAD commit: 63abc0ec39b5 For multicast and broadcast packets udp_input..
git tree: openbsd
console output: https://syzkaller.appspot.com/x/log.txt?x=145f2f6d700000
kernel config: https://syzkaller.appspot.com/x/.config?x=bf87b6915a88cd0d
dashboard link: https://syzkaller.appspot.com/bug?extid=a0a333f558c7f60e9276

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

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+a0a333...@syzkaller.appspotmail.com

panic: acquiring blockable sleep lock with spinlock or critical section held (kernelp_alonicck): &kkerernnelel d_ilaogcnk
osStopped at db_enter+0x18: addq $0x8,%rsp
TID PID UID PRFLAGS PFLAGS CPU COMMAND
41095 57940 0 0 0x4000000 1 syz-executor.7
*161769 50773 0 0 0x4000000 0 syz-executor.0
db_enter() at db_enter+0x18 sys/arch/amd64/amd64/db_interface.c:440
panic(ffffffff825a2db5) at panic+0x177 sys/kern/subr_prf.c:202
witness_checkorder(ffffffff829f3ad8,9,0) at witness_checkorder+0x116d sys/kern/subr_witness.c:833
__mp_lock(ffffffff829f38d0) at __mp_lock+0xa1 read_rflags machine/cpufunc.h:195 [inline]
__mp_lock(ffffffff829f38d0) at __mp_lock+0xa1 intr_disable machine/cpufunc.h:216 [inline]
__mp_lock(ffffffff829f38d0) at __mp_lock+0xa1 sys/kern/kern_lock.c:142
selwakeup(fffffd8070aa0310) at selwakeup+0x16 klist_empty sys/sys/event.h:361 [inline]
selwakeup(fffffd8070aa0310) at selwakeup+0x16 sys/kern/sys_generic.c:885
sorwakeup(fffffd8070aa01f8) at sorwakeup+0xc9 sys/kern/uipc_socket.c:1699
rip_input(ffff800022c44788,ffff800022c44794,0,2) at rip_input+0x3b0 sys/netinet/raw_ip.c:188
ip_deliver(ffff800022c44788,ffff800022c44794,0,2) at ip_deliver+0x322 sys/netinet/ip_input.c:657
ip_ours(ffff800022c44788,ffff800022c44794,ffff800021239000,0) at ip_ours+0x3ba sys/netinet/ip_input.c:616
ip_input_if(ffff800022c44788,ffff800022c44794,4,0,ffff800000689000) at ip_input_if+0x2a1
ipv4_input(ffff800000689000,fffffd806e1b5700) at ipv4_input+0x48 sys/netinet/ip_input.c:242
if_input_local(ffff800000689000,fffffd806e1b5700,2) at if_input_local+0x10e sys/net/if.c:774
ip_output(fffffd8068f0ad00,0,fffffd806f67d420,20,0,fffffd806f67d3a8,7e3f19724a24985d) at ip_output+0xb05 ip_mloopback sys/netinet/ip_output.c:1791 [inline]
ip_output(fffffd8068f0ad00,0,fffffd806f67d420,20,0,fffffd806f67d3a8,7e3f19724a24985d) at ip_output+0xb05 sys/netinet/ip_output.c:332
rip_output(fffffd8068f0ad00,fffffd8070aa05b8,ffff800022c449e0,103) at rip_output+0x2cb sys/netinet/raw_ip.c:302
end trace frame: 0xffff800022c44a60, count: 0
https://www.openbsd.org/ddb.html describes the minimum info required in bug
reports. Insufficient info makes it difficult to find and fix bugs.
ddb{0}>
ddb{0}> set $lines = 0
ddb{0}> set $maxwidth = 0
ddb{0}> show panic
*cpu0: acquiring blockable sleep lock with spinlock or critical section held (kernel_lock) &kernel_lock
cpu1: kernel diagnostic assertion "!_kernel_lock_held()" failed: file "/syzkaller/managers/multicore/kernel/sys/kern/kern_fork.c", line 678
ddb{0}> trace
db_enter() at db_enter+0x18 sys/arch/amd64/amd64/db_interface.c:440
panic(ffffffff825a2db5) at panic+0x177 sys/kern/subr_prf.c:202
witness_checkorder(ffffffff829f3ad8,9,0) at witness_checkorder+0x116d sys/kern/subr_witness.c:833
__mp_lock(ffffffff829f38d0) at __mp_lock+0xa1 read_rflags machine/cpufunc.h:195 [inline]
__mp_lock(ffffffff829f38d0) at __mp_lock+0xa1 intr_disable machine/cpufunc.h:216 [inline]
__mp_lock(ffffffff829f38d0) at __mp_lock+0xa1 sys/kern/kern_lock.c:142
selwakeup(fffffd8070aa0310) at selwakeup+0x16 klist_empty sys/sys/event.h:361 [inline]
selwakeup(fffffd8070aa0310) at selwakeup+0x16 sys/kern/sys_generic.c:885
sorwakeup(fffffd8070aa01f8) at sorwakeup+0xc9 sys/kern/uipc_socket.c:1699
rip_input(ffff800022c44788,ffff800022c44794,0,2) at rip_input+0x3b0 sys/netinet/raw_ip.c:188
ip_deliver(ffff800022c44788,ffff800022c44794,0,2) at ip_deliver+0x322 sys/netinet/ip_input.c:657
ip_ours(ffff800022c44788,ffff800022c44794,ffff800021239000,0) at ip_ours+0x3ba sys/netinet/ip_input.c:616
ip_input_if(ffff800022c44788,ffff800022c44794,4,0,ffff800000689000) at ip_input_if+0x2a1
ipv4_input(ffff800000689000,fffffd806e1b5700) at ipv4_input+0x48 sys/netinet/ip_input.c:242
if_input_local(ffff800000689000,fffffd806e1b5700,2) at if_input_local+0x10e sys/net/if.c:774
ip_output(fffffd8068f0ad00,0,fffffd806f67d420,20,0,fffffd806f67d3a8,7e3f19724a24985d) at ip_output+0xb05 ip_mloopback sys/netinet/ip_output.c:1791 [inline]
ip_output(fffffd8068f0ad00,0,fffffd806f67d420,20,0,fffffd806f67d3a8,7e3f19724a24985d) at ip_output+0xb05 sys/netinet/ip_output.c:332
rip_output(fffffd8068f0ad00,fffffd8070aa05b8,ffff800022c449e0,103) at rip_output+0x2cb sys/netinet/raw_ip.c:302
rip_usrreq(fffffd8070aa05b8,9,fffffd8068f0ad00,0,0,ffff8000ffff07e8) at rip_usrreq+0x49c sys/netinet/raw_ip.c:554
sosend(fffffd8070aa05b8,0,ffff800022c44c70,0,0,0) at sosend+0x632 sys/kern/uipc_socket.c:582
dofilewritev(ffff8000ffff07e8,5,ffff800022c44c70,0,ffff800022c44d70) at dofilewritev+0x19c sys/kern/sys_generic.c:381
sys_writev(ffff8000ffff07e8,ffff800022c44d18,ffff800022c44d70) at sys_writev+0xa7 sys/kern/sys_generic.c:328
syscall(ffff800022c44de0) at syscall+0x489 mi_syscall sys/sys/syscall_mi.h:102 [inline]
syscall(ffff800022c44de0) at syscall+0x489 sys/arch/amd64/amd64/trap.c:585
Xsyscall() at Xsyscall+0x128
end of kernel
end trace frame: 0xb605a9de510, count: -20
ddb{0}> show registers
rdi 0
rsi 0x1
rbp 0xffff800022c44310
rbx 0xffffffff8298dbff cpu_info_full_primary+0x2bff
rdx 0xffff800000bdae80
rcx 0
rax 0xffff8000ffff07e8
r8 0x101010101010101
r9 0x8080808080808080
r10 0xcbc98740f47490e
r11 0x41f6b963597d5649
r12 0xffffffff8298da00 cpu_info_full_primary+0x2a00
r13 0
r14 0
r15 0x1
rip 0xffffffff811e4c58 db_enter+0x18
cs 0x8
rflags 0x246
rsp 0xffff800022c44300
ss 0x10
db_enter+0x18: addq $0x8,%rsp
ddb{0}> show proc
PROC (syz-executor.0) pid=161769 stat=onproc
flags process=0 proc=4000000<THREAD>
pri=32, usrpri=86, nice=20
forw=0xffffffffffffffff, list=0xffff8000ffff22a0,0xffff8000ffff0558
process=0xffff8000fffef620 user=0xffff800022c3f000, vmspace=0xfffffd806a881b90
estcpu=36, cpticks=3, pctcpu=0.0
user=0, sys=2, intr=0
ddb{0}> ps
PID TID PPID UID S FLAGS WAIT COMMAND
57940 227610 88866 0 2 0 syz-executor.7
57940 41095 88866 0 7 0x4000000 syz-executor.7
27640 236183 13851 60928 2 0x10 syz-executor.4
27640 35848 13851 60928 3 0x4000090 fsleep syz-executor.4
60962 364445 52462 0 3 0x80 nanoslp syz-executor.1
60962 454386 52462 0 3 0x4000080 fsleep syz-executor.1
60962 492543 52462 0 3 0x4000080 fsleep syz-executor.1
60962 246708 52462 0 3 0x4000080 fsleep syz-executor.1
14626 89613 65606 0 2 0 syz-executor.5
50773 513683 58677 0 2 0 syz-executor.0
*50773 161769 58677 0 7 0x4000000 syz-executor.0
8331 306165 68779 0 2 0 syz-executor.3
8331 97344 68779 0 3 0x4000080 fsleep syz-executor.3
42622 137717 12606 0 2 0 syz-executor.6
42622 335774 12606 0 3 0x4000080 nanoslp syz-executor.6
52462 467386 83703 0 3 0x82 nanoslp syz-executor.1
13989 262859 0 0 3 0x14200 bored sosplice
7546 491611 83703 0 3 0x2 biowait syz-executor.2
88866 159093 83703 0 3 0x82 nanoslp syz-executor.7
68779 405475 83703 0 3 0x82 nanoslp syz-executor.3
12606 181118 83703 0 3 0x82 nanoslp syz-executor.6
13851 60092 83703 0 3 0x82 nanoslp syz-executor.4
65606 459887 83703 0 3 0x82 nanoslp syz-executor.5
58677 177558 83703 0 3 0x82 nanoslp syz-executor.0
83703 94815 58409 0 3 0x82 thrsleep syz-fuzzer
83703 471542 58409 0 3 0x4000082 nanoslp syz-fuzzer
83703 475281 58409 0 3 0x4000082 thrsleep syz-fuzzer
83703 457619 58409 0 3 0x4000082 thrsleep syz-fuzzer
83703 497126 58409 0 3 0x4000082 kqread syz-fuzzer
83703 250715 58409 0 3 0x4000082 thrsleep syz-fuzzer
83703 355692 58409 0 3 0x4000082 thrsleep syz-fuzzer
83703 469400 58409 0 3 0x4000082 thrsleep syz-fuzzer
83703 463069 58409 0 3 0x4000082 thrsleep syz-fuzzer
58409 225999 16167 0 3 0x10008a sigsusp ksh
16167 313337 52225 0 3 0x9a kqread sshd
97667 133765 1 0 3 0x100083 ttyin getty
52225 456875 1 0 3 0x88 kqread sshd
9598 387295 10055 74 3 0x1100092 bpf pflogd
10055 276866 1 0 3 0x80 netio pflogd
82712 18400 43115 73 3 0x1100010 biowait syslogd
43115 348989 1 0 3 0x100082 netio syslogd
5929 485113 1 0 3 0x100080 kqread resolvd
41259 476273 84185 77 3 0x100092 kqread dhcpleased
27950 200316 84185 77 3 0x100092 kqread dhcpleased
84185 244618 1 0 3 0x80 kqread dhcpleased
82218 282812 0 0 3 0x14200 bored smr
23867 220330 0 0 2 0x14200 zerothread
57573 110796 0 0 3 0x14200 aiodoned aiodoned
24396 339116 0 0 3 0x14200 syncer update
49272 380580 0 0 3 0x14200 cleaner cleaner
83734 429126 0 0 3 0x14200 reaper reaper
56256 52914 0 0 3 0x14200 pgdaemon pagedaemon
91001 334344 0 0 3 0x14200 bored viomb
24417 91204 0 0 3 0x40014200 acpi0 acpi0
18430 234436 0 0 3 0x40014200 idle1
63359 2091 0 0 3 0x14200 bored softnet
30934 462995 0 0 3 0x14200 bored systqmp
35540 443301 0 0 3 0x14200 bored systq
15264 227247 0 0 3 0x40014200 bored softclock
98348 440467 0 0 3 0x40014200 idle0
1 206234 0 0 3 0x82 wait init
0 0 -1 0 3 0x10200 scheduler swapper
ddb{0}> show all locks
CPU 0:
exclusive mutex &table->inpt_mtx r = 0 (0xffffffff82b03010)
#0 witness_lock+0x44d
#1 mtx_enter_try+0x100
#2 mtx_enter+0x4b sys/kern/kern_lock.c:266
#3 rip_input+0x135
#4 ip_deliver+0x322 sys/netinet/ip_input.c:657
#5 ip_ours+0x3ba sys/netinet/ip_input.c:616
#6 ip_input_if+0x2a1
#7 ipv4_input+0x48 sys/netinet/ip_input.c:242
#8 if_input_local+0x10e sys/net/if.c:774
#9 ip_output+0xb05 ip_mloopback sys/netinet/ip_output.c:1791 [inline]
#9 ip_output+0xb05 sys/netinet/ip_output.c:332
#10 rip_output+0x2cb sys/netinet/raw_ip.c:302
#11 rip_usrreq+0x49c sys/netinet/raw_ip.c:554
#12 sosend+0x632 sys/kern/uipc_socket.c:582
#13 dofilewritev+0x19c sys/kern/sys_generic.c:381
#14 sys_writev+0xa7 sys/kern/sys_generic.c:328
#15 syscall+0x489 mi_syscall sys/sys/syscall_mi.h:102 [inline]
#15 syscall+0x489 sys/arch/amd64/amd64/trap.c:585
#16 Xsyscall+0x128
Process 57940 (syz-executor.7) thread 0xffff80002e3517b0 (227610)
exclusive rwlock uobjlk r = 0 (0xfffffd806a7aa558)
#0 witness_lock+0x44d
#1 rw_enter+0x3e1 sys/kern/kern_rwlock.c:310
#2 uvm_fault_lower_lookup+0x46 sys/uvm/uvm_fault.c:1117
#3 uvm_fault_lower+0x5f sys/uvm/uvm_fault.c:1218
#4 uvm_fault+0x248
#5 upageflttrap+0x82 sys/arch/amd64/amd64/trap.c:181
#6 usertrap+0x1aa sys/arch/amd64/amd64/trap.c:403
#7 recall_trap+0x8
shared rwlock vmmaplk r = 0 (0xfffffd807578b310)
#0 witness_lock+0x44d
#1 uvmfault_lookup+0xd9 sys/uvm/uvm_fault.c:1758
#2 uvm_fault_check+0x3a sys/uvm/uvm_fault.c:674
#3 uvm_fault+0x102 sys/uvm/uvm_fault.c:602
#4 upageflttrap+0x82 sys/arch/amd64/amd64/trap.c:181
#5 usertrap+0x1aa sys/arch/amd64/amd64/trap.c:403
#6 recall_trap+0x8
Process 50773 (syz-executor.0) thread 0xffff8000ffff07e8 (161769)
exclusive rwlock netlock r = 0 (0xffffffff82904160)
#0 witness_lock+0x44d
#1 solock+0x86 sys/kern/uipc_socket2.c:295
#2 sosend+0x517 sys/kern/uipc_socket.c:570
#3 dofilewritev+0x19c sys/kern/sys_generic.c:381
#4 sys_writev+0xa7 sys/kern/sys_generic.c:328
#5 syscall+0x489 mi_syscall sys/sys/syscall_mi.h:102 [inline]
#5 syscall+0x489 sys/arch/amd64/amd64/trap.c:585
#6 Xsyscall+0x128
exclusive mutex &table->inpt_mtx r = 0 (0xffffffff82b03010)
#0 witness_lock+0x44d
#1 mtx_enter_try+0x100
#2 mtx_enter+0x4b sys/kern/kern_lock.c:266
#3 rip_input+0x135
#4 ip_deliver+0x322 sys/netinet/ip_input.c:657
#5 ip_ours+0x3ba sys/netinet/ip_input.c:616
#6 ip_input_if+0x2a1
#7 ipv4_input+0x48 sys/netinet/ip_input.c:242
#8 if_input_local+0x10e sys/net/if.c:774
#9 ip_output+0xb05 ip_mloopback sys/netinet/ip_output.c:1791 [inline]
#9 ip_output+0xb05 sys/netinet/ip_output.c:332
#10 rip_output+0x2cb sys/netinet/raw_ip.c:302
#11 rip_usrreq+0x49c sys/netinet/raw_ip.c:554
#12 sosend+0x632 sys/kern/uipc_socket.c:582
#13 dofilewritev+0x19c sys/kern/sys_generic.c:381
#14 sys_writev+0xa7 sys/kern/sys_generic.c:328
#15 syscall+0x489 mi_syscall sys/sys/syscall_mi.h:102 [inline]
#15 syscall+0x489 sys/arch/amd64/amd64/trap.c:585
#16 Xsyscall+0x128
Process 7546 (syz-executor.2) thread 0xffff8000ffff37a0 (491611)
exclusive rrwlock inode r = 0 (0xfffffd80669b44e8)
#0 witness_lock+0x44d
#1 rw_enter+0x3e1 sys/kern/kern_rwlock.c:310
#2 rrw_enter+0x8b sys/kern/kern_rwlock.c:461
#3 VOP_LOCK+0x87 sys/kern/vfs_vops.c:534
#4 ufs_ihashins+0x42 sys/ufs/ufs/ufs_ihash.c:140
#5 ffs_vget+0x141 sys/ufs/ffs/ffs_vfsops.c:1347
#6 ffs_inode_alloc+0x1be sys/ufs/ffs/ffs_alloc.c:394
#7 ufs_mkdir+0xf4 sys/ufs/ufs/ufs_vnops.c:1162
#8 VOP_MKDIR+0xbf sys/kern/vfs_vops.c:404
#9 domkdirat+0x121 sys/kern/vfs_syscalls.c:3101
#10 syscall+0x489 mi_syscall sys/sys/syscall_mi.h:102 [inline]
#10 syscall+0x489 sys/arch/amd64/amd64/trap.c:585
#11 Xsyscall+0x128
exclusive rrwlock inode r = 0 (0xfffffd807ca49c48)
#0 witness_lock+0x44d
#1 rw_enter+0x3e1 sys/kern/kern_rwlock.c:310
#2 rrw_enter+0x8b sys/kern/kern_rwlock.c:461
#3 VOP_LOCK+0x87 sys/kern/vfs_vops.c:534
#4 vn_lock+0x84 sys/kern/vfs_vnops.c:579
#5 vfs_lookup+0xd1 sys/kern/vfs_lookup.c:413
#6 namei+0x36a sys/kern/vfs_lookup.c:245
#7 domkdirat+0x75 sys/kern/vfs_syscalls.c:3086
#8 syscall+0x489 mi_syscall sys/sys/syscall_mi.h:102 [inline]
#8 syscall+0x489 sys/arch/amd64/amd64/trap.c:585
#9 Xsyscall+0x128
Process 82712 (syslogd) thread 0xffff800021182a90 (18400)
exclusive rrwlock inode r = 0 (0xfffffd806e740700)
#0 witness_lock+0x44d
#1 rw_enter+0x3e1 sys/kern/kern_rwlock.c:310
#2 rrw_enter+0x8b sys/kern/kern_rwlock.c:461
#3 VOP_LOCK+0x87 sys/kern/vfs_vops.c:534
#4 vn_lock+0x84 sys/kern/vfs_vnops.c:579
#5 sys_fsync+0xf5 sys/kern/vfs_syscalls.c:2924
#6 syscall+0x489 mi_syscall sys/sys/syscall_mi.h:102 [inline]
#6 syscall+0x489 sys/arch/amd64/amd64/trap.c:585
#7 Xsyscall+0x128
ddb{0}> show malloc
Type InUse MemUse HighUse Limit Requests Type Lim
devbuf 10217 6542K 6737K 78643K 11783 0
pcb 13 10K 11K 78643K 74 0
rtable 222 7K 8K 78643K 479 0
ifaddr 87 17K 18K 78643K 184 0
sysctl 2 0K 0K 78643K 2 0
counters 56 35K 36K 78643K 86 0
ioctlops 0 0K 4K 78643K 1709 0
iov 0 0K 12K 78643K 81 0
mount 1 1K 1K 78643K 1 0
log 0 0K 0K 78643K 4 0
vnodes 1276 80K 80K 78643K 1721 0
UFS quota 1 32K 32K 78643K 1 0
UFS mount 5 36K 36K 78643K 5 0
shm 2 1K 5K 78643K 8 0
VM map 2 1K 1K 78643K 2 0
sem 12 0K 0K 78643K 16 0
dirhash 12 2K 2K 78643K 12 0
ACPI 1697 195K 286K 78643K 12548 0
file desc 17 61K 85K 78643K 739 0
sigio 0 0K 0K 78643K 1 0
proc 70 87K 124K 78643K 583 0
subproc 104 6K 6K 78643K 130 0
NFS srvsock 1 0K 0K 78643K 1 0
NFS daemon 1 16K 16K 78643K 1 0
ip_moptions 0 0K 0K 78643K 31 0
in_multi 84 5K 6K 78643K 127 0
ether_multi 1 0K 0K 78643K 1 0
ISOFS mount 1 32K 32K 78643K 1 0
MSDOSFS mount 1 16K 16K 78643K 1 0
ttys 223 996K 996K 78643K 223 0
exec 0 0K 2K 78643K 798 0
pfkey data 0 0K 0K 78643K 2 0
tdb 3 0K 0K 78643K 3 0
pagedep 1 8K 8K 78643K 1 0
inodedep 1 32K 32K 78643K 1 0
newblk 1 0K 0K 78643K 1 0
VM swap 7 26K 26K 78643K 7 0
UVM amap 356 228K 230K 78643K 11051 0
UVM aobj 131 4K 4K 78643K 131 0
memdesc 1 4K 4K 78643K 1 0
crypto data 1 1K 1K 78643K 1 0
ip6_options 0 0K 0K 78643K 64 0
NDP 13 0K 1K 78643K 49 0
temp 96 4698K 4762K 78643K 8034 0
kqueue 12 18K 22K 78643K 52 0
SYN cache 2 16K 16K 78643K 2 0
ddb{0}> show all pools
Name Size Requests Fail Releases Pgreq Pgrel Npage Hiwat Minpg Maxpg Idle
plcache 128 22 0 0 1 0 1 1 0 8 0
rtpcb 120 51 0 48 1 0 1 1 0 8 0
rtentry 112 144 0 44 4 0 4 4 0 8 0
unpcb 136 368 0 353 5 2 3 3 0 8 2
syncache 296 6 0 6 3 2 1 1 0 8 1
tcpqe 32 55 0 55 1 1 0 1 0 8 0
tcpcb 736 358 0 352 15 7 8 8 0 8 7
arp 120 25 0 7 1 0 1 1 0 8 0
inpcb 312 923 0 911 17 11 6 9 0 8 5
nd6 48 31 0 12 1 0 1 1 0 8 0
pkpcb 40 11 0 11 2 1 1 1 0 8 1
kcovpl 48 10 0 2 1 0 1 1 0 8 0
ppxss 1248 5 0 5 1 0 1 1 0 8 1
pfstscr 40 11 0 11 3 2 1 1 0 8 1
pffrag 232 1 0 1 1 0 1 1 0 482 1
pffrnode 88 1 0 1 1 0 1 1 0 8 1
pffrent 40 6 0 6 1 0 1 1 0 8 1
pfosfp 40 1428 0 1005 5 0 5 5 0 8 0
pfosfpen 112 1428 0 714 21 0 21 21 0 8 0
pfrktable 1344 12 0 12 1 1 0 1 0 8 0
pfstitem 24 25 0 23 1 0 1 1 0 8 0
pfstkey 112 39 0 37 1 0 1 1 0 8 0
pfstate 320 31 0 29 2 1 1 2 0 8 0
pfrule 1360 38 0 30 2 1 1 2 0 8 0
art_heap8 4096 1 0 0 1 0 1 1 0 8 0
art_heap4 256 591 0 183 29 2 27 29 0 8 0
art_table 32 592 0 183 4 0 4 4 0 8 0
art_node 16 143 0 51 1 0 1 1 0 8 0
sysvmsgpl 40 6 0 0 1 0 1 1 0 8 0
semapl 112 14 0 4 1 0 1 1 0 8 0
shmpl 112 128 0 0 4 0 4 4 0 8 0
dirhash 1024 17 0 0 3 0 3 3 0 8 0
dino2pl 256 2500 0 1061 91 0 91 91 0 8 0
ffsino 272 2500 0 1061 97 0 97 97 0 8 0
nchpl 144 3550 0 1919 63 0 63 63 0 8 0
uvmvnodes 80 2728 0 0 56 0 56 56 0 8 0
vnodes 224 2728 0 0 161 0 161 161 0 8 0
namei 1024 13801 0 13800 3 2 1 2 0 8 0
percpumem 16 55 0 15 1 0 1 1 0 8 0
vcpupl 2048 10 0 0 2 0 2 2 0 8 0
vmpool 560 10 0 0 1 0 1 1 0 8 0
pfiaddrpl 120 4 0 4 1 1 0 1 0 8 0
scxspl 216 13853 0 13851 9 8 1 8 0 8 0
plimitpl 152 176 0 161 1 0 1 1 0 8 0
sigapl 424 1049 0 1004 6 0 6 6 0 8 0
futexpl 64 5899 0 5894 2 1 1 1 0 8 0
knotepl 120 111 0 0 4 0 4 4 0 8 0
kqueuepl 216 437 0 428 11 8 3 5 0 8 2
pipepl 336 245 0 217 6 3 3 6 0 8 0
fdescpl 496 1034 0 1004 5 0 5 5 0 8 0
filepl 152 7505 0 7253 29 14 15 18 0 8 5
lockfpl 104 473 0 470 3 2 1 2 0 8 0
lockfspl 48 43 0 40 1 0 1 1 0 8 0
sessionpl 144 26 0 9 1 0 1 1 0 8 0
pgrppl 48 26 0 9 1 0 1 1 0 8 0
ucredpl 96 1665 0 1652 1 0 1 1 0 8 0
zombiepl 144 1004 0 1004 1 0 1 1 0 8 1
processpl 1064 1049 0 1004 4 0 4 4 0 8 0
procpl 672 2266 0 2205 9 3 6 8 0 8 0
srpgc 96 6 0 6 2 2 0 1 0 8 0
sosppl 168 10 0 10 1 1 0 1 0 8 0
sockpl 480 1353 0 1325 35 23 12 16 0 8 8
mcl64k 65536 7 0 0 1 0 1 1 0 8 0
mcl16k 16384 2 0 0 1 0 1 1 0 8 0
mcl12k 12288 10 0 0 1 0 1 1 0 8 0
mcl9k 9216 2 0 0 1 0 1 1 0 8 0
mcl8k 8192 7 0 0 1 0 1 1 0 8 0
mcl4k 4096 14 0 0 2 0 2 2 0 8 0
mcl2k2 2112 2 0 0 1 0 1 1 0 8 0
mcl2k 2048 192 0 0 23 0 23 23 0 8 0
mtagpl 96 11 0 0 1 0 1 1 0 8 0
mbufpl 256 283 0 0 16 0 16 16 0 8 0
bufpl 288 4877 0 152 338 0 338 338 0 8 0
anonpl 24 263443 0 244264 153 5 148 148 0 186 29
amapchunkpl 152 26574 0 25713 50 3 47 47 0 158 12
amappl16 200 2795 0 2194 46 5 41 45 0 8 8
amappl15 192 362 0 355 1 0 1 1 0 8 0
amappl14 184 82 0 78 1 0 1 1 0 8 0
amappl13 176 159 0 157 1 0 1 1 0 8 0
amappl12 168 109 0 106 1 0 1 1 0 8 0
amappl11 160 62 0 48 1 0 1 1 0 8 0
amappl10 152 169 0 161 1 0 1 1 0 8 0
amappl9 144 560 0 555 1 0 1 1 0 8 0
amappl8 136 668 0 613 2 0 2 2 0 8 0
amappl7 128 132 0 119 1 0 1 1 0 8 0
amappl6 120 292 0 270 2 1 1 2 0 8 0
amappl5 112 783 0 757 1 0 1 1 0 8 0
amappl4 104 975 0 946 2 0 2 2 0 8 0
amappl3 96 292 0 278 1 0 1 1 0 8 0
amappl2 88 754 0 707 3 1 2 3 0 8 0
amappl1 80 21889 0 21298 19 5 14 19 0 8 0
amappl 88 10530 0 10264 7 0 7 7 0 92 0
dma4096 4096 1 0 1 1 1 0 1 0 8 0
dma1024 1024 1 0 0 1 0 1 1 0 8 0
dma256 256 6 0 6 1 1 0 1 0 8 0
dma128 128 253 0 253 1 1 0 1 0 8 0
dma64 64 6 0 6 1 1 0 1 0 8 0
dma32 32 7 0 7 1 1 0 1 0 8 0
dma16 16 18 0 17 1 0 1 1 0 8 0
aobjpl 72 130 0 0 3 0 3 3 0 8 0
uaddrrnd 24 1044 0 1004 1 0 1 1 0 8 0
uaddrbest 32 2 0 0 1 0 1 1 0 8 0
uaddr 24 1044 0 1004 1 0 1 1 0 8 0
vmmpekpl 168 12778 0 12712 4 0 4 4 0 8 0
vmmpepl 168 98776 0 96163 145 16 129 129 0 357 12
vmsppl 368 1043 0 1004 4 0 4 4 0 8 0
rwobjpl 56 27999 0 23534 65 0 65 65 0 8 0
pdppl 4096 2095 0 2018 161 82 79 79 0 8 2
pvpl 32 578680 0 555063 307 52 255 266 0 265 59
pmappl 248 1043 0 1004 3 0 3 3 0 8 0
extentpl 40 58 0 38 1 0 1 1 0 8 0
phpool 112 816 0 110 21 0 21 21 0 8 0
ddb{0}> machine ddbcpu 0
Invalid cpu 0
ddb{0}> trace
db_enter() at db_enter+0x18 sys/arch/amd64/amd64/db_interface.c:440
panic(ffffffff825a2db5) at panic+0x177 sys/kern/subr_prf.c:202
witness_checkorder(ffffffff829f3ad8,9,0) at witness_checkorder+0x116d sys/kern/subr_witness.c:833
__mp_lock(ffffffff829f38d0) at __mp_lock+0xa1 read_rflags machine/cpufunc.h:195 [inline]
__mp_lock(ffffffff829f38d0) at __mp_lock+0xa1 intr_disable machine/cpufunc.h:216 [inline]
__mp_lock(ffffffff829f38d0) at __mp_lock+0xa1 sys/kern/kern_lock.c:142
selwakeup(fffffd8070aa0310) at selwakeup+0x16 klist_empty sys/sys/event.h:361 [inline]
selwakeup(fffffd8070aa0310) at selwakeup+0x16 sys/kern/sys_generic.c:885
sorwakeup(fffffd8070aa01f8) at sorwakeup+0xc9 sys/kern/uipc_socket.c:1699
rip_input(ffff800022c44788,ffff800022c44794,0,2) at rip_input+0x3b0 sys/netinet/raw_ip.c:188
ip_deliver(ffff800022c44788,ffff800022c44794,0,2) at ip_deliver+0x322 sys/netinet/ip_input.c:657
ip_ours(ffff800022c44788,ffff800022c44794,ffff800021239000,0) at ip_ours+0x3ba sys/netinet/ip_input.c:616
ip_input_if(ffff800022c44788,ffff800022c44794,4,0,ffff800000689000) at ip_input_if+0x2a1
ipv4_input(ffff800000689000,fffffd806e1b5700) at ipv4_input+0x48 sys/netinet/ip_input.c:242
if_input_local(ffff800000689000,fffffd806e1b5700,2) at if_input_local+0x10e sys/net/if.c:774
ip_output(fffffd8068f0ad00,0,fffffd806f67d420,20,0,fffffd806f67d3a8,7e3f19724a24985d) at ip_output+0xb05 ip_mloopback sys/netinet/ip_output.c:1791 [inline]
ip_output(fffffd8068f0ad00,0,fffffd806f67d420,20,0,fffffd806f67d3a8,7e3f19724a24985d) at ip_output+0xb05 sys/netinet/ip_output.c:332
rip_output(fffffd8068f0ad00,fffffd8070aa05b8,ffff800022c449e0,103) at rip_output+0x2cb sys/netinet/raw_ip.c:302
rip_usrreq(fffffd8070aa05b8,9,fffffd8068f0ad00,0,0,ffff8000ffff07e8) at rip_usrreq+0x49c sys/netinet/raw_ip.c:554
sosend(fffffd8070aa05b8,0,ffff800022c44c70,0,0,0) at sosend+0x632 sys/kern/uipc_socket.c:582
dofilewritev(ffff8000ffff07e8,5,ffff800022c44c70,0,ffff800022c44d70) at dofilewritev+0x19c sys/kern/sys_generic.c:381
sys_writev(ffff8000ffff07e8,ffff800022c44d18,ffff800022c44d70) at sys_writev+0xa7 sys/kern/sys_generic.c:328
syscall(ffff800022c44de0) at syscall+0x489 mi_syscall sys/sys/syscall_mi.h:102 [inline]
syscall(ffff800022c44de0) at syscall+0x489 sys/arch/amd64/amd64/trap.c:585
Xsyscall() at Xsyscall+0x128
end of kernel
end trace frame: 0xb605a9de510, count: -20
ddb{0}> machine ddbcpu 1
Stopped at x86_ipi_db+0x1a: addq $0x8,%rsp
x86_ipi_db(ffff800020ce8ff0) at x86_ipi_db+0x1a sys/arch/amd64/amd64/db_interface.c:393
x86_ipi_handler() at x86_ipi_handler+0xb7 sys/arch/amd64/amd64/ipi.c:106
Xresume_lapic_ipi() at Xresume_lapic_ipi+0x23
__sanitizer_cov_trace_const_cmp1(0,20) at __sanitizer_cov_trace_const_cmp1+0x31 kd_curproc sys/dev/kcov.c:578 [inline]
__sanitizer_cov_trace_const_cmp1(0,20) at __sanitizer_cov_trace_const_cmp1+0x31 sys/dev/kcov.c:213
comcnputc(800,74) at comcnputc+0xa7 sys/dev/ic/com.c:1259
cnputc(74) at cnputc+0x4b sys/dev/cons.c:239
db_putchar(74) at db_putchar+0x3fc sys/ddb/db_output.c:155
kprintf() at kprintf+0x20ec sys/kern/subr_prf.c:1068
db_printf(ffffffff82608c08) at db_printf+0x85 sys/kern/subr_prf.c:502
panic(ffffffff8258fc0f) at panic+0xd7 sys/kern/subr_prf.c:220
__assert(ffffffff826026c6,ffffffff825e4e08,2a6,ffffffff825be35d) at __assert+0x25 sys/kern/subr_prf.c:161
proc_trampoline_mp() at proc_trampoline_mp+0x131
end trace frame: 0x0, count: 3
ddb{1}> trace
x86_ipi_db(ffff800020ce8ff0) at x86_ipi_db+0x1a sys/arch/amd64/amd64/db_interface.c:393
x86_ipi_handler() at x86_ipi_handler+0xb7 sys/arch/amd64/amd64/ipi.c:106
Xresume_lapic_ipi() at Xresume_lapic_ipi+0x23
__sanitizer_cov_trace_const_cmp1(0,20) at __sanitizer_cov_trace_const_cmp1+0x31 kd_curproc sys/dev/kcov.c:578 [inline]
__sanitizer_cov_trace_const_cmp1(0,20) at __sanitizer_cov_trace_const_cmp1+0x31 sys/dev/kcov.c:213
comcnputc(800,74) at comcnputc+0xa7 sys/dev/ic/com.c:1259
cnputc(74) at cnputc+0x4b sys/dev/cons.c:239
db_putchar(74) at db_putchar+0x3fc sys/ddb/db_output.c:155
kprintf() at kprintf+0x20ec sys/kern/subr_prf.c:1068
db_printf(ffffffff82608c08) at db_printf+0x85 sys/kern/subr_prf.c:502
panic(ffffffff8258fc0f) at panic+0xd7 sys/kern/subr_prf.c:220
__assert(ffffffff826026c6,ffffffff825e4e08,2a6,ffffffff825be35d) at __assert+0x25 sys/kern/subr_prf.c:161
proc_trampoline_mp() at proc_trampoline_mp+0x131
end trace frame: 0x0, count: -12


---
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 syzk...@googlegroups.com.

syzbot will keep track of this issue. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.

Alexander Bluhm

unread,
Mar 23, 2022, 3:19:01 PM3/23/22
to syzbot, syzkaller-o...@googlegroups.com
#syz fix: For raw IP packets rip_input() traverses the loop of all PCBs. From there it calls sbappendaddr() while holding the raw table mutex. This ends in sorwakeup() where we finally grab the kernel lock while holding a mutex. Witness detects this misuse. Use the same solution as for PCB notify. Collect the affected PCBs in a temporary list. The list is protected by exclusive net lock. syzbot+ebe3f0...@syzkaller.appspotmail.com OK claudio@
> --
> You received this message because you are subscribed to the Google Groups "syzkaller-openbsd-bugs" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to syzkaller-openbsd...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/syzkaller-openbsd-bugs/000000000000e933e605dad76d08%40google.com.
Reply all
Reply to author
Forward
0 new messages