syzbot


general protection fault in write_all_supers

Status: upstream: reported C repro on 2025/07/26 11:00
Bug presence: origin:lts-only
[Documentation on labels]
Reported-by: syzbot+1df6dc78b7815d4d1974@syzkaller.appspotmail.com
First crash: 168d, last: 13d
Fix commit to backport (bisect log) :
tree: upstream
commit ad21f15b0f795daf8723dddbcb61797d4f1c2aed
Author: Josef Bacik <josef@toxicpanda.com>
Date: Wed Nov 22 17:17:50 2023 +0000

  btrfs: switch to the new mount API

  
Fix bisection: the issue occurs on the latest tested release (bisect log)
Crash: BUG: unable to handle kernel NULL pointer dereference in write_all_supers (log)
Repro: C syz .config
  
Bug presence (2)
Date Name Commit Repro Result
2025/07/28 linux-6.6.y (ToT) dbcb8d8e4163 C [report] general protection fault in write_all_supers
2025/07/27 upstream (ToT) 038d61fd6422 C Didn't crash
Similar bugs (3)
Kernel Title Rank 🛈 Repro Cause bisect Fix bisect Count Last Reported Patched Status
linux-5.15 BUG: unable to handle kernel paging request in write_all_supers origin:upstream 8 C error 13 18d 463d 0/3 upstream: reported C repro on 2024/10/04 18:21
upstream general protection fault in write_all_supers btrfs 8 C 21 444d 487d 28/29 fixed on 2024/11/12 23:31
linux-6.1 BUG: unable to handle kernel paging request in write_all_supers origin:upstream missing-backport 8 C inconclusive 56 8h45m 182d 0/3 upstream: reported C repro on 2025/07/13 03:08
Fix bisection attempts (2)
Created Duration User Patch Repo Result
2025/09/30 10:47 4h29m fix candidate upstream OK (1) job log
2025/09/08 09:50 1h58m bisect fix linux-6.6.y OK (0) job log log

