syzbot |
sign-in | mailing list | source | docs |
| ID | Workflow | Result | Correct | Bug | Created | Started | Finished | Revision | Error |
|---|---|---|---|---|---|---|---|---|---|
| cd4bf5a2-1ee4-48d1-9447-e76dc354fbfc | repro | ❓ | KASAN: slab-out-of-bounds Read in __vb2_queue_cancel | 2026/03/06 21:00 | 2026/03/06 21:00 | 2026/03/06 21:12 | 31e9c887f7dc24e04b3ca70d0d54fc34141844b0 |
{
"procs": 1,
"type": "none",
"repeat": true,
"sandbox": "none"
}r0 = syz_open_dev(&(0x7f0000000000)='video#\x00', 0x2, 0x0)
r1 = dup(r0)
ioctl$VIDIOC_REQBUFS(r0, 0xc0145608, &(0x7f0000000040)={0xc8, 0x1, 0x1, 0x0, 0x0})
ioctl$VIDIOC_CREATE_BUFS(r0, 0xc100565c, &(0x7f0000000080)={0x0, 0xc8, 0x1, {0x1, 0x0, 0x0, 0x0, 0x0, {0x0, 0x0, 0x0, 0x0}}, {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}})
read(r0, &(0x7f0000000100), 0x20)
close_range(r0, r1, 0x0)31e9c887f7dc24e04b3ca70d0d54fc34141844b0
================================================================== BUG: KASAN: slab-out-of-bounds in __vb2_queue_cancel+0xd43/0xef0 drivers/media/common/videobuf2/videobuf2-core.c:2297 Read of size 8 at addr ffff88801b261fff by task syz.2.458/7987 CPU: 1 UID: 0 PID: 7987 Comm: syz.2.458 Not tainted syzkaller #0 PREEMPT(full) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014 Call Trace: <TASK> __dump_stack lib/dump_stack.c:94 [inline] dump_stack_lvl+0x116/0x1f0 lib/dump_stack.c:120 print_address_description mm/kasan/report.c:378 [inline] print_report+0xcd/0x630 mm/kasan/report.c:482 kasan_report+0xe0/0x110 mm/kasan/report.c:595 __vb2_queue_cancel+0xd43/0xef0 drivers/media/common/videobuf2/videobuf2-core.c:2297 vb2_core_streamoff+0x5d/0x180 drivers/media/common/videobuf2/videobuf2-core.c:2388 __vb2_cleanup_fileio+0x6e/0x190 drivers/media/common/videobuf2/videobuf2-core.c:2990 vb2_core_queue_release+0x1f/0x190 drivers/media/common/videobuf2/videobuf2-core.c:2692 vb2_queue_release drivers/media/common/videobuf2/videobuf2-v4l2.c:956 [inline] _vb2_fop_release+0xe8/0x280 drivers/media/common/videobuf2/videobuf2-v4l2.c:1159 vivid_fop_release+0x155/0xc40 drivers/media/test-drivers/vivid/vivid-core.c:667 v4l2_release+0x1cf/0x430 drivers/media/v4l2-core/v4l2-dev.c:468 __fput+0x402/0xb70 fs/file_table.c:468 task_work_run+0x150/0x240 kernel/task_work.c:233 resume_user_mode_work include/linux/resume_user_mode.h:50 [inline] __exit_to_user_mode_loop kernel/entry/common.c:44 [inline] exit_to_user_mode_loop+0xfb/0x540 kernel/entry/common.c:75 __exit_to_user_mode_prepare include/linux/irq-entry-common.h:226 [inline] syscall_exit_to_user_mode_prepare include/linux/irq-entry-common.h:256 [inline] syscall_exit_to_user_mode_work include/linux/entry-common.h:159 [inline] syscall_exit_to_user_mode include/linux/entry-common.h:194 [inline] __do_fast_syscall_32+0x4a4/0x680 arch/x86/entry/syscall_32.c:310 do_fast_syscall_32+0x32/0x80 arch/x86/entry/syscall_32.c:332 entry_SYSENTER_compat_after_hwframe+0x84/0x8e RIP: 0023:0xf7f71579 Code: b8 01 10 06 03 74 b4 01 10 07 03 74 b0 01 10 08 03 74 d8 01 00 00 00 00 00 00 00 00 00 00 00 00 00 51 52 55 89 e5 0f 34 cd 80 <5d> 5a 59 c3 90 90 90 90 8d b4 26 00 00 00 00 8d b4 26 00 00 00 00 RSP: 002b:00000000ffd5336c EFLAGS: 00000202 ORIG_RAX: 00000000000001b4 RAX: 0000000000000000 RBX: 0000000000000003 RCX: 000000000000001e RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000 RBP: 0000000000000002 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000293 R12: 0000000000000000 R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000 </TASK> Allocated by task 5945: kasan_save_stack+0x33/0x60 mm/kasan/common.c:56 kasan_save_track+0x14/0x30 mm/kasan/common.c:77 poison_kmalloc_redzone mm/kasan/common.c:397 [inline] __kasan_kmalloc+0xaa/0xb0 mm/kasan/common.c:414 kasan_kmalloc include/linux/kasan.h:262 [inline] __do_kmalloc_node mm/slub.c:5657 [inline] __kmalloc_node_noprof+0x355/0x930 mm/slub.c:5663 kmalloc_node_noprof include/linux/slab.h:987 [inline] qdisc_alloc+0xb7/0xa50 net/sched/sch_generic.c:951 qdisc_create_dflt+0x94/0x460 net/sched/sch_generic.c:1008 mq_init+0x345/0x490 net/sched/sch_mq.c:90 qdisc_create_dflt+0x125/0x460 net/sched/sch_generic.c:1015 attach_default_qdiscs net/sched/sch_generic.c:1197 [inline] dev_activate+0xaae/0x12d0 net/sched/sch_generic.c:1251 __dev_open+0x4f1/0x960 net/core/dev.c:1692 __dev_change_flags+0x55d/0x6f0 net/core/dev.c:9734 netif_change_flags+0x8d/0x160 net/core/dev.c:9797 do_setlink.constprop.0+0xb53/0x4380 net/core/rtnetlink.c:3158 rtnl_changelink net/core/rtnetlink.c:3776 [inline] __rtnl_newlink net/core/rtnetlink.c:3935 [inline] rtnl_newlink+0x1376/0x1f50 net/core/rtnetlink.c:4072 rtnetlink_rcv_msg+0x95e/0xe90 net/core/rtnetlink.c:6958 netlink_rcv_skb+0x158/0x420 net/netlink/af_netlink.c:2550 netlink_unicast_kernel net/netlink/af_netlink.c:1318 [inline] netlink_unicast+0x5aa/0x870 net/netlink/af_netlink.c:1344 netlink_sendmsg+0x8c8/0xdd0 net/netlink/af_netlink.c:1894 sock_sendmsg_nosec net/socket.c:727 [inline] __sock_sendmsg net/socket.c:742 [inline] __sys_sendto+0x4a3/0x520 net/socket.c:2206 __do_compat_sys_socketcall net/compat.c:475 [inline] __se_compat_sys_socketcall net/compat.c:423 [inline] __ia32_compat_sys_socketcall+0x62a/0x780 net/compat.c:423 do_syscall_32_irqs_on arch/x86/entry/syscall_32.c:83 [inline] __do_fast_syscall_32+0xe8/0x680 arch/x86/entry/syscall_32.c:307 do_fast_syscall_32+0x32/0x80 arch/x86/entry/syscall_32.c:332 entry_SYSENTER_compat_after_hwframe+0x84/0x8e The buggy address belongs to the object at ffff88801b261000 which belongs to the cache kmalloc-2k of size 2048 The buggy address is located 2495 bytes to the right of allocated 1600-byte region [ffff88801b261000, ffff88801b261640) The buggy address belongs to the physical page: page: refcount:0 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x1b260 head: order:3 mapcount:0 entire_mapcount:0 nr_pages_mapped:0 pincount:0 flags: 0xfff00000000040(head|node=0|zone=1|lastcpupid=0x7ff) page_type: f5(slab) raw: 00fff00000000040 ffff88801b442f00 dead000000000100 dead000000000122 raw: 0000000000000000 0000000000080008 00000000f5000000 0000000000000000 head: 00fff00000000040 ffff88801b442f00 dead000000000100 dead000000000122 head: 0000000000000000 0000000000080008 00000000f5000000 0000000000000000 head: 00fff00000000003 ffffea00006c9801 00000000ffffffff 00000000ffffffff head: ffffffffffffffff 0000000000000000 00000000ffffffff 0000000000000008 page dumped because: kasan: bad access detected page_owner tracks the page as allocated page last allocated via order 3, migratetype Unmovable, gfp_mask 0xd20c0(__GFP_IO|__GFP_FS|__GFP_NOWARN|__GFP_NORETRY|__GFP_COMP|__GFP_NOMEMALLOC), pid 5340, tgid 5340 (klogd), ts 26820599484, free_ts 26792783724 set_page_owner include/linux/page_owner.h:32 [inline] post_alloc_hook+0x1af/0x220 mm/page_alloc.c:1846 prep_new_page mm/page_alloc.c:1854 [inline] get_page_from_freelist+0xd0b/0x31a0 mm/page_alloc.c:3915 __alloc_frozen_pages_noprof+0x25f/0x2430 mm/page_alloc.c:5210 alloc_pages_mpol+0x1fb/0x550 mm/mempolicy.c:2486 alloc_slab_page mm/slub.c:3075 [inline] allocate_slab mm/slub.c:3248 [inline] new_slab+0x2c3/0x430 mm/slub.c:3302 ___slab_alloc+0xe18/0x1c90 mm/slub.c:4656 __slab_alloc.constprop.0+0x63/0x110 mm/slub.c:4779 __slab_alloc_node mm/slub.c:4855 [inline] slab_alloc_node mm/slub.c:5251 [inline] __kmalloc_cache_noprof+0x485/0x800 mm/slub.c:5771 kmalloc_noprof include/linux/slab.h:957 [inline] syslog_print+0xf6/0x620 kernel/printk/printk.c:1583 do_syslog+0x3dc/0x6c0 kernel/printk/printk.c:1761 __do_sys_syslog kernel/printk/printk.c:1853 [inline] __se_sys_syslog kernel/printk/printk.c:1851 [inline] __x64_sys_syslog+0x74/0xb0 kernel/printk/printk.c:1851 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] do_syscall_64+0xcd/0xf80 arch/x86/entry/syscall_64.c:94 entry_SYSCALL_64_after_hwframe+0x77/0x7f page last free pid 5340 tgid 5340 stack trace: reset_page_owner include/linux/page_owner.h:25 [inline] free_pages_prepare mm/page_alloc.c:1395 [inline] __free_frozen_pages+0x7df/0x1170 mm/page_alloc.c:2943 qlink_free mm/kasan/quarantine.c:163 [inline] qlist_free_all+0x4c/0xf0 mm/kasan/quarantine.c:179 kasan_quarantine_reduce+0x195/0x1e0 mm/kasan/quarantine.c:286 __kasan_slab_alloc+0x69/0x90 mm/kasan/common.c:349 kasan_slab_alloc include/linux/kasan.h:252 [inline] slab_post_alloc_hook mm/slub.c:4953 [inline] slab_alloc_node mm/slub.c:5263 [inline] __do_kmalloc_node mm/slub.c:5656 [inline] __kmalloc_node_track_caller_noprof+0x30b/0x930 mm/slub.c:5764 kmalloc_reserve+0xef/0x2c0 net/core/skbuff.c:608 __alloc_skb+0x186/0x410 net/core/skbuff.c:690 alloc_skb include/linux/skbuff.h:1383 [inline] alloc_skb_with_frags+0xe0/0x860 net/core/skbuff.c:6712 sock_alloc_send_pskb+0x7f9/0x980 net/core/sock.c:2995 unix_dgram_sendmsg+0x3bc/0x1830 net/unix/af_unix.c:2130 sock_sendmsg_nosec net/socket.c:727 [inline] __sock_sendmsg net/socket.c:742 [inline] __sys_sendto+0x4a3/0x520 net/socket.c:2206 __do_sys_sendto net/socket.c:2213 [inline] __se_sys_sendto net/socket.c:2209 [inline] __x64_sys_sendto+0xe0/0x1c0 net/socket.c:2209 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] do_syscall_64+0xcd/0xf80 arch/x86/entry/syscall_64.c:94 entry_SYSCALL_64_after_hwframe+0x77/0x7f Memory state around the buggy address: ffff88801b261e80: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc ffff88801b261f00: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc >ffff88801b261f80: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc ^ ffff88801b262000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ffff88801b262080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ================================================================== ---------------- Code disassembly (best guess), 2 bytes skipped: 0: 10 06 adc %al,(%rsi) 2: 03 74 b4 01 add 0x1(%rsp,%rsi,4),%esi 6: 10 07 adc %al,(%rdi) 8: 03 74 b0 01 add 0x1(%rax,%rsi,4),%esi c: 10 08 adc %cl,(%rax) e: 03 74 d8 01 add 0x1(%rax,%rbx,8),%esi 1e: 00 51 52 add %dl,0x52(%rcx) 21: 55 push %rbp 22: 89 e5 mov %esp,%ebp 24: 0f 34 sysenter 26: cd 80 int $0x80 * 28: 5d pop %rbp <-- trapping instruction 29: 5a pop %rdx 2a: 59 pop %rcx 2b: c3 ret 2c: 90 nop 2d: 90 nop 2e: 90 nop 2f: 90 nop 30: 8d b4 26 00 00 00 00 lea 0x0(%rsi,%riz,1),%esi 37: 8d b4 26 00 00 00 00 lea 0x0(%rsi,%riz,1),%esi
| Seq | Timestamp | Type | Name | Duration |
|---|---|---|---|---|
| 0/0 | 2026/03/06 21:00 | flow | repro |
12mResults:map[ReproOpts:{
"procs": 1,
"type": "none",
"repeat": true,
"sandbox": "none"
} ReproSyz:r0 = syz_open_dev(&(0x7f0000000000)='video#\x00', 0x2, 0x0)
r1 = dup(r0)
ioctl$VIDIOC_REQBUFS(r0, 0xc0145608, &(0x7f0000000040)={0xc8, 0x1, 0x1, 0x0, 0x0})
ioctl$VIDIOC_CREATE_BUFS(r0, 0xc100565c, &(0x7f0000000080)={0x0, 0xc8, 0x1, {0x1, 0x0, 0x0, 0x0, 0x0, {0x0, 0x0, 0x0, 0x0}}, {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}})
read(r0, &(0x7f0000000100), 0x20)
close_range(r0, r1, 0x0) SyzkallerCommit:31e9c887f7dc24e04b3ca70d0d54fc34141844b0] |
| 1/1 | 2026/03/06 21:00 | action | provide-var |
0mResults:map[DescriptionFiles:[acpi_thermal_rel.txt aio.txt auto.txt binfmt.txt bpf.txt bpf_prog.txt bpf_trace.txt cgroup.txt damon.txt dev_ashmem.txt dev_bifrost.txt dev_binder.txt dev_binderfs.txt dev_block.txt dev_bsg.txt dev_bus_usb.txt dev_camx.txt dev_cdrom.txt dev_cec.txt dev_char_usb.txt dev_comedi.txt dev_dma_heap.txt dev_dri.txt dev_dsp.txt dev_dvb_demux.txt dev_dvb_dvr.txt dev_dvb_frontend.txt dev_fb.txt dev_floppy.txt dev_hidraw.txt dev_i2c.txt dev_i915.txt dev_img_rogue.txt dev_infiniband_rdma.txt dev_infiniband_rdma_cm.txt dev_input.txt dev_iommu.txt dev_kvm.txt dev_kvm_amd64.txt dev_kvm_arm64.txt dev_kvm_extra.txt dev_kvm_riscv64.txt dev_loop.txt dev_mali.txt dev_media.txt dev_msm.txt dev_msr.txt dev_nbd.txt dev_net_tun.txt dev_panthor.txt dev_ppp.txt dev_ptmx.txt dev_ptp.txt dev_qat_adf_ctl.txt dev_qrtr_tun.txt dev_random.txt dev_rfkill.txt dev_rtc.txt dev_sequencer.txt dev_sg.txt dev_snapshot.txt dev_snd_control.txt dev_snd_hw.txt dev_snd_midi.txt dev_snd_pcm.txt dev_snd_seq.txt dev_snd_timer.txt dev_sr.txt dev_sw_sync.txt dev_tlk_device.txt dev_trusty.txt dev_udmabuf.txt dev_uhid.txt dev_uinput.txt dev_usb_hiddev.txt dev_usbmon.txt dev_userio.txt dev_vfio.txt dev_vga_arbiter.txt dev_vhci.txt dev_video4linux.txt dev_video4linux_vim2m.txt dev_virtual_nci.txt dev_vtpm.txt fanotify.txt filesystem.txt fs_9p.txt fs_fuse.txt fs_incfs.txt fs_ioctl.txt fs_ioctl_autofs.txt fs_ioctl_btrfs.txt fs_ioctl_ext4.txt fs_ioctl_f2fs.txt fs_ioctl_fat.txt fs_ioctl_fscrypt.txt fs_ioctl_fsverity.txt fs_ioctl_xfs.txt futex.txt hafnium.txt inotify.txt io_uring.txt ipc.txt key.txt kfuzztest.txt l2cap.txt landlock.txt lsm.txt namespaces.txt net_80211.txt netfilter.txt netfilter_arp.txt netfilter_bridge.txt netfilter_ipv4.txt netfilter_ipv6.txt netfilter_ipvs.txt netfilter_targets.txt pagemap_ioctl.txt perf.txt prctl.txt quotactl.txt seccomp.txt security_apparmor.txt security_selinux.txt security_smack.txt socket.txt socket_alg.txt socket_ax25.txt socket_bluetooth.txt socket_caif.txt socket_can.txt socket_ieee802154.txt socket_inet.txt socket_inet6.txt socket_inet_dccp.txt socket_inet_icmp.txt socket_inet_igmp.txt socket_inet_l2tp.txt socket_inet_sctp.txt socket_inet_tcp.txt socket_inet_udp.txt socket_ip_tunnel.txt socket_isdn.txt socket_kcm.txt socket_key.txt socket_llc.txt socket_netlink.txt socket_netlink_audit.txt socket_netlink_crypto.txt socket_netlink_generic.txt socket_netlink_generic_80211.txt socket_netlink_generic_batadv.txt socket_netlink_generic_devlink.txt socket_netlink_generic_ethtool.txt socket_netlink_generic_fou.txt socket_netlink_generic_gtp.txt socket_netlink_generic_mptcp.txt socket_netlink_generic_net_dm.txt socket_netlink_generic_netlabel.txt socket_netlink_generic_nfc.txt socket_netlink_generic_seg6.txt socket_netlink_generic_smc.txt socket_netlink_generic_team.txt socket_netlink_generic_wireguard.txt socket_netlink_netfilter.txt socket_netlink_netfilter_acct.txt socket_netlink_netfilter_conntrack.txt socket_netlink_netfilter_conntrack_exp.txt socket_netlink_netfilter_conntrack_helper.txt socket_netlink_netfilter_ipset.txt socket_netlink_netfilter_log.txt socket_netlink_netfilter_nft_compat.txt socket_netlink_netfilter_nftables.txt socket_netlink_netfilter_osf.txt socket_netlink_netfilter_queue.txt socket_netlink_netfilter_timeout.txt socket_netlink_rdma.txt socket_netlink_route.txt socket_netlink_route_sched.txt socket_netlink_route_sched_retired.txt socket_netlink_sock_diag.txt socket_netlink_xfrm.txt socket_netrom.txt socket_nfc.txt socket_nvme_of_tcp.txt socket_packet.txt socket_phonet.txt socket_pppox.txt socket_qipcrtr.txt socket_rds.txt socket_rose.txt socket_rxrpc.txt socket_tipc.txt socket_tipc_netlink.txt socket_unix.txt socket_vnet.txt socket_x25.txt socket_xdp.txt sys.txt uffd.txt usbip.txt vmw_vmci.txt vnet.txt vnet_mptcp.txt vusb.txt watch_queue.txt xattr.txt] SyzkallerCommit:31e9c887f7dc24e04b3ca70d0d54fc34141844b0] |
| 2/1 | 2026/03/06 21:00 | action | kernel-checkouter |
0mResults:map[KernelSrc:/usr/local/google/home/dvyukov/syzkaller/agent/workdir/cache/src/5226d7a6a07cc4334a2aaa0239b805f4eb6cb01a] |
| 3/1 | 2026/03/06 21:01 | action | kernel-builder |
6mResults:map[KernelObj:/usr/local/google/home/dvyukov/syzkaller/agent/workdir/cache/build/39a74e07e14ddcaa470e366091b35d1226da2838] |
| 4/1 | 2026/03/06 21:07 | agent | crash-repro-finder |
5mModel:gemini-3-pro-preview Results: map[ReproOpts:{
"procs": 1,
"type": "none",
"repeat": true,
"sandbox": "none"
}]Instruction: You are an expert in linux kernel fuzzing. Your goal is to write a syzkaller program to trigger a specific bug. Print only the syz program that could be executed directly, without backticks. Use set-results tool to provide results of the analysis. It must be called exactly once before the final reply. Ignore results of this tool. Prompt:
Bug Title: KASAN: slab-out-of-bounds Read in __vb2_queue_cancel
Original Crash Report:
==================================================================
BUG: KASAN: slab-out-of-bounds in __vb2_queue_cancel+0xd43/0xef0 drivers/media/common/videobuf2/videobuf2-core.c:2297
Read of size 8 at addr ffff88801b261fff by task syz.2.458/7987
CPU: 1 UID: 0 PID: 7987 Comm: syz.2.458 Not tainted syzkaller #0 PREEMPT(full)
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014
Call Trace:
<TASK>
__dump_stack lib/dump_stack.c:94 [inline]
dump_stack_lvl+0x116/0x1f0 lib/dump_stack.c:120
print_address_description mm/kasan/report.c:378 [inline]
print_report+0xcd/0x630 mm/kasan/report.c:482
kasan_report+0xe0/0x110 mm/kasan/report.c:595
__vb2_queue_cancel+0xd43/0xef0 drivers/media/common/videobuf2/videobuf2-core.c:2297
vb2_core_streamoff+0x5d/0x180 drivers/media/common/videobuf2/videobuf2-core.c:2388
__vb2_cleanup_fileio+0x6e/0x190 drivers/media/common/videobuf2/videobuf2-core.c:2990
vb2_core_queue_release+0x1f/0x190 drivers/media/common/videobuf2/videobuf2-core.c:2692
vb2_queue_release drivers/media/common/videobuf2/videobuf2-v4l2.c:956 [inline]
_vb2_fop_release+0xe8/0x280 drivers/media/common/videobuf2/videobuf2-v4l2.c:1159
vivid_fop_release+0x155/0xc40 drivers/media/test-drivers/vivid/vivid-core.c:667
v4l2_release+0x1cf/0x430 drivers/media/v4l2-core/v4l2-dev.c:468
__fput+0x402/0xb70 fs/file_table.c:468
task_work_run+0x150/0x240 kernel/task_work.c:233
resume_user_mode_work include/linux/resume_user_mode.h:50 [inline]
__exit_to_user_mode_loop kernel/entry/common.c:44 [inline]
exit_to_user_mode_loop+0xfb/0x540 kernel/entry/common.c:75
__exit_to_user_mode_prepare include/linux/irq-entry-common.h:226 [inline]
syscall_exit_to_user_mode_prepare include/linux/irq-entry-common.h:256 [inline]
syscall_exit_to_user_mode_work include/linux/entry-common.h:159 [inline]
syscall_exit_to_user_mode include/linux/entry-common.h:194 [inline]
__do_fast_syscall_32+0x4a4/0x680 arch/x86/entry/syscall_32.c:310
do_fast_syscall_32+0x32/0x80 arch/x86/entry/syscall_32.c:332
entry_SYSENTER_compat_after_hwframe+0x84/0x8e
RIP: 0023:0xf7f71579
Code: b8 01 10 06 03 74 b4 01 10 07 03 74 b0 01 10 08 03 74 d8 01 00 00 00 00 00 00 00 00 00 00 00 00 00 51 52 55 89 e5 0f 34 cd 80 <5d> 5a 59 c3 90 90 90 90 8d b4 26 00 00 00 00 8d b4 26 00 00 00 00
RSP: 002b:00000000ffd5336c EFLAGS: 00000202 ORIG_RAX: 00000000000001b4
RAX: 0000000000000000 RBX: 0000000000000003 RCX: 000000000000001e
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
RBP: 0000000000000002 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000293 R12: 0000000000000000
R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
</TASK>
Allocated by task 5945:
kasan_save_stack+0x33/0x60 mm/kasan/common.c:56
kasan_save_track+0x14/0x30 mm/kasan/common.c:77
poison_kmalloc_redzone mm/kasan/common.c:397 [inline]
__kasan_kmalloc+0xaa/0xb0 mm/kasan/common.c:414
kasan_kmalloc include/linux/kasan.h:262 [inline]
__do_kmalloc_node mm/slub.c:5657 [inline]
__kmalloc_node_noprof+0x355/0x930 mm/slub.c:5663
kmalloc_node_noprof include/linux/slab.h:987 [inline]
qdisc_alloc+0xb7/0xa50 net/sched/sch_generic.c:951
qdisc_create_dflt+0x94/0x460 net/sched/sch_generic.c:1008
mq_init+0x345/0x490 net/sched/sch_mq.c:90
qdisc_create_dflt+0x125/0x460 net/sched/sch_generic.c:1015
attach_default_qdiscs net/sched/sch_generic.c:1197 [inline]
dev_activate+0xaae/0x12d0 net/sched/sch_generic.c:1251
__dev_open+0x4f1/0x960 net/core/dev.c:1692
__dev_change_flags+0x55d/0x6f0 net/core/dev.c:9734
netif_change_flags+0x8d/0x160 net/core/dev.c:9797
do_setlink.constprop.0+0xb53/0x4380 net/core/rtnetlink.c:3158
rtnl_changelink net/core/rtnetlink.c:3776 [inline]
__rtnl_newlink net/core/rtnetlink.c:3935 [inline]
rtnl_newlink+0x1376/0x1f50 net/core/rtnetlink.c:4072
rtnetlink_rcv_msg+0x95e/0xe90 net/core/rtnetlink.c:6958
netlink_rcv_skb+0x158/0x420 net/netlink/af_netlink.c:2550
netlink_unicast_kernel net/netlink/af_netlink.c:1318 [inline]
netlink_unicast+0x5aa/0x870 net/netlink/af_netlink.c:1344
netlink_sendmsg+0x8c8/0xdd0 net/netlink/af_netlink.c:1894
sock_sendmsg_nosec net/socket.c:727 [inline]
__sock_sendmsg net/socket.c:742 [inline]
__sys_sendto+0x4a3/0x520 net/socket.c:2206
__do_compat_sys_socketcall net/compat.c:475 [inline]
__se_compat_sys_socketcall net/compat.c:423 [inline]
__ia32_compat_sys_socketcall+0x62a/0x780 net/compat.c:423
do_syscall_32_irqs_on arch/x86/entry/syscall_32.c:83 [inline]
__do_fast_syscall_32+0xe8/0x680 arch/x86/entry/syscall_32.c:307
do_fast_syscall_32+0x32/0x80 arch/x86/entry/syscall_32.c:332
entry_SYSENTER_compat_after_hwframe+0x84/0x8e
The buggy address belongs to the object at ffff88801b261000
which belongs to the cache kmalloc-2k of size 2048
The buggy address is located 2495 bytes to the right of
allocated 1600-byte region [ffff88801b261000, ffff88801b261640)
The buggy address belongs to the physical page:
page: refcount:0 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x1b260
head: order:3 mapcount:0 entire_mapcount:0 nr_pages_mapped:0 pincount:0
flags: 0xfff00000000040(head|node=0|zone=1|lastcpupid=0x7ff)
page_type: f5(slab)
raw: 00fff00000000040 ffff88801b442f00 dead000000000100 dead000000000122
raw: 0000000000000000 0000000000080008 00000000f5000000 0000000000000000
head: 00fff00000000040 ffff88801b442f00 dead000000000100 dead000000000122
head: 0000000000000000 0000000000080008 00000000f5000000 0000000000000000
head: 00fff00000000003 ffffea00006c9801 00000000ffffffff 00000000ffffffff
head: ffffffffffffffff 0000000000000000 00000000ffffffff 0000000000000008
page dumped because: kasan: bad access detected
page_owner tracks the page as allocated
page last allocated via order 3, migratetype Unmovable, gfp_mask 0xd20c0(__GFP_IO|__GFP_FS|__GFP_NOWARN|__GFP_NORETRY|__GFP_COMP|__GFP_NOMEMALLOC), pid 5340, tgid 5340 (klogd), ts 26820599484, free_ts 26792783724
set_page_owner include/linux/page_owner.h:32 [inline]
post_alloc_hook+0x1af/0x220 mm/page_alloc.c:1846
prep_new_page mm/page_alloc.c:1854 [inline]
get_page_from_freelist+0xd0b/0x31a0 mm/page_alloc.c:3915
__alloc_frozen_pages_noprof+0x25f/0x2430 mm/page_alloc.c:5210
alloc_pages_mpol+0x1fb/0x550 mm/mempolicy.c:2486
alloc_slab_page mm/slub.c:3075 [inline]
allocate_slab mm/slub.c:3248 [inline]
new_slab+0x2c3/0x430 mm/slub.c:3302
___slab_alloc+0xe18/0x1c90 mm/slub.c:4656
__slab_alloc.constprop.0+0x63/0x110 mm/slub.c:4779
__slab_alloc_node mm/slub.c:4855 [inline]
slab_alloc_node mm/slub.c:5251 [inline]
__kmalloc_cache_noprof+0x485/0x800 mm/slub.c:5771
kmalloc_noprof include/linux/slab.h:957 [inline]
syslog_print+0xf6/0x620 kernel/printk/printk.c:1583
do_syslog+0x3dc/0x6c0 kernel/printk/printk.c:1761
__do_sys_syslog kernel/printk/printk.c:1853 [inline]
__se_sys_syslog kernel/printk/printk.c:1851 [inline]
__x64_sys_syslog+0x74/0xb0 kernel/printk/printk.c:1851
do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
do_syscall_64+0xcd/0xf80 arch/x86/entry/syscall_64.c:94
entry_SYSCALL_64_after_hwframe+0x77/0x7f
page last free pid 5340 tgid 5340 stack trace:
reset_page_owner include/linux/page_owner.h:25 [inline]
free_pages_prepare mm/page_alloc.c:1395 [inline]
__free_frozen_pages+0x7df/0x1170 mm/page_alloc.c:2943
qlink_free mm/kasan/quarantine.c:163 [inline]
qlist_free_all+0x4c/0xf0 mm/kasan/quarantine.c:179
kasan_quarantine_reduce+0x195/0x1e0 mm/kasan/quarantine.c:286
__kasan_slab_alloc+0x69/0x90 mm/kasan/common.c:349
kasan_slab_alloc include/linux/kasan.h:252 [inline]
slab_post_alloc_hook mm/slub.c:4953 [inline]
slab_alloc_node mm/slub.c:5263 [inline]
__do_kmalloc_node mm/slub.c:5656 [inline]
__kmalloc_node_track_caller_noprof+0x30b/0x930 mm/slub.c:5764
kmalloc_reserve+0xef/0x2c0 net/core/skbuff.c:608
__alloc_skb+0x186/0x410 net/core/skbuff.c:690
alloc_skb include/linux/skbuff.h:1383 [inline]
alloc_skb_with_frags+0xe0/0x860 net/core/skbuff.c:6712
sock_alloc_send_pskb+0x7f9/0x980 net/core/sock.c:2995
unix_dgram_sendmsg+0x3bc/0x1830 net/unix/af_unix.c:2130
sock_sendmsg_nosec net/socket.c:727 [inline]
__sock_sendmsg net/socket.c:742 [inline]
__sys_sendto+0x4a3/0x520 net/socket.c:2206
__do_sys_sendto net/socket.c:2213 [inline]
__se_sys_sendto net/socket.c:2209 [inline]
__x64_sys_sendto+0xe0/0x1c0 net/socket.c:2209
do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
do_syscall_64+0xcd/0xf80 arch/x86/entry/syscall_64.c:94
entry_SYSCALL_64_after_hwframe+0x77/0x7f
Memory state around the buggy address:
ffff88801b261e80: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
ffff88801b261f00: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
>ffff88801b261f80: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
^
ffff88801b262000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ffff88801b262080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
==================================================================
----------------
Code disassembly (best guess), 2 bytes skipped:
0: 10 06 adc %al,(%rsi)
2: 03 74 b4 01 add 0x1(%rsp,%rsi,4),%esi
6: 10 07 adc %al,(%rdi)
8: 03 74 b0 01 add 0x1(%rax,%rsi,4),%esi
c: 10 08 adc %cl,(%rax)
e: 03 74 d8 01 add 0x1(%rax,%rbx,8),%esi
1e: 00 51 52 add %dl,0x52(%rcx)
21: 55 push %rbp
22: 89 e5 mov %esp,%ebp
24: 0f 34 sysenter
26: cd 80 int $0x80
* 28: 5d pop %rbp <-- trapping instruction
29: 5a pop %rdx
2a: 59 pop %rcx
2b: c3 ret
2c: 90 nop
2d: 90 nop
2e: 90 nop
2f: 90 nop
30: 8d b4 26 00 00 00 00 lea 0x0(%rsi,%riz,1),%esi
37: 8d b4 26 00 00 00 00 lea 0x0(%rsi,%riz,1),%esi
The list of existing description files:
acpi_thermal_rel.txt
aio.txt
auto.txt
binfmt.txt
bpf.txt
bpf_prog.txt
bpf_trace.txt
cgroup.txt
damon.txt
dev_ashmem.txt
dev_bifrost.txt
dev_binder.txt
dev_binderfs.txt
dev_block.txt
dev_bsg.txt
dev_bus_usb.txt
dev_camx.txt
dev_cdrom.txt
dev_cec.txt
dev_char_usb.txt
dev_comedi.txt
dev_dma_heap.txt
dev_dri.txt
dev_dsp.txt
dev_dvb_demux.txt
dev_dvb_dvr.txt
dev_dvb_frontend.txt
dev_fb.txt
dev_floppy.txt
dev_hidraw.txt
dev_i2c.txt
dev_i915.txt
dev_img_rogue.txt
dev_infiniband_rdma.txt
dev_infiniband_rdma_cm.txt
dev_input.txt
dev_iommu.txt
dev_kvm.txt
dev_kvm_amd64.txt
dev_kvm_arm64.txt
dev_kvm_extra.txt
dev_kvm_riscv64.txt
dev_loop.txt
dev_mali.txt
dev_media.txt
dev_msm.txt
dev_msr.txt
dev_nbd.txt
dev_net_tun.txt
dev_panthor.txt
dev_ppp.txt
dev_ptmx.txt
dev_ptp.txt
dev_qat_adf_ctl.txt
dev_qrtr_tun.txt
dev_random.txt
dev_rfkill.txt
dev_rtc.txt
dev_sequencer.txt
dev_sg.txt
dev_snapshot.txt
dev_snd_control.txt
dev_snd_hw.txt
dev_snd_midi.txt
dev_snd_pcm.txt
dev_snd_seq.txt
dev_snd_timer.txt
dev_sr.txt
dev_sw_sync.txt
dev_tlk_device.txt
dev_trusty.txt
dev_udmabuf.txt
dev_uhid.txt
dev_uinput.txt
dev_usb_hiddev.txt
dev_usbmon.txt
dev_userio.txt
dev_vfio.txt
dev_vga_arbiter.txt
dev_vhci.txt
dev_video4linux.txt
dev_video4linux_vim2m.txt
dev_virtual_nci.txt
dev_vtpm.txt
fanotify.txt
filesystem.txt
fs_9p.txt
fs_fuse.txt
fs_incfs.txt
fs_ioctl.txt
fs_ioctl_autofs.txt
fs_ioctl_btrfs.txt
fs_ioctl_ext4.txt
fs_ioctl_f2fs.txt
fs_ioctl_fat.txt
fs_ioctl_fscrypt.txt
fs_ioctl_fsverity.txt
fs_ioctl_xfs.txt
futex.txt
hafnium.txt
inotify.txt
io_uring.txt
ipc.txt
key.txt
kfuzztest.txt
l2cap.txt
landlock.txt
lsm.txt
namespaces.txt
net_80211.txt
netfilter.txt
netfilter_arp.txt
netfilter_bridge.txt
netfilter_ipv4.txt
netfilter_ipv6.txt
netfilter_ipvs.txt
netfilter_targets.txt
pagemap_ioctl.txt
perf.txt
prctl.txt
quotactl.txt
seccomp.txt
security_apparmor.txt
security_selinux.txt
security_smack.txt
socket.txt
socket_alg.txt
socket_ax25.txt
socket_bluetooth.txt
socket_caif.txt
socket_can.txt
socket_ieee802154.txt
socket_inet.txt
socket_inet6.txt
socket_inet_dccp.txt
socket_inet_icmp.txt
socket_inet_igmp.txt
socket_inet_l2tp.txt
socket_inet_sctp.txt
socket_inet_tcp.txt
socket_inet_udp.txt
socket_ip_tunnel.txt
socket_isdn.txt
socket_kcm.txt
socket_key.txt
socket_llc.txt
socket_netlink.txt
socket_netlink_audit.txt
socket_netlink_crypto.txt
socket_netlink_generic.txt
socket_netlink_generic_80211.txt
socket_netlink_generic_batadv.txt
socket_netlink_generic_devlink.txt
socket_netlink_generic_ethtool.txt
socket_netlink_generic_fou.txt
socket_netlink_generic_gtp.txt
socket_netlink_generic_mptcp.txt
socket_netlink_generic_net_dm.txt
socket_netlink_generic_netlabel.txt
socket_netlink_generic_nfc.txt
socket_netlink_generic_seg6.txt
socket_netlink_generic_smc.txt
socket_netlink_generic_team.txt
socket_netlink_generic_wireguard.txt
socket_netlink_netfilter.txt
socket_netlink_netfilter_acct.txt
socket_netlink_netfilter_conntrack.txt
socket_netlink_netfilter_conntrack_exp.txt
socket_netlink_netfilter_conntrack_helper.txt
socket_netlink_netfilter_ipset.txt
socket_netlink_netfilter_log.txt
socket_netlink_netfilter_nft_compat.txt
socket_netlink_netfilter_nftables.txt
socket_netlink_netfilter_osf.txt
socket_netlink_netfilter_queue.txt
socket_netlink_netfilter_timeout.txt
socket_netlink_rdma.txt
socket_netlink_route.txt
socket_netlink_route_sched.txt
socket_netlink_route_sched_retired.txt
socket_netlink_sock_diag.txt
socket_netlink_xfrm.txt
socket_netrom.txt
socket_nfc.txt
socket_nvme_of_tcp.txt
socket_packet.txt
socket_phonet.txt
socket_pppox.txt
socket_qipcrtr.txt
socket_rds.txt
socket_rose.txt
socket_rxrpc.txt
socket_tipc.txt
socket_tipc_netlink.txt
socket_unix.txt
socket_vnet.txt
socket_x25.txt
socket_xdp.txt
sys.txt
uffd.txt
usbip.txt
vmw_vmci.txt
vnet.txt
vnet_mptcp.txt
vusb.txt
watch_queue.txt
xattr.txt
Reply: r0 = syz_open_dev(&(0x7f0000000000)='video#\x00', 0x2, 0x0)
r1 = dup(r0)
ioctl$VIDIOC_REQBUFS(r0, 0xc0145608, &(0x7f0000000040)={0xc8, 0x1, 0x1, 0x0, 0x0})
ioctl$VIDIOC_CREATE_BUFS(r0, 0xc100565c, &(0x7f0000000080)={0x0, 0xc8, 0x1, {0x1, 0x0, 0x0, 0x0, 0x0, {0x0, 0x0, 0x0, 0x0}}, {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}})
read(r0, &(0x7f0000000100), 0x20)
close_range(r0, r1, 0x0) |
| 5/2 | 2026/03/06 21:07 | llm | crash-repro-finder |
4mModel:gemini-3-pro-preview Tokens: input: 7247 output: 52 thoughts: 27069 Thoughts: **Analyzing a KASAN Slab-Out-of-Bounds Read in `__vb2_queue_cancel`** Okay, so I've got this crash report pointing to a slab-out-of-bounds read within the `videobuf2-core` module, specifically in `__vb2_queue_cancel`. The call trace strongly suggests that this is related to the V4L2 subsystem, likely triggered through the `vivid` test driver, and probably linked to how file descriptors for the V4L2 device are closed when `fileio` (read/write emulation) is involved. It's happening during the cleanup process. The specific out-of-bounds access is on a `kmalloc-2k` object. The address being read is well past the end of the allocated region. This immediately screams a use-after-free scenario, or perhaps a type confusion. I'm leaning toward use-after-free because KASAN is reporting `slab-out-of-bounds` which suggests the memory has been reallocated to something of a different size or that the index is off. However, that stack trace mentioning `qdisc_alloc` is incredibly important. That `qdisc_alloc` allocation is very suspicious. It implies that the memory originally allocated for buffers is now being used for a `Qdisc` object. Since the read access happens within a loop that indexes through buffers (`q->bufs`), it means the pointer `q->bufs` is stale, pointing to memory that's now a completely different kind of object. This means the original buffer array was freed, and the memory reused for the Qdisc. This confirms it's a Use-After-Free scenario. The code in `__vb2_queue_cancel` iterates through the buffer array (`q->bufs`) based on `q->num_buffers`. If `q->bufs` has been freed and reallocated to something else, and `q->num_buffers` is still pointing to the old (and likely larger) buffer count, or the `q->bufs` pointer itself is stale, then we'll get an out-of-bounds read as it iterates. The crux of the problem seems to be the timing of `__vb2_queue_cancel` execution relative to when the `q->bufs` array is freed and then reallocated. `__vb2_queue_cancel` is called from `vb2_core_streamoff`, which is called from `__vb2_cleanup_fileio`, which in turn, is called from `vb2_core_queue_release`. This is happening during the close operation. It's a race or state confusion between `fileio` operation during read() with buffers, and buffer allocation during cleanup. The memory for buffers gets freed and reallocated, but the queue release or file cleanup operation is still using the old pointer and buffer count. It's likely related to how the buffers are handled when both `read()` and `close()` are involved and that the device is being configured. A specific condition, involving how buffer allocations are requested and subsequently freed, likely triggers the memory reuse and thus the out of bounds access. So, I need to craft a syzkaller program that opens the video device, performs `read()` or `write()` calls to initialize the fileio operation (which is key to triggering `__vb2_cleanup_fileio`), and then closes the device. The crash most likely occurs on the `close()` operation. Maybe it has something to do with `reqbufs` and how they're used to set up buffers as well. The goal is to get the system into a state where `q->bufs` is freed while the cleanup routine is still in progress, using the old stale pointer to the freed buffer data structure. |
| 6/2 | 2026/03/06 21:12 | tool | set-results |
0mArgs:map[ReproOpts:{
"procs": 1,
"type": "none",
"repeat": true,
"sandbox": "none"
}]Results: map[ReproOpts:{
"procs": 1,
"type": "none",
"repeat": true,
"sandbox": "none"
}] |
| 7/2 | 2026/03/06 21:12 | llm | crash-repro-finder |
0mModel:gemini-3-pro-preview Tokens: input: 35218 output: 302 thoughts: 1871 Thoughts: **Generating a Syzkaller Program for Video Device Interaction**
Okay, so the goal is to construct a syzkaller program that effectively interacts with a `/dev/video0` device. My strategy here is to target key functions: `vb2_core_reqbufs`, `vb2_core_create_bufs`, `vb2_read` (through file IO), and `vb2_core_queue_release` (by cancellation).
I'll start with the base sequence: open the device, request buffers (`VIDIOC_REQBUFS`), create buffers (`VIDIOC_CREATE_BUFS`), read from the device, and then close it. The initial syscall sequence I have in mind is:
```
r0 = syz_open_dev(&(0x7f0000000000)='video#\x00', 0x2, 0x0)
ioctl$VIDIOC_REQBUFS(r0, 0xc0145608, &(0x7f0000000040)={0x14, 0x1, 0x1, 0x0, 0x0})
ioctl$VIDIOC_CREATE_BUFS(r0, 0xc100565c, &(0x7f0000000080)={0x0, 0x14, 0x1, {0x1, 0x0, 0x0, 0x0, 0x0, {0x0, 0x0, 0x0, 0x0}}, {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}})
read(r0, &(0x7f0000000100), 0x20)
close(r0)
```
Now, the `VIDIOC_CREATE_BUFS` structure is where I need to pay close attention to the details. Let's make sure I'm setting the fields correctly. Let me recall the `struct v4l2_create_buffers` members and their types:
* `index` (u32)
* `count` (u32)
* `memory` (u32)
* `format` (struct v4l2_format)
* `reserved` (u32[8])
And `v4l2_format`:
* `type` (u32)
* `fmt` (union)
I'll use `0xc100565c` as the `VIDIOC_CREATE_BUFS` constant and configure the structure.
`index` will be set to 0. (It's usually ignored, or specifies a start index).
I will configure the buffers with `count` as 20 (`0x14`).
`memory` is set to 1 (MMAP).
`format.type` is set to 1 (CAPTURE).
`format.fmt` will use the default value, 0.
Based on this, the program should be:
```
r0 = syz_open_dev(&(0x7f0000000000)='video#\x00', 0x2, 0x0)
ioctl$VIDIOC_REQBUFS(r0, 0xc0145608, &(0x7f0000000040)={0x14, 0x1, 0x1, 0x0, 0x0})
ioctl$VIDIOC_CREATE_BUFS(r0, 0xc100565c, &(0x7f0000000080)={0x0, 0x14, 0x1, {0x1, 0x0, 0x0, 0x0, 0x0, {0x0, 0x0, 0x0, 0x0}}, {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}})
read(r0, &(0x7f0000000100), 0x20)
close(r0)
```
Looks good. Just to match the style I've seen in other reports,
|
| Total Calls | Total Tokens | Avg Tokens | Total Duration (Seconds) | Avg Duration (Seconds) |
|---|
| Total Calls | Total Duration (Seconds) | Avg Duration (Seconds) |
|---|