syzbot |
sign-in | mailing list | source | docs | 🏰 |
| ID | Workflow | Result | Correct | Bug | Created | Started | Finished | Revision | Error |
|---|---|---|---|---|---|---|---|---|---|
| dbdce66d-9f5c-4e7a-87be-c539596ca30b | repro | ❓ | general protection fault in __hfsplus_brec_find | 2026/03/06 11:36 | 2026/03/06 11:36 | 2026/03/06 11:45 | 31e9c887f7dc24e04b3ca70d0d54fc34141844b0 |
syz_mount_image$hfsplus(&(0x7f0000000000)='hfsplus\x00', &(0x7f0000000100)='./file0\x00', 0x0, 0x0, 0x0, 0x0, 0x0) mknodat(0xffffffffffffff9c, &(0x7f0000000200)='./file0/file0\x00', 0x0, 0x0)
31e9c887f7dc24e04b3ca70d0d54fc34141844b0
loop0: detected capacity change from 0 to 1024 Oops: general protection fault, probably for non-canonical address 0xdffffc0000000002: 0000 [#1] SMP KASAN NOPTI KASAN: null-ptr-deref in range [0x0000000000000010-0x0000000000000017] CPU: 0 UID: 0 PID: 5337 Comm: syz.0.0 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 RIP: 0010:__hfsplus_brec_find+0xad/0x480 fs/hfsplus/bfind.c:113 Code: 74 24 28 4d 85 f6 0f 84 db 03 00 00 66 c7 44 24 60 00 00 c7 84 24 80 00 00 00 00 00 00 00 4d 8d 74 24 18 4c 89 f0 48 c1 e8 03 <42> 0f b6 04 28 84 c0 0f 85 d6 02 00 00 48 89 5c 24 30 41 0f b7 06 RSP: 0000:ffffc9000dba76e0 EFLAGS: 00010202 RAX: 0000000000000002 RBX: 1ffff92001b74ee4 RCX: ffff888035fb24c0 RDX: 0000000000000000 RSI: ffffc9000dba79e0 RDI: fffffffffffffffb RBP: ffffc9000dba77d0 R08: 0000030000000600 R09: 0000030000000600 R10: dffffc0000000000 R11: ffffed100822cc01 R12: fffffffffffffffb R13: dffffc0000000000 R14: 0000000000000013 R15: ffffc9000dba79e0 FS: 00007fe9a62126c0(0000) GS:ffff88808d414000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007fffbfa97fc0 CR3: 0000000041be5000 CR4: 0000000000352ef0 Call Trace: <TASK> hfsplus_brec_insert+0x8c6/0xd70 fs/hfsplus/brec.c:160 hfsplus_create_cat+0x9a9/0x10d0 fs/hfsplus/catalog.c:308 hfsplus_mknod+0x16a/0x290 fs/hfsplus/dir.c:494 vfs_create+0x3aa/0x400 fs/namei.c:4132 do_mknodat+0x3ea/0x610 fs/namei.c:5039 __do_sys_mknod fs/namei.c:5076 [inline] __se_sys_mknod fs/namei.c:5074 [inline] __x64_sys_mknod+0x8c/0xa0 fs/namei.c:5074 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] do_syscall_64+0xec/0xf80 arch/x86/entry/syscall_64.c:94 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7fe9a538f7c9 Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 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 73 01 c3 48 c7 c1 a8 ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007fe9a6212038 EFLAGS: 00000246 ORIG_RAX: 0000000000000085 RAX: ffffffffffffffda RBX: 00007fe9a55e5fa0 RCX: 00007fe9a538f7c9 RDX: 0000000000000701 RSI: 0000000000000000 RDI: 0000200000000000 RBP: 00007fe9a5413f91 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 R13: 00007fe9a55e6038 R14: 00007fe9a55e5fa0 R15: 00007fffbfa98798 </TASK> Modules linked in: ---[ end trace 0000000000000000 ]--- RIP: 0010:__hfsplus_brec_find+0xad/0x480 fs/hfsplus/bfind.c:113 Code: 74 24 28 4d 85 f6 0f 84 db 03 00 00 66 c7 44 24 60 00 00 c7 84 24 80 00 00 00 00 00 00 00 4d 8d 74 24 18 4c 89 f0 48 c1 e8 03 <42> 0f b6 04 28 84 c0 0f 85 d6 02 00 00 48 89 5c 24 30 41 0f b7 06 RSP: 0000:ffffc9000dba76e0 EFLAGS: 00010202 RAX: 0000000000000002 RBX: 1ffff92001b74ee4 RCX: ffff888035fb24c0 RDX: 0000000000000000 RSI: ffffc9000dba79e0 RDI: fffffffffffffffb RBP: ffffc9000dba77d0 R08: 0000030000000600 R09: 0000030000000600 R10: dffffc0000000000 R11: ffffed100822cc01 R12: fffffffffffffffb R13: dffffc0000000000 R14: 0000000000000013 R15: ffffc9000dba79e0 FS: 00007fe9a62126c0(0000) GS:ffff88808d414000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007fffbfa97fc0 CR3: 0000000041be5000 CR4: 0000000000352ef0 ---------------- Code disassembly (best guess): 0: 74 24 je 0x26 2: 28 4d 85 sub %cl,-0x7b(%rbp) 5: f6 0f 84 testb $0x84,(%rdi) 8: db 03 fildl (%rbx) a: 00 00 add %al,(%rax) c: 66 c7 44 24 60 00 00 movw $0x0,0x60(%rsp) 13: c7 84 24 80 00 00 00 movl $0x0,0x80(%rsp) 1a: 00 00 00 00 1e: 4d 8d 74 24 18 lea 0x18(%r12),%r14 23: 4c 89 f0 mov %r14,%rax 26: 48 c1 e8 03 shr $0x3,%rax * 2a: 42 0f b6 04 28 movzbl (%rax,%r13,1),%eax <-- trapping instruction 2f: 84 c0 test %al,%al 31: 0f 85 d6 02 00 00 jne 0x30d 37: 48 89 5c 24 30 mov %rbx,0x30(%rsp) 3c: 41 0f b7 06 movzwl (%r14),%eax
| Seq | Timestamp | Type | Name | Duration |
|---|---|---|---|---|
| 0/0 | 2026/03/06 11:36 | flow | repro |
9mResults:map[ReproOpts: ReproSyz:syz_mount_image$hfsplus(&(0x7f0000000000)='hfsplus\x00', &(0x7f0000000100)='./file0\x00', 0x0, 0x0, 0x0, 0x0, 0x0) mknodat(0xffffffffffffff9c, &(0x7f0000000200)='./file0/file0\x00', 0x0, 0x0) SyzkallerCommit:31e9c887f7dc24e04b3ca70d0d54fc34141844b0] |
| 1/1 | 2026/03/06 11:36 | 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 11:36 | action | kernel-checkouter |
0mResults:map[KernelSrc:/usr/local/google/home/dvyukov/syzkaller/agent/workdir/cache/src/52d5b556e0818c1fa1e9e0ef8e0fa1ffbbead1f7] |
| 3/1 | 2026/03/06 11:37 | action | kernel-builder |
6mResults:map[KernelObj:/usr/local/google/home/dvyukov/syzkaller/agent/workdir/cache/build/1a0b3a775360b9f55f5d25c45a36903139b94e6f] |
| 4/1 | 2026/03/06 11:43 | agent | crash-repro-finder |
2mModel:gemini-3-pro-preview Results: map[ReproOpts:] 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: general protection fault in __hfsplus_brec_find Original Crash Report: loop0: detected capacity change from 0 to 1024 Oops: general protection fault, probably for non-canonical address 0xdffffc0000000002: 0000 [#1] SMP KASAN NOPTI KASAN: null-ptr-deref in range [0x0000000000000010-0x0000000000000017] CPU: 0 UID: 0 PID: 5337 Comm: syz.0.0 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 RIP: 0010:__hfsplus_brec_find+0xad/0x480 fs/hfsplus/bfind.c:113 Code: 74 24 28 4d 85 f6 0f 84 db 03 00 00 66 c7 44 24 60 00 00 c7 84 24 80 00 00 00 00 00 00 00 4d 8d 74 24 18 4c 89 f0 48 c1 e8 03 <42> 0f b6 04 28 84 c0 0f 85 d6 02 00 00 48 89 5c 24 30 41 0f b7 06 RSP: 0000:ffffc9000dba76e0 EFLAGS: 00010202 RAX: 0000000000000002 RBX: 1ffff92001b74ee4 RCX: ffff888035fb24c0 RDX: 0000000000000000 RSI: ffffc9000dba79e0 RDI: fffffffffffffffb RBP: ffffc9000dba77d0 R08: 0000030000000600 R09: 0000030000000600 R10: dffffc0000000000 R11: ffffed100822cc01 R12: fffffffffffffffb R13: dffffc0000000000 R14: 0000000000000013 R15: ffffc9000dba79e0 FS: 00007fe9a62126c0(0000) GS:ffff88808d414000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007fffbfa97fc0 CR3: 0000000041be5000 CR4: 0000000000352ef0 Call Trace: <TASK> hfsplus_brec_insert+0x8c6/0xd70 fs/hfsplus/brec.c:160 hfsplus_create_cat+0x9a9/0x10d0 fs/hfsplus/catalog.c:308 hfsplus_mknod+0x16a/0x290 fs/hfsplus/dir.c:494 vfs_create+0x3aa/0x400 fs/namei.c:4132 do_mknodat+0x3ea/0x610 fs/namei.c:5039 __do_sys_mknod fs/namei.c:5076 [inline] __se_sys_mknod fs/namei.c:5074 [inline] __x64_sys_mknod+0x8c/0xa0 fs/namei.c:5074 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] do_syscall_64+0xec/0xf80 arch/x86/entry/syscall_64.c:94 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7fe9a538f7c9 Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 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 73 01 c3 48 c7 c1 a8 ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007fe9a6212038 EFLAGS: 00000246 ORIG_RAX: 0000000000000085 RAX: ffffffffffffffda RBX: 00007fe9a55e5fa0 RCX: 00007fe9a538f7c9 RDX: 0000000000000701 RSI: 0000000000000000 RDI: 0000200000000000 RBP: 00007fe9a5413f91 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 R13: 00007fe9a55e6038 R14: 00007fe9a55e5fa0 R15: 00007fffbfa98798 </TASK> Modules linked in: ---[ end trace 0000000000000000 ]--- RIP: 0010:__hfsplus_brec_find+0xad/0x480 fs/hfsplus/bfind.c:113 Code: 74 24 28 4d 85 f6 0f 84 db 03 00 00 66 c7 44 24 60 00 00 c7 84 24 80 00 00 00 00 00 00 00 4d 8d 74 24 18 4c 89 f0 48 c1 e8 03 <42> 0f b6 04 28 84 c0 0f 85 d6 02 00 00 48 89 5c 24 30 41 0f b7 06 RSP: 0000:ffffc9000dba76e0 EFLAGS: 00010202 RAX: 0000000000000002 RBX: 1ffff92001b74ee4 RCX: ffff888035fb24c0 RDX: 0000000000000000 RSI: ffffc9000dba79e0 RDI: fffffffffffffffb RBP: ffffc9000dba77d0 R08: 0000030000000600 R09: 0000030000000600 R10: dffffc0000000000 R11: ffffed100822cc01 R12: fffffffffffffffb R13: dffffc0000000000 R14: 0000000000000013 R15: ffffc9000dba79e0 FS: 00007fe9a62126c0(0000) GS:ffff88808d414000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007fffbfa97fc0 CR3: 0000000041be5000 CR4: 0000000000352ef0 ---------------- Code disassembly (best guess): 0: 74 24 je 0x26 2: 28 4d 85 sub %cl,-0x7b(%rbp) 5: f6 0f 84 testb $0x84,(%rdi) 8: db 03 fildl (%rbx) a: 00 00 add %al,(%rax) c: 66 c7 44 24 60 00 00 movw $0x0,0x60(%rsp) 13: c7 84 24 80 00 00 00 movl $0x0,0x80(%rsp) 1a: 00 00 00 00 1e: 4d 8d 74 24 18 lea 0x18(%r12),%r14 23: 4c 89 f0 mov %r14,%rax 26: 48 c1 e8 03 shr $0x3,%rax * 2a: 42 0f b6 04 28 movzbl (%rax,%r13,1),%eax <-- trapping instruction 2f: 84 c0 test %al,%al 31: 0f 85 d6 02 00 00 jne 0x30d 37: 48 89 5c 24 30 mov %rbx,0x30(%rsp) 3c: 41 0f b7 06 movzwl (%r14),%eax 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: syz_mount_image$hfsplus(&(0x7f0000000000)='hfsplus\x00', &(0x7f0000000100)='./file0\x00', 0x0, 0x0, 0x0, 0x0, 0x0) mknodat(0xffffffffffffff9c, &(0x7f0000000200)='./file0/file0\x00', 0x0, 0x0) |
| 5/2 | 2026/03/06 11:43 | llm | crash-repro-finder |
2mModel:gemini-3-pro-preview Tokens: input: 4797 output: 17 thoughts: 17157 Thoughts: **Analysis of a syzkaller Program to Trigger an HFS+ General Protection Fault** Okay, so the goal is to craft a syzkaller program that makes the kernel crash with a "general protection fault" inside `__hfsplus_brec_find`. The crash report points directly to `fs/hfsplus/bfind.c:113`, which means we're dealing with a specific issue within the HFS+ filesystem implementation. The call trace shows `mknod` is at the core of this, with a path going: `hfsplus_brec_insert` -> `hfsplus_create_cat` -> `hfsplus_mknod` -> `vfs_create` -> `do_mknodat` -> `__x64_sys_mknod`. This tells me that creating a file (`mknod`) is the action that triggers the flaw in the HFS+ code. The fault itself seems like a classic KASAN null-pointer dereference or a general protection fault triggered by bad pointer manipulation. The crash address `0xdffffc0000000002` looks like a KASAN shadow address that reflects an invalid pointer value. The disassembled code highlights the problem: we're trying to read a byte from a memory address calculated from `r12`. Now, `r12` is `0xfffffffffffffffb`, or -5. The KASAN check suggests the calculation went wrong; `-5` is being interpreted as a pointer, but it’s actually an error code (`-EIO` or something similar). `hfs_bnode_find` is the likely culprit. This function, inside `fs/hfsplus/bnode.c`, is designed to locate a specific B-tree node. If it fails, it usually returns an `ERR_PTR` (a pointer representation of an error). The crash occurs because the code isn't checking `IS_ERR()` to see if `hfs_bnode_find`'s return value is a valid pointer or an error, and it's attempting to dereference the result, which is `ERR_PTR(-EIO)` represented by -5, hence crashing KASAN. The trace suggests this happens during B-tree insertion, specifically within `hfsplus_brec_insert`, which in turn calls `hfs_brec_find` to find the correct spot for a new catalog entry. The code flow is critical: `hfs_brec_find` should call `hfs_bnode_find`, check if the result is an error using `IS_ERR`, and *then* handle the error (which usually means returning it). The vulnerability is if that check is missing, or if it is performed, but then the error is ignored, and the invalid pointer used. I've looked at the source of `fs/hfsplus/bfind.c` and it *should* have a check, which makes me suspect a more subtle issue: perhaps inlining of the function, or a race condition, or perhaps there are cases where the check is missed due to a code path, likely when there is a node split operation. This all leads me to believe that a corrupted HFS+ image is the key. Specifically, the catalog B-tree must be damaged somehow so that `hfs_bnode_find` returns this -EIO. When `mknod` tries to create an entry, the damaged B-tree lookup causes the error to be returned, and if it's not handled, we get a crash. I'm going to construct a syzkaller program that mounts an HFS+ filesystem and then tries to create a file (`mknod`), with the expectation that syzkaller’s fuzzing will find a way to corrupt the filesystem such that this -EIO return value is not handled. The program is pretty straightforward: ``` syz_mount_image$hfsplus(&(0x7f0000000000)='hfsplus\x00', &(0x7f0000000100)='./file0\x00', 0x0, 0x0, 0x0, 0x0, 0x0) mknodat(0xffffffffffffff9c, &(0x7f0000000200)='./file0/file0\x00', 0x0, 0x0) ``` The success depends on the image being corrupted, but this should be enough to trigger it with some fuzzing. |
| 6/2 | 2026/03/06 11:45 | tool | set-results |
0mArgs:map[ReproOpts:] Results: map[ReproOpts:] |
| 7/2 | 2026/03/06 11:45 | llm | crash-repro-finder |
0mModel:gemini-3-pro-preview Tokens: input: 22986 output: 135 thoughts: 0 |
| Total Calls | Total Tokens | Avg Tokens | Total Duration (Seconds) | Avg Duration (Seconds) |
|---|
| Total Calls | Total Duration (Seconds) | Avg Duration (Seconds) |
|---|