Sample crash report:
BTRFS info (device loop0: state C): enabling ssd optimizations
BTRFS info (device loop0: state C): auto enabling async discard
BTRFS error (device loop0: state MC): nologreplay must be used with ro mount option
general protection fault, probably for non-canonical address 0xdffffc0000000003: 0000 [#1] PREEMPT SMP KASAN
KASAN: null-ptr-deref in range [0x0000000000000018-0x000000000000001f]
CPU: 1 PID: 5935 Comm: syz.0.17 Not tainted syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/25/2025
RIP: 0010:backup_super_roots fs/btrfs/disk-io.c:1668 [inline]
RIP: 0010:write_all_supers+0x8a7/0x3e60 fs/btrfs/disk-io.c:4079
Code: 10 48 8d 9a 9a 00 00 00 48 89 d8 48 c1 e8 03 42 0f b6 04 28 84 c0 0f 85 53 33 00 00 44 88 33 49 83 c4 18 4c 89 e0 48 c1 e8 03 <42> 80 3c 28 00 74 0d 4c 89 e7 e8 2a be 66 fe 48 8b 54 24 10 49 8b
RSP: 0018:ffffc900033f7400 EFLAGS: 00010206
RAX: 0000000000000003 RBX: ffff888079748bc5 RCX: 0000000000000000
RDX: ffff888079748b2b RSI: 0000000000000004 RDI: ffff888076f12a50
RBP: ffffc900033f77b0 R08: ffff888030bcc063 R09: 1ffff1100617980c
R10: dffffc0000000000 R11: ffffed100617980d R12: 0000000000000018
R13: dffffc0000000000 R14: 0000000000000000 R15: ffff888023802018
FS:  0000555570885500(0000) GS:ffff8880b8f00000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000558ef9c265f8 CR3: 000000005ff8e000 CR4: 00000000003506e0
Call Trace:
 <TASK>
 btrfs_commit_transaction+0x1e95/0x3760 fs/btrfs/transaction.c:2516
 btrfs_set_free_space_cache_v1_active+0x71/0x1c0 fs/btrfs/free-space-cache.c:4151
 btrfs_remount_cleanup fs/btrfs/super.c:1684 [inline]
 btrfs_remount+0x6cc/0x1470 fs/btrfs/super.c:1880
 reconfigure_super+0x21e/0x880 fs/super.c:1151
 do_remount fs/namespace.c:2927 [inline]
 path_mount+0xd19/0xfe0 fs/namespace.c:3705
 do_mount fs/namespace.c:3726 [inline]
 __do_sys_mount fs/namespace.c:3935 [inline]
 __se_sys_mount+0x2da/0x3c0 fs/namespace.c:3912
 do_syscall_x64 arch/x86/entry/common.c:51 [inline]
 do_syscall_64+0x55/0xb0 arch/x86/entry/common.c:81
 entry_SYSCALL_64_after_hwframe+0x68/0xd2
RIP: 0033:0x7f76d7b8f749
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:00007fff0196c188 EFLAGS: 00000246 ORIG_RAX: 00000000000000a5
RAX: ffffffffffffffda RBX: 00007f76d7de5fa0 RCX: 00007f76d7b8f749
RDX: 0000000000000000 RSI: 00002000000000c0 RDI: 0000000000000000
RBP: 00007f76d7c13f91 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000020 R11: 0000000000000246 R12: 0000000000000000
R13: 00007f76d7de5fa0 R14: 00007f76d7de5fa0 R15: 0000000000000005
 </TASK>
Modules linked in:
---[ end trace 0000000000000000 ]---
RIP: 0010:backup_super_roots fs/btrfs/disk-io.c:1668 [inline]
RIP: 0010:write_all_supers+0x8a7/0x3e60 fs/btrfs/disk-io.c:4079
Code: 10 48 8d 9a 9a 00 00 00 48 89 d8 48 c1 e8 03 42 0f b6 04 28 84 c0 0f 85 53 33 00 00 44 88 33 49 83 c4 18 4c 89 e0 48 c1 e8 03 <42> 80 3c 28 00 74 0d 4c 89 e7 e8 2a be 66 fe 48 8b 54 24 10 49 8b
RSP: 0018:ffffc900033f7400 EFLAGS: 00010206
RAX: 0000000000000003 RBX: ffff888079748bc5 RCX: 0000000000000000
RDX: ffff888079748b2b RSI: 0000000000000004 RDI: ffff888076f12a50
RBP: ffffc900033f77b0 R08: ffff888030bcc063 R09: 1ffff1100617980c
R10: dffffc0000000000 R11: ffffed100617980d R12: 0000000000000018
R13: dffffc0000000000 R14: 0000000000000000 R15: ffff888023802018
FS:  0000555570885500(0000) GS:ffff8880b8e00000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007f2c00174000 CR3: 000000005ff8e000 CR4: 00000000003506f0
----------------
Code disassembly (best guess), 1 bytes skipped:
   0:	48 8d 9a 9a 00 00 00 	lea    0x9a(%rdx),%rbx
   7:	48 89 d8             	mov    %rbx,%rax
   a:	48 c1 e8 03          	shr    $0x3,%rax
   e:	42 0f b6 04 28       	movzbl (%rax,%r13,1),%eax
  13:	84 c0                	test   %al,%al
  15:	0f 85 53 33 00 00    	jne    0x336e
  1b:	44 88 33             	mov    %r14b,(%rbx)
  1e:	49 83 c4 18          	add    $0x18,%r12
  22:	4c 89 e0             	mov    %r12,%rax
  25:	48 c1 e8 03          	shr    $0x3,%rax
* 29:	42 80 3c 28 00       	cmpb   $0x0,(%rax,%r13,1) <-- trapping instruction
  2e:	74 0d                	je     0x3d
  30:	4c 89 e7             	mov    %r12,%rdi
  33:	e8 2a be 66 fe       	call   0xfe66be62
  38:	48 8b 54 24 10       	mov    0x10(%rsp),%rdx
  3d:	49                   	rex.WB
  3e:	8b                   	.byte 0x8b

Crashes (9):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2025/12/28 21:06 linux-6.6.y 5fa4793a2d2d d6526ea3 .config console log report syz / log C [disk image] [vmlinux] [kernel image] [mounted in repro (clean fs)] ci2-linux-6-6-kasan general protection fault in write_all_supers
2025/07/26 14:25 linux-6.6.y dbcb8d8e4163 fb8f743d .config console log report syz / log C [disk image] [vmlinux] [kernel image] [mounted in repro (clean fs)] ci2-linux-6-6-kasan general protection fault in write_all_supers
2025/07/26 13:35 linux-6.6.y dbcb8d8e4163 fb8f743d .config console log report syz / log C [disk image] [vmlinux] [kernel image] [mounted in repro (clean fs)] ci2-linux-6-6-kasan general protection fault in write_all_supers
2025/07/26 12:41 linux-6.6.y dbcb8d8e4163 fb8f743d .config console log report syz / log C [disk image] [vmlinux] [kernel image] [mounted in repro (clean fs)] ci2-linux-6-6-kasan general protection fault in write_all_supers
2025/07/26 11:50 linux-6.6.y dbcb8d8e4163 fb8f743d .config console log report syz / log C [disk image] [vmlinux] [kernel image] [mounted in repro (clean fs)] ci2-linux-6-6-kasan general protection fault in write_all_supers
2025/12/28 20:24 linux-6.6.y 5fa4793a2d2d d6526ea3 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-6-6-kasan general protection fault in write_all_supers
2025/08/02 12:40 linux-6.6.y 3a8ababb8b6a 7368264b .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-6-6-kasan general protection fault in write_all_supers
2025/07/26 11:00 linux-6.6.y dbcb8d8e4163 fb8f743d .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-6-6-kasan general protection fault in write_all_supers
2025/07/26 10:59 linux-6.6.y dbcb8d8e4163 fb8f743d .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-6-6-kasan general protection fault in write_all_supers
* Struck through repros no longer work on HEAD.