syzbot


KASAN: null-ptr-deref Write in rust_binderfs_remove_file

Status: internal: reported C repro on 2025/06/19 09:28
Reported-by: syzbot+e07081c070880c14a309@syzkaller.appspotmail.com
First crash: 1d16h, last: 5m

Sample crash report:
==================================================================
BUG: KASAN: null-ptr-deref in instrument_atomic_read_write include/linux/instrumented.h:96 [inline]
BUG: KASAN: null-ptr-deref in atomic_long_try_cmpxchg_acquire include/linux/atomic/atomic-instrumented.h:4456 [inline]
BUG: KASAN: null-ptr-deref in rwsem_write_trylock kernel/locking/rwsem.c:284 [inline]
BUG: KASAN: null-ptr-deref in __down_write_common kernel/locking/rwsem.c:1370 [inline]
BUG: KASAN: null-ptr-deref in __down_write kernel/locking/rwsem.c:1380 [inline]
BUG: KASAN: null-ptr-deref in down_write+0x83/0x2a0 kernel/locking/rwsem.c:1647
Write of size 8 at addr 0000000000000098 by task kworker/0:1/10

CPU: 0 UID: 0 PID: 10 Comm: kworker/0:1 Not tainted 6.12.23-syzkaller-g30b14cdad458 #0 c708c6bafa1314b3e84c64b9f03b67766970ebbd
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 05/07/2025
Workqueue: events _RNvXs6_NtCs43vyB533jt3_6kernel9workqueueINtNtNtB7_4sync3arc3ArcNtNtCshgDM7dBCdno_11rust_binder7process7ProcessEINtB5_15WorkItemPointerKy0_E3runB13_
Call Trace:
 <TASK>
 __dump_stack+0x21/0x30 lib/dump_stack.c:94
 dump_stack_lvl+0x10c/0x190 lib/dump_stack.c:120
 print_report+0x3d/0x70 mm/kasan/report.c:491
 kasan_report+0x163/0x1a0 mm/kasan/report.c:601
 check_region_inline mm/kasan/generic.c:-1 [inline]
 kasan_check_range+0x299/0x2a0 mm/kasan/generic.c:189
 __kasan_check_write+0x18/0x20 mm/kasan/shadow.c:37
 instrument_atomic_read_write include/linux/instrumented.h:96 [inline]
 atomic_long_try_cmpxchg_acquire include/linux/atomic/atomic-instrumented.h:4456 [inline]
 rwsem_write_trylock kernel/locking/rwsem.c:284 [inline]
 __down_write_common kernel/locking/rwsem.c:1370 [inline]
 __down_write kernel/locking/rwsem.c:1380 [inline]
 down_write+0x83/0x2a0 kernel/locking/rwsem.c:1647
 inode_lock include/linux/fs.h:815 [inline]
 rust_binderfs_remove_file+0x6c/0x110 drivers/android/binder/rust_binderfs.c:505
 <rust_binder::BinderfsProcFile as core::ops::drop::Drop>::drop drivers/android/binder/rust_binder.rs:627 [inline]
 core::ptr::drop_in_place::<rust_binder::BinderfsProcFile> usr/local/rustup/toolchains/1.87.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:523 [inline]
 core::ptr::drop_in_place::<core::option::Option<rust_binder::BinderfsProcFile>> usr/local/rustup/toolchains/1.87.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:523 [inline]
 core::mem::drop::<core::option::Option<rust_binder::BinderfsProcFile>> usr/local/rustup/toolchains/1.87.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/mem/mod.rs:935 [inline]
 <rust_binder::process::Process>::deferred_release drivers/android/binder/process.rs:1286 [inline]
 <rust_binder::process::Process as kernel::workqueue::WorkItem>::run+0x9d4/0x2860 drivers/android/binder/process.rs:483
 process_one_work kernel/workqueue.c:3238 [inline]
 process_scheduled_works+0x7d2/0x1020 kernel/workqueue.c:3319
 worker_thread+0xc58/0x1250 kernel/workqueue.c:3400
 kthread+0x2c7/0x370 kernel/kthread.c:389
 ret_from_fork+0x64/0xa0 arch/x86/kernel/process.c:153
 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244
 </TASK>
