syzbot
KASAN: invalid memory access in shm_delete_mapping
Status:
upstream: reported on 2026/07/24 00:15
Reported-by: syzbot+f2c08abe216302bc63d6@syzkaller.appspotmail.com
First crash: 5d10h, last: 13h44m
Sample crash report:
panic: Caught invalid memory access at ffff800001d47120 size 8 op 1
Stopped at db_enter+0x17: popq %rbp
TID PID UID PRFLAGS PFLAGS CPU COMMAND
234462 72808 0 0 0 1 syz-executor
*183763 72808 0 0 0x4000000 0K syz-executor
db_enter() at db_enter+0x17 sys/arch/amd64/amd64/db_interface.c:457
panic(ffffffff846366ce) at panic+0x270 sys/kern/subr_prf.c:198
__asan_store8_noabort(ffff800001d47120) at __asan_store8_noabort+0xe4 kasan_shadow_check sys/kern/subr_kasan.c:-1 [inline]
__asan_store8_noabort(ffff800001d47120) at __asan_store8_noabort+0xe4 sys/kern/subr_kasan.c:1099
shm_delete_mapping(ffff800001c9c9a8,ffff800001cb1008) at shm_delete_mapping+0x1f9 sys/kern/sysv_shm.c:183
syscall(ffff8000299aa220) at syscall+0x1089 mi_syscall sys/sys/syscall_mi.h:176 [inline]
syscall(ffff8000299aa220) at syscall+0x1089 sys/arch/amd64/amd64/trap.c:783
Xsyscall() at Xsyscall+0x128
end of kernel
end trace frame: 0x297af711f60, count: 9
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: Caught invalid memory access at ffff800001d47120 size 8 op 1
ddb{0}> show kasan
KASAN: invalid write of 8 bytes at 0xffff800001d47120 from pc 0xffffffff83d019d9
KASAN: first bad byte at 0xffff800001d47120 (+0); shadow 0xfd: pool use-after-free (or unallocated item)
KASAN: 0xffff800001d47120 is 64 bytes inside the 112-byte item [0xffff800001d470e0..0xffff800001d47150) in pool 'shmpl'
KASAN: allocated at:
#0 pool_get+0x770 sys/kern/subr_pool.c:733
#1 shmget_allocate_segment+0x23b sys/kern/sysv_shm.c:-1
#2 sys_shmget+0x260 sys/kern/sysv_shm.c:503
#3 syscall+0x1089 mi_syscall sys/sys/syscall_mi.h:176 [inline]
#3 syscall+0x1089 sys/arch/amd64/amd64/trap.c:783
#4 Xsyscall+0x128
KASAN: freed at:
#0 pool_put+0x79 sys/kern/subr_pool.c:918
#1 shm_deallocate_segment+0x85 sys/kern/sysv_shm.c:159
#2 sys_shmctl+0x51e sys/kern/sysv_shm.c:366
#3 syscall+0x1089 mi_syscall sys/sys/syscall_mi.h:176 [inline]
#3 syscall+0x1089 sys/arch/amd64/amd64/trap.c:783
#4 Xsyscall+0x128
KASAN: pc: shm_delete_mapping+0x1f9
KASAN: call trace:
#0 __asan_store8_noabort+0xc0 kasan_shadow_check sys/kern/subr_kasan.c:-1 [inline]
#0 __asan_store8_noabort+0xc0 sys/kern/subr_kasan.c:1099
#1 shm_delete_mapping+0x1f9 sys/kern/sysv_shm.c:183
#2 syscall+0x1089 mi_syscall sys/sys/syscall_mi.h:176 [inline]
#2 syscall+0x1089 sys/arch/amd64/amd64/trap.c:783
#3 Xsyscall+0x128
KASAN: shadow of 0xffff800001d47000..0xffff800001d47280 (1 cell = 8 bytes):
0xffff800001d47000: 08 08 fd fd fd fd fd fd fd fd fd fd fd fd 08 08
0xffff800001d47080: fd fd fd fd fd fd fd fd fd fd fd fd 08 08 fd fd
>0xffff800001d47100: fd fd fd fd[fd]fd fd fd fd fd 08 08 08 08 08 08
0xffff800001d47180: 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08
0xffff800001d47200: 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08
KASAN: legend: 00 valid; 01..07 partial; fb malloc redzone; fc malloc freed; fd pool freed; fe kmem; fa global; f1..f4/f8 stack/scope
ddb{0}> trace
db_enter() at db_enter+0x17 sys/arch/amd64/amd64/db_interface.c:457
panic(ffffffff846366ce) at panic+0x270 sys/kern/subr_prf.c:198
__asan_store8_noabort(ffff800001d47120) at __asan_store8_noabort+0xe4 kasan_shadow_check sys/kern/subr_kasan.c:-1 [inline]
__asan_store8_noabort(ffff800001d47120) at __asan_store8_noabort+0xe4 sys/kern/subr_kasan.c:1099
shm_delete_mapping(ffff800001c9c9a8,ffff800001cb1008) at shm_delete_mapping+0x1f9 sys/kern/sysv_shm.c:183
syscall(ffff8000299aa220) at syscall+0x1089 mi_syscall sys/sys/syscall_mi.h:176 [inline]
syscall(ffff8000299aa220) at syscall+0x1089 sys/arch/amd64/amd64/trap.c:783
Xsyscall() at Xsyscall+0x128
end of kernel
end trace frame: 0x297af711f60, count: -6
ddb{0}> show registers
rdi 0
rsi 0x1
rbp 0xffff8000299a9ed0
rbx 0xffff8000299a9f40
rdx 0
rcx 0xffffffff85120ff0 cpu_info_full_primary+0x1ff0
rax 0
r8 0x101010101010101
r9 0x8080808080808080
r10 0xffff8000299a9cb8
r11 0xffffffff82046470 x86_bus_space_io_read_1
r12 0xffffffff846366ce irq_source_info_dcn315+0x9e86e
r13 0xffffffff85121c08 cpu_info_full_primary+0x2c08
r14 0xffffffff85121e07 cpu_info_full_primary+0x2e07
r15 0x1
rip 0xffffffff83b97b67 db_enter+0x17
cs 0x8
rflags 0x246
rsp 0xffff8000299a9ed0
ss 0x10
db_enter+0x17: popq %rbp
ddb{0}> show proc
PROC (syz-executor) tid=183763 pid=72808 tcnt=3 stat=onproc
flags process=0 proc=4000000<THREAD>
runpri=32, usrpri=86, slppri=32, nice=20
wchan=0x0, wmesg=, ps_single=0x0 scnt=0 ecnt=0
forw=0xffffffffffffffff, list=0xffff800029913c98,0xffffffff85db45e0
process=0xffff800045ff89b8 user=0xffff80002999f000, vmspace=0xffff800001c9c9a8
estcpu=36, cpticks=20, pctcpu=0.0, user=0, sys=20, intr=0
ddb{0}> ps
PID TID PPID UID S PRLAGS PFLAGS WAIT COMMAND
31077 5751 18775 0 2 0 0 syz-executor
31077 9089 18775 0 3 0 0x4000080 bell syz-executor
72808 234462 53141 0 7 0 0 syz-executor
72808 408891 53141 0 2 0 0x4000000 syz-executor
*72808 183763 53141 0 7 0 0x4000000 syz-executor
96470 505972 92214 0 2 0 0 syz-executor
96470 307874 92214 0 3 0 0x4000088 kqpoll syz-executor
34588 64035 34456 0 2 0 0 syz-executor
38105 41398 55419 0 2 0 0 syz-executor
38105 236037 55419 0 3 0 0x4000080 fsleep syz-executor
38105 337428 55419 0 3 0 0x4000080 fsleep syz-executor
66875 465341 2303 0 2 0 0 syz-executor
66875 422443 2303 0 3 0 0x4000080 fsleep syz-executor
80585 328213 59558 0 2 0x10 0xc80 syz-executor
80585 293156 59558 0 3 0x10 0x4000080 kqsel syz-executor
80585 92454 59558 0 3 0x10 0x4000080 fsleep syz-executor
80585 170015 59558 0 3 0x10 0x4000080 fsleep syz-executor
63450 9730 1 0 3 0x100003 0x80 ttyin getty
46651 469362 0 0 3 0x14000 0x200 acct acct
43864 407020 78263 0 3 0x100002 0x80 sbwait arp
78263 451511 62566 0 3 0x100002 0x88 sigsusp sh
18775 171588 30638 0 2 0x2 0xc80 syz-executor
53141 431621 30638 0 2 0x2 0xc80 syz-executor
2303 154875 30638 0 2 0x2 0xc80 syz-executor
55419 176320 30638 0 2 0x2 0xc80 syz-executor
62566 267121 30638 0 3 0x2 0x80 wait syz-executor
34456 397809 30638 0 2 0x2 0 syz-executor
59558 343533 30638 0 2 0x2 0xc80 syz-executor
92214 307721 30638 0 2 0x2 0xc80 syz-executor
30638 358075 1 0 3 0x2 0x80 kqread syz-executor
50596 515871 0 0 3 0x14000 0x200 bored smr
63146 3414 0 0 2 0x14000 0x200 zerothread
91049 230045 0 0 3 0x14000 0x200 aiodoned aiodoned
33673 387040 0 0 3 0x14000 0x200 syncer update
27618 123734 0 0 3 0x14000 0x200 cleaner cleaner
69767 345449 0 0 3 0x14000 0x200 reaper reaper
80179 142258 0 0 3 0x14000 0x200 pgdaemon pagedaemon
91031 73310 0 0 3 0x14000 0x200 bored viomb
48165 60293 0 0 3 0x14000 0x40000200 acpi0 acpi0
11825 441702 0 0 3 0x14000 0x40000200 idle1
93962 381737 0 0 3 0x14000 0x200 bored softnet1
1377 469778 0 0 2 0x14000 0x200 softnet0
49054 84166 0 0 3 0x14000 0x200 bored systqmp
97863 30510 0 0 3 0x14000 0x200 bored systq
81104 346558 0 0 2 0x14000 0x200 softclockmp
74468 307383 0 0 3 0x14000 0x40000200 tmoslp softclock
93731 401220 0 0 3 0x14000 0x40000200 idle0
1 373777 0 0 3 0x2 0x80 wait init
0 0 -1 0 3 0x10010000 0x200 scheduler swapper
ddb{0}> show all locks
Process 72808 (syz-executor) thread 0xffff8000299127d8 (183763)
exclusive kernel_lock &kernel_lock r = 0 (0xffffffff8549d200)
#0 witness_lock+0x632 stacktrace_save sys/sys/stacktrace.h:37 [inline]
#0 witness_lock+0x632 sys/kern/subr_witness.c:1160
#1 __mp_acquire_count+0x48 sys/kern/kern_lock.c:-1
#2 sleep_finish+0x423 sys/kern/kern_synch.c:369
#3 rw_do_enter_write+0x21f sys/kern/kern_rwlock.c:298
#4 vm_map_lock_ln+0x19f sys/uvm/uvm_map.c:5170
#5 uvm_unmap+0xc9 sys/uvm/uvm_map.c:1798
#6 shm_delete_mapping+0x1bd sys/kern/sysv_shm.c:182
#7 syscall+0x1089 mi_syscall sys/sys/syscall_mi.h:176 [inline]
#7 syscall+0x1089 sys/arch/amd64/amd64/trap.c:783
#8 Xsyscall+0x128
ddb{0}> show malloc
Type InUse MemUse HighUse Limit Requests Type Lim
devbuf 11070 12284K 12517K 166960K 12616 0
pcb 17 24K 24K 166960K 47 0
rtable 166 17K 19K 166960K 356 0
pf 32 21K 38K 166960K 68 0
ifaddr 32 8K 11K 166960K 53 0
ifgroup 51 2K 2K 166960K 75 0
sysctl 4 1K 13K 166960K 8 0
counters 68 42K 43K 166960K 84 0
ioctlops 0 0K 4K 166960K 1538 0
iov 0 0K 16K 166960K 11 0
mount 1 1K 1K 166960K 1 0
log 2 0K 0K 166960K 6 0
vnodes 1304 84K 84K 166960K 1645 0
UFS quota 1 36K 36K 166960K 1 0
UFS mount 5 44K 44K 166960K 5 0
shm 3 332K 336K 166960K 19 0
VM map 2 1K 1K 166960K 2 0
sem 12 0K 1K 166960K 35 0
dirhash 12 2K 2K 166960K 12 0
ACPI 1734 201K 292K 166960K 11964 0
file desc 18 69K 97K 166960K 470 0
sigio 0 0K 0K 166960K 9 0
proc 22 46K 177K 166960K 609 0
subproc 72 9K 9K 166960K 72 0
NFS srvsock 1 0K 0K 166960K 1 0
NFS daemon 1 20K 20K 166960K 1 0
ip_moptions 0 0K 0K 166960K 78 0
in_multi 56 4K 6K 166960K 93 0
ether_multi 1 0K 0K 166960K 2 0
mrt 1 0K 0K 166960K 17 0
ISOFS mount 1 36K 36K 166960K 1 0
MSDOSFS mount 1 20K 20K 166960K 1 0
ttys 67 465K 465K 166960K 67 0
exec 0 0K 2K 166960K 392 0
fusefs mount 1 36K 36K 166960K 1 0
tdb 3 1K 1K 166960K 3 0
VM swap 14 124K 124K 166960K 15 0
UVM amap 147 141K 292K 166960K 6234 0
UVM aobj 26 4K 4K 166960K 29 0
pinsyscall 1046 1835K 1835K 166960K 1628 0
memdesc 1 4K 4K 166960K 1 0
crypto data 1 1K 1K 166960K 1 0
ip6_options 0 0K 0K 166960K 6 0
NDP 11 0K 1K 166960K 33 0
temp 45 9164K 9183K 166960K 10694 0
kqueue 1 4K 56K 166960K 98 0
SYN cache 2 16K 16K 166960K 2 0
ddb{0}> show all pools
Name Size Requests Fail Releases Pgreq Pgrel Npage Hiwat Minpg Maxpg Idle
plcache 128 28 0 0 1 0 1 1 0 8 0
rtpcb 120 36 0 34 1 0 1 1 0 8 0
rtentry 176 108 0 37 5 0 5 5 0 8 0
unpcb 144 431 0 431 4 1 3 3 0 8 3
syncache 336 4 0 4 1 1 0 1 0 8 0
tcpcb 736 52 0 49 1 0 1 1 0 8 0
arp 136 19 0 8 1 0 1 1 0 8 0
inpcb 328 347 0 342 7 1 6 6 0 8 5
nd6 152 22 0 9 1 0 1 1 0 8 0
kcovpl 48 8 0 0 1 0 1 1 0 8 0
ppxss 1192 4 0 4 2 1 1 1 0 8 1
pffrag 232 4 0 0 1 0 1 1 0 482 0
pffrnode 88 4 0 0 1 0 1 1 0 8 0
pffrent 40 6 0 2 1 0 1 1 0 8 0
pfosfp 40 1429 0 1005 5 0 5 5 0 8 0
pfosfpen 112 1429 0 714 21 0 21 21 0 8 0
pfrktable 1344 1 0 1 1 1 0 1 0 8 0
pfqueue 320 1 0 1 1 0 1 1 0 8 1
pfstitem 24 48 0 5 1 0 1 1 0 8 0
pfstkey 128 48 0 5 2 0 2 2 0 8 0
pfstate 448 48 0 5 5 0 5 5 0 8 0
pfrule 1360 22 0 18 2 1 1 2 0 8 0
art_heap8 4096 1 0 0 1 0 1 1 0 8 0
art_heap4 256 427 0 136 26 1 25 26 0 8 3
art_table 40 428 0 136 5 0 5 5 0 8 0
art_node 32 108 0 44 1 0 1 1 0 8 0
sysvmsgpl 40 9 0 4 2 1 1 1 0 8 0
semapl 72 31 0 21 1 0 1 1 0 8 0
shmpl 112 26 0 3 1 0 1 1 0 8 0
dirhash 1024 17 0 0 3 0 3 3 0 8 0
dino2pl 256 2167 0 702 93 0 93 93 0 8 0
ffsino 296 2167 0 702 114 0 114 114 0 8 0
nchpl 144 2873 0 1171 64 0 64 64 0 8 0
vnodes 216 2419 0 0 135 0 135 135 0 8 0
namei 1024 9247 0 9247 3 2 1 1 0 8 1
percpumem 16 58 0 8 1 0 1 1 0 8 0
kstatmem 264 43 0 16 3 0 3 3 0 8 1
scxspl 216 10155 0 10155 11 10 1 8 1 8 1
plimitpl 152 56 0 46 1 0 1 1 0 8 0
sigapl 424 792 0 754 7 0 7 7 0 8 0
knotepl 120 120 0 0 4 0 4 4 0 8 0
kqueuepl 224 139 0 136 1 0 1 1 0 8 0
pipepl 344 205 0 178 6 3 3 6 0 8 0
fdescpl 528 774 0 753 3 0 3 3 0 8 0
filepl 160 4215 0 4050 12 2 10 12 0 8 0
lockfpl 104 265 0 261 1 0 1 1 0 8 0
lockfspl 48 74 0 70 1 0 1 1 0 8 0
sessionpl 144 44 0 41 1 0 1 1 0 8 0
pgrppl 48 54 0 42 1 0 1 1 0 8 0
ucredpl 104 624 0 620 1 0 1 1 0 8 0
zombiepl 144 754 0 754 1 0 1 1 0 8 1
processpl 1232 792 0 754 5 0 5 5 0 8 0
procpl 664 1389 0 1341 6 1 5 6 0 8 0
sosppl 176 1 0 1 1 0 1 1 0 8 1
sockpl 752 854 0 847 10 3 7 7 0 8 6
mcl64k 65536 3 0 0 1 0 1 1 0 8 0
mcl16k 16384 3 0 0 1 0 1 1 0 8 0
mcl8k 8192 2 0 0 1 0 1 1 0 8 0
mcl4k 4096 132 0 0 17 0 17 17 0 8 0
mcl2k 2048 37 0 0 5 0 5 5 0 8 0
mextrefs 64 36 0 0 1 0 1 1 0 8 0
mtagpl 96 3 0 0 1 0 1 1 0 8 0
mbufpl 256 254 0 0 16 0 16 16 0 8 0
bufpl 272 3226 0 109 208 0 208 208 0 8 0
anonpl 32 8821 0 0 72 0 72 72 0 222 0
amapchunkpl 152 19222 0 18721 24 3 21 23 0 158 0
amappl16 200 2435 0 2413 18 8 10 15 0 8 7
amappl15 192 9 0 9 3 3 0 1 0 8 0
amappl14 184 470 0 469 1 0 1 1 0 8 0
amappl13 176 129 0 127 1 0 1 1 0 8 0
amappl12 168 1026 0 1007 2 0 2 2 0 8 0
amappl11 160 7 0 7 3 2 1 1 0 8 1
amappl10 152 65 0 65 1 0 1 1 0 8 1
amappl9 144 276 0 276 2 2 0 1 0 8 0
amappl8 136 118 0 117 1 0 1 1 0 8 0
amappl7 128 153 0 150 1 0 1 1 0 8 0
amappl6 120 152 0 151 1 0 1 1 0 8 0
amappl5 112 99 0 98 1 0 1 1 0 8 0
amappl4 104 309 0 305 1 0 1 1 0 8 0
amappl3 96 3811 0 3725 4 0 4 4 0 8 0
amappl2 88 560 0 549 2 0 2 2 0 8 0
amappl1 80 11729 0 11584 17 3 14 17 0 8 4
amappl 88 5451 0 5325 4 0 4 4 0 92 0
uvmvnodes 80 105 0 0 3 0 3 3 0 8 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 28 0 3 1 0 1 1 0 8 0
uaddrrnd 24 774 0 753 1 0 1 1 0 8 0
uaddrbest 32 2 0 0 1 0 1 1 0 8 0
uaddr 24 774 0 753 1 0 1 1 0 8 0
vmmpekpl 168 8462 0 8429 2 0 2 2 0 8 0
vmmpepl 168 57013 0 56083 89 17 72 89 0 357 20
vmsppl 488 773 0 753 5 0 5 5 0 8 0
rwobjpl 80 18752 0 18248 25 2 23 25 0 8 0
pdppl 4096 1557 0 1506 107 56 51 89 0 8 0
pvpl 32 14956 0 0 123 2 121 121 0 265 0
pmappl 256 773 0 753 3 0 3 3 0 8 0
extentpl 40 47 0 29 1 0 1 1 0 8 0
phpool 120 497 0 63 14 0 14 14 0 8 0
ddb{0}> machine ddbcpu 0
Invalid cpu 0
ddb{0}> trace
db_enter() at db_enter+0x17 sys/arch/amd64/amd64/db_interface.c:457
panic(ffffffff846366ce) at panic+0x270 sys/kern/subr_prf.c:198
__asan_store8_noabort(ffff800001d47120) at __asan_store8_noabort+0xe4 kasan_shadow_check sys/kern/subr_kasan.c:-1 [inline]
__asan_store8_noabort(ffff800001d47120) at __asan_store8_noabort+0xe4 sys/kern/subr_kasan.c:1099
shm_delete_mapping(ffff800001c9c9a8,ffff800001cb1008) at shm_delete_mapping+0x1f9 sys/kern/sysv_shm.c:183
syscall(ffff8000299aa220) at syscall+0x1089 mi_syscall sys/sys/syscall_mi.h:176 [inline]
syscall(ffff8000299aa220) at syscall+0x1089 sys/arch/amd64/amd64/trap.c:783
Xsyscall() at Xsyscall+0x128
end of kernel
end trace frame: 0x297af711f60, count: -6
ddb{0}> machine ddbcpu 1
Stopped at x86_ipi_db+0x19: leave
x86_ipi_db(ffff800028fe3ff0) at x86_ipi_db+0x19 sys/arch/amd64/amd64/db_interface.c:412
x86_ipi_handler() at x86_ipi_handler+0x112 sys/arch/amd64/amd64/ipi.c:106
Xresume_lapic_ipi() at Xresume_lapic_ipi+0x27
__mp_lock(ffffffff8549ca00) at __mp_lock+0x272 __mp_lock_spin sys/kern/kern_lock.c:142 [inline]
__mp_lock(ffffffff8549ca00) at __mp_lock+0x272 sys/kern/kern_lock.c:173
syscall(ffff80002ded4030) at syscall+0x1048 mi_syscall sys/sys/syscall_mi.h:175 [inline]
syscall(ffff80002ded4030) at syscall+0x1048 sys/arch/amd64/amd64/trap.c:783
Xsyscall() at Xsyscall+0x128
end of kernel
end trace frame: 0x7dbbbfbfe090, count: 9
ddb{1}> trace
x86_ipi_db(ffff800028fe3ff0) at x86_ipi_db+0x19 sys/arch/amd64/amd64/db_interface.c:412
x86_ipi_handler() at x86_ipi_handler+0x112 sys/arch/amd64/amd64/ipi.c:106
Xresume_lapic_ipi() at Xresume_lapic_ipi+0x27
__mp_lock(ffffffff8549ca00) at __mp_lock+0x272 __mp_lock_spin sys/kern/kern_lock.c:142 [inline]
__mp_lock(ffffffff8549ca00) at __mp_lock+0x272 sys/kern/kern_lock.c:173
syscall(ffff80002ded4030) at syscall+0x1048 mi_syscall sys/sys/syscall_mi.h:175 [inline]
syscall(ffff80002ded4030) at syscall+0x1048 sys/arch/amd64/amd64/trap.c:783
Xsyscall() at X
* Struck through repros no longer work on HEAD.