==================================================================
BUG: kernel NULL pointer dereference, address: 0000000000000098
#PF: supervisor write access in kernel mode
#PF: error_code(0x0002) - not-present page
PGD 0 P4D 0 
Oops: Oops: 0002 [#1] PREEMPT SMP KASAN PTI
CPU: 0 UID: 0 PID: 10 Comm: kworker/0:1 Tainted: G    B              6.12.23-syzkaller-g30b14cdad458 #0 c708c6bafa1314b3e84c64b9f03b67766970ebbd
Tainted: [B]=BAD_PAGE
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 05/07/2025
Workqueue: events _RNvXs6_NtCs43vyB533jt3_6kernel9workqueueINtNtNtB7_4sync3arc3ArcNtNtCshgDM7dBCdno_11rust_binder7process7ProcessEINtB5_15WorkItemPointerKy0_E3runB13_
RIP: 0010:arch_atomic64_try_cmpxchg arch/x86/include/asm/atomic64_64.h:101 [inline]
RIP: 0010:raw_atomic64_try_cmpxchg_acquire include/linux/atomic/atomic-arch-fallback.h:4296 [inline]
RIP: 0010:raw_atomic_long_try_cmpxchg_acquire include/linux/atomic/atomic-long.h:1482 [inline]
RIP: 0010:atomic_long_try_cmpxchg_acquire include/linux/atomic/atomic-instrumented.h:4458 [inline]
RIP: 0010:rwsem_write_trylock kernel/locking/rwsem.c:284 [inline]
RIP: 0010:__down_write_common kernel/locking/rwsem.c:1370 [inline]
RIP: 0010:__down_write kernel/locking/rwsem.c:1380 [inline]
RIP: 0010:down_write+0x9a/0x2a0 kernel/locking/rwsem.c:1647
Code: 48 c7 44 24 20 00 00 00 00 be 08 00 00 00 e8 9d 40 55 fc 4c 89 f7 be 08 00 00 00 e8 90 40 55 fc 48 8b 44 24 20 b9 01 00 00 00 <f0> 48 0f b1 0b 0f 85 a0 00 00 00 48 c7 c0 c0 b9 20 87 48 c1 e8 03
RSP: 0018:ffffc900000a7500 EFLAGS: 00010256
RAX: 0000000000000000 RBX: 0000000000000098 RCX: 0000000000000001
RDX: 0000000000000001 RSI: 0000000000000008 RDI: ffffc900000a7520
RBP: ffffc900000a7598 R08: ffffc900000a7527 R09: 1ffff92000014ea4
R10: dffffc0000000000 R11: fffff52000014ea5 R12: dffffc0000000000
R13: 1ffff92000014ea0 R14: ffffc900000a7520 R15: 0000000000000000
FS:  0000000000000000(0000) GS:ffff8881f6e00000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000000000098 CR3: 00000000072aa000 CR4: 00000000003526b0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
 <TASK>
 inode_lock include/linux/fs.h:815 [inline]
 rust_binderfs_remove_file+0x6c/0x110 drivers/android/binder/rust_binderfs.c:505
 <rust_binder::BinderfsProcFile as core::ops::drop::Drop>::drop drivers/android/binder/rust_binder.rs:627 [inline]
 core::ptr::drop_in_place::<rust_binder::BinderfsProcFile> usr/local/rustup/toolchains/1.87.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:523 [inline]
 core::ptr::drop_in_place::<core::option::Option<rust_binder::BinderfsProcFile>> usr/local/rustup/toolchains/1.87.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:523 [inline]
 core::mem::drop::<core::option::Option<rust_binder::BinderfsProcFile>> usr/local/rustup/toolchains/1.87.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/mem/mod.rs:935 [inline]
 <rust_binder::process::Process>::deferred_release drivers/android/binder/process.rs:1286 [inline]
 <rust_binder::process::Process as kernel::workqueue::WorkItem>::run+0x9d4/0x2860 drivers/android/binder/process.rs:483
 process_one_work kernel/workqueue.c:3238 [inline]
 process_scheduled_works+0x7d2/0x1020 kernel/workqueue.c:3319
 worker_thread+0xc58/0x1250 kernel/workqueue.c:3400
 kthread+0x2c7/0x370 kernel/kthread.c:389
 ret_from_fork+0x64/0xa0 arch/x86/kernel/process.c:153
 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244
 </TASK>
Modules linked in:
CR2: 0000000000000098
---[ end trace 0000000000000000 ]---
RIP: 0010:arch_atomic64_try_cmpxchg arch/x86/include/asm/atomic64_64.h:101 [inline]
RIP: 0010:raw_atomic64_try_cmpxchg_acquire include/linux/atomic/atomic-arch-fallback.h:4296 [inline]
RIP: 0010:raw_atomic_long_try_cmpxchg_acquire include/linux/atomic/atomic-long.h:1482 [inline]
RIP: 0010:atomic_long_try_cmpxchg_acquire include/linux/atomic/atomic-instrumented.h:4458 [inline]
RIP: 0010:rwsem_write_trylock kernel/locking/rwsem.c:284 [inline]
RIP: 0010:__down_write_common kernel/locking/rwsem.c:1370 [inline]
RIP: 0010:__down_write kernel/locking/rwsem.c:1380 [inline]
RIP: 0010:down_write+0x9a/0x2a0 kernel/locking/rwsem.c:1647
Code: 48 c7 44 24 20 00 00 00 00 be 08 00 00 00 e8 9d 40 55 fc 4c 89 f7 be 08 00 00 00 e8 90 40 55 fc 48 8b 44 24 20 b9 01 00 00 00 <f0> 48 0f b1 0b 0f 85 a0 00 00 00 48 c7 c0 c0 b9 20 87 48 c1 e8 03
RSP: 0018:ffffc900000a7500 EFLAGS: 00010256
RAX: 0000000000000000 RBX: 0000000000000098 RCX: 0000000000000001
RDX: 0000000000000001 RSI: 0000000000000008 RDI: ffffc900000a7520
RBP: ffffc900000a7598 R08: ffffc900000a7527 R09: 1ffff92000014ea4
R10: dffffc0000000000 R11: fffff52000014ea5 R12: dffffc0000000000
R13: 1ffff92000014ea0 R14: ffffc900000a7520 R15: 0000000000000000
FS:  0000000000000000(0000) GS:ffff8881f6e00000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000000000098 CR3: 00000000072aa000 CR4: 00000000003526b0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
----------------
Code disassembly (best guess):
   0:	48 c7 44 24 20 00 00 	movq   $0x0,0x20(%rsp)
   7:	00 00
   9:	be 08 00 00 00       	mov    $0x8,%esi
   e:	e8 9d 40 55 fc       	call   0xfc5540b0
  13:	4c 89 f7             	mov    %r14,%rdi
  16:	be 08 00 00 00       	mov    $0x8,%esi
  1b:	e8 90 40 55 fc       	call   0xfc5540b0
  20:	48 8b 44 24 20       	mov    0x20(%rsp),%rax
  25:	b9 01 00 00 00       	mov    $0x1,%ecx
* 2a:	f0 48 0f b1 0b       	lock cmpxchg %rcx,(%rbx) <-- trapping instruction
  2f:	0f 85 a0 00 00 00    	jne    0xd5
  35:	48 c7 c0 c0 b9 20 87 	mov    $0xffffffff8720b9c0,%rax
  3c:	48 c1 e8 03          	shr    $0x3,%rax

Crashes (20):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2025/06/19 11:26 android16-6.12 30b14cdad458 ed3e87f7 .config strace log report syz / log C [disk image] [vmlinux] [kernel image] ci2-android-6-12-rust KASAN: null-ptr-deref Write in rust_binderfs_remove_file
2025/06/21 01:09 android16-6.12 6c1c18fcb8b7 804b3919 .config console log report info [disk image] [vmlinux] [kernel image] ci2-android-6-12-rust KASAN: null-ptr-deref Write in rust_binderfs_remove_file
2025/06/21 00:52 android16-6.12 6c1c18fcb8b7 804b3919 .config console log report info [disk image] [vmlinux] [kernel image] ci2-android-6-12-rust KASAN: null-ptr-deref Write in rust_binderfs_remove_file
2025/06/21 00:47 android16-6.12 6c1c18fcb8b7 804b3919 .config console log report info [disk image] [vmlinux] [kernel image] ci2-android-6-12-rust KASAN: null-ptr-deref Write in rust_binderfs_remove_file
2025/06/20 21:08 android16-6.12 6c1c18fcb8b7 804b3919 .config console log report info [disk image] [vmlinux] [kernel image] ci2-android-6-12-rust KASAN: null-ptr-deref Write in rust_binderfs_remove_file
2025/06/20 19:25 android16-6.12 6c1c18fcb8b7 804b3919 .config console log report info [disk image] [vmlinux] [kernel image] ci2-android-6-12-rust KASAN: null-ptr-deref Write in rust_binderfs_remove_file
2025/06/20 15:15 android16-6.12 6c1c18fcb8b7 804b3919 .config console log report info [disk image] [vmlinux] [kernel image] ci2-android-6-12-rust KASAN: null-ptr-deref Write in rust_binderfs_remove_file
2025/06/20 08:36 android16-6.12 6c1c18fcb8b7 ed3e87f7 .config console log report info [disk image] [vmlinux] [kernel image] ci2-android-6-12-rust KASAN: null-ptr-deref Write in rust_binderfs_remove_file
2025/06/20 08:34 android16-6.12 6c1c18fcb8b7 ed3e87f7 .config console log report info [disk image] [vmlinux] [kernel image] ci2-android-6-12-rust KASAN: null-ptr-deref Write in rust_binderfs_remove_file
2025/06/20 08:33 android16-6.12 6c1c18fcb8b7 ed3e87f7 .config console log report info [disk image] [vmlinux] [kernel image] ci2-android-6-12-rust KASAN: null-ptr-deref Write in rust_binderfs_remove_file
2025/06/20 07:23 android16-6.12 6c1c18fcb8b7 ed3e87f7 .config console log report info [disk image] [vmlinux] [kernel image] ci2-android-6-12-rust KASAN: null-ptr-deref Write in rust_binderfs_remove_file
2025/06/20 07:14 android16-6.12 6c1c18fcb8b7 ed3e87f7 .config console log report info [disk image] [vmlinux] [kernel image] ci2-android-6-12-rust KASAN: null-ptr-deref Write in rust_binderfs_remove_file
2025/06/20 06:23 android16-6.12 f9fbc66f8444 ed3e87f7 .config console log report info [disk image] [vmlinux] [kernel image] ci2-android-6-12-rust KASAN: null-ptr-deref Write in rust_binderfs_remove_file
2025/06/20 03:37 android16-6.12 f9fbc66f8444 ed3e87f7 .config console log report info [disk image] [vmlinux] [kernel image] ci2-android-6-12-rust KASAN: null-ptr-deref Write in rust_binderfs_remove_file
2025/06/20 02:15 android16-6.12 f9fbc66f8444 ed3e87f7 .config console log report info [disk image] [vmlinux] [kernel image] ci2-android-6-12-rust KASAN: null-ptr-deref Write in rust_binderfs_remove_file
2025/06/20 00:08 android16-6.12 f9fbc66f8444 ed3e87f7 .config console log report info [disk image] [vmlinux] [kernel image] ci2-android-6-12-rust KASAN: null-ptr-deref Write in rust_binderfs_remove_file
2025/06/19 19:13 android16-6.12 f9fbc66f8444 ed3e87f7 .config console log report info [disk image] [vmlinux] [kernel image] ci2-android-6-12-rust KASAN: null-ptr-deref Write in rust_binderfs_remove_file
2025/06/19 18:20 android16-6.12 f9fbc66f8444 ed3e87f7 .config console log report info [disk image] [vmlinux] [kernel image] ci2-android-6-12-rust KASAN: null-ptr-deref Write in rust_binderfs_remove_file
2025/06/19 15:14 android16-6.12 30b14cdad458 ed3e87f7 .config console log report info [disk image] [vmlinux] [kernel image] ci2-android-6-12-rust KASAN: null-ptr-deref Write in rust_binderfs_remove_file
2025/06/19 09:09 android16-6.12 30b14cdad458 ed3e87f7 .config console log report info [disk image] [vmlinux] [kernel image] ci2-android-6-12-rust KASAN: null-ptr-deref Write in rust_binderfs_remove_file
* Struck through repros no longer work on HEAD.