syzbot


general protection fault in legacy_parse_param

Status: upstream: reported C repro on 2021/07/03 05:41
Reported-by: syzbot+d1e3b1d92d25abf97943@syzkaller.appspotmail.com
Fix commit: ecff30575b5a LSM: general protection fault in legacy_parse_param
Patched on: [ci-qemu-upstream ci-qemu-upstream-386 ci-qemu2-arm32 ci-qemu2-arm64 ci-qemu2-arm64-compat ci-qemu2-arm64-mte ci-upstream-bpf-kasan-gce ci-upstream-bpf-next-kasan-gce ci-upstream-gce-leak ci-upstream-kasan-gce ci-upstream-kasan-gce-386 ci-upstream-kasan-gce-root ci-upstream-kasan-gce-selinux-root ci-upstream-kasan-gce-smack-root ci-upstream-kmsan-gce ci-upstream-kmsan-gce-386 ci-upstream-linux-next-kasan-gce-root ci-upstream-net-kasan-gce ci-upstream-net-this-kasan-gce ci2-upstream-kcsan-gce ci2-upstream-usb], missing on: [ci-qemu2-riscv64]
First crash: 367d, last: 101d

Cause bisection: introduced by (bisect log) :
commit 54261af473be4c5481f6196064445d2945f2bdab
Author: KP Singh <kpsingh@google.com>
Date: Thu Apr 30 15:52:40 2020 +0000

  security: Fix the default value of fs_context_parse_param hook

Crash: general protection fault in legacy_parse_param (log)
Repro: C syz .config
similar bugs (2):
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
android-5-10 KASAN: slab-out-of-bounds Write in legacy_parse_param C error 1 180d 180d 1/3 fixed on 2022/01/27 16:02
android-54 KASAN: slab-out-of-bounds Write in legacy_parse_param C 2 180d 180d 0/2 upstream: reported C repro on 2022/01/01 00:53

Sample crash report:
general protection fault, probably for non-canonical address 0xdffffc0000000000: 0000 [#1] PREEMPT SMP KASAN
KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007]
CPU: 0 PID: 8435 Comm: syz-executor272 Not tainted 5.14.0-rc7-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
RIP: 0010:memchr+0x2f/0x70 lib/string.c:1054
Code: 41 54 53 48 89 d3 41 89 f7 45 31 f6 49 bc 00 00 00 00 00 fc ff df 0f 1f 44 00 00 48 85 db 74 3b 48 89 fd 48 89 f8 48 c1 e8 03 <42> 0f b6 04 20 84 c0 75 0f 48 ff cb 48 8d 7d 01 44 38 7d 00 75 db
RSP: 0018:ffffc9000d9f7d08 EFLAGS: 00010246
RAX: 0000000000000000 RBX: 0000000000000001 RCX: ffff88801c1f3880
RDX: 0000000000000001 RSI: 000000000000002c RDI: 0000000000000000
RBP: 0000000000000000 R08: ffffffff81e3db46 R09: ffffffff81e3d8e2
R10: 0000000000000002 R11: ffff88801c1f3880 R12: dffffc0000000000
R13: 1ffff92001b3efcc R14: 0000000000000000 R15: 000000000000002c
FS:  0000000000deb300(0000) GS:ffff8880b9c00000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000020000044 CR3: 0000000037173000 CR4: 00000000001506f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
 legacy_parse_param+0x49b/0x810 fs/fs_context.c:555
 vfs_parse_fs_param+0x1df/0x460 fs/fs_context.c:146
 vfs_fsconfig_locked fs/fsopen.c:265 [inline]
 __do_sys_fsconfig fs/fsopen.c:439 [inline]
 __se_sys_fsconfig+0xba9/0xff0 fs/fsopen.c:314
 do_syscall_x64 arch/x86/entry/common.c:50 [inline]
 do_syscall_64+0x3d/0xb0 arch/x86/entry/common.c:80
 entry_SYSCALL_64_after_hwframe+0x44/0xae
RIP: 0033:0x43ee69
Code: 28 c3 e8 2a 14 00 00 66 2e 0f 1f 84 00 00 00 00 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 c0 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007ffc5e9e0b98 EFLAGS: 00000246 ORIG_RAX: 00000000000001af
RAX: ffffffffffffffda RBX: 0000000000400488 RCX: 000000000043ee69
RDX: 0000000020000080 RSI: 0000000000000001 RDI: 0000000000000003
RBP: 0000000000402e50 R08: 0000000000000000 R09: 0000000000400488
R10: 00000000200000c0 R11: 0000000000000246 R12: 0000000000402ee0
R13: 0000000000000000 R14: 00000000004ac018 R15: 0000000000400488
Modules linked in:
---[ end trace 74baf661f3b47b0a ]---
RIP: 0010:memchr+0x2f/0x70 lib/string.c:1054
Code: 41 54 53 48 89 d3 41 89 f7 45 31 f6 49 bc 00 00 00 00 00 fc ff df 0f 1f 44 00 00 48 85 db 74 3b 48 89 fd 48 89 f8 48 c1 e8 03 <42> 0f b6 04 20 84 c0 75 0f 48 ff cb 48 8d 7d 01 44 38 7d 00 75 db
RSP: 0018:ffffc9000d9f7d08 EFLAGS: 00010246
RAX: 0000000000000000 RBX: 0000000000000001 RCX: ffff88801c1f3880
RDX: 0000000000000001 RSI: 000000000000002c RDI: 0000000000000000
RBP: 0000000000000000 R08: ffffffff81e3db46 R09: ffffffff81e3d8e2
R10: 0000000000000002 R11: ffff88801c1f3880 R12: dffffc0000000000
R13: 1ffff92001b3efcc R14: 0000000000000000 R15: 000000000000002c
FS:  0000000000deb300(0000) GS:ffff8880b9d00000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007fed5f8146c0 CR3: 0000000037173000 CR4: 00000000001506e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
----------------
Code disassembly (best guess):
   0:	41 54                	push   %r12
   2:	53                   	push   %rbx
   3:	48 89 d3             	mov    %rdx,%rbx
   6:	41 89 f7             	mov    %esi,%r15d
   9:	45 31 f6             	xor    %r14d,%r14d
   c:	49 bc 00 00 00 00 00 	movabs $0xdffffc0000000000,%r12
  13:	fc ff df
  16:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
  1b:	48 85 db             	test   %rbx,%rbx
  1e:	74 3b                	je     0x5b
  20:	48 89 fd             	mov    %rdi,%rbp
  23:	48 89 f8             	mov    %rdi,%rax
  26:	48 c1 e8 03          	shr    $0x3,%rax
* 2a:	42 0f b6 04 20       	movzbl (%rax,%r12,1),%eax <-- trapping instruction
  2f:	84 c0                	test   %al,%al
  31:	75 0f                	jne    0x42
  33:	48 ff cb             	dec    %rbx
  36:	48 8d 7d 01          	lea    0x1(%rbp),%rdi
  3a:	44 38 7d 00          	cmp    %r15b,0x0(%rbp)
  3e:	75 db                	jne    0x1b

Fix bisection attempts:
Manager Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Title
ci-upstream-kasan-gce-smack-root 2022/01/31 04:07 upstream 26291c54e111 b318694d .config log report syz C
ci-upstream-kasan-gce-smack-root 2021/10/05 01:01 upstream f6274b06e326 b318694d .config log report syz C
Crashes (20):
Manager Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Title
ci-upstream-kasan-gce-smack-root 2021/08/27 14:48 upstream 77dd11439b86 b318694d .config log report syz C general protection fault in legacy_parse_param
ci-upstream-kasan-gce 2022/01/01 03:47 upstream 4f3d93c6eaff e1768e9c .config log report syz KASAN: slab-out-of-bounds Write in legacy_parse_param
ci-upstream-kasan-gce-smack-root 2022/03/21 16:05 upstream f443e374ae13 e2d91b1d .config log report info general protection fault in legacy_parse_param
ci-upstream-kasan-gce-smack-root 2022/03/11 15:39 upstream dda64ead7e82 9e8eaa75 .config log report info general protection fault in legacy_parse_param
ci-upstream-kasan-gce-smack-root 2022/03/11 02:28 upstream 3bf7edc84a9e 9e8eaa75 .config log report info general protection fault in legacy_parse_param
ci-upstream-kasan-gce-smack-root 2022/02/24 12:07 upstream 23d04328444a 6e821dbf .config log report info general protection fault in legacy_parse_param
ci-upstream-kasan-gce-smack-root 2022/02/22 06:08 upstream 038101e6b2cd 6e821dbf .config log report info general protection fault in legacy_parse_param
ci-upstream-kasan-gce-smack-root 2022/02/20 13:06 upstream 4f12b742eb2b 3cd800e4 .config log report info general protection fault in legacy_parse_param
ci-upstream-kasan-gce-smack-root 2021/12/24 08:42 upstream 76657eaef4a7 6caa12e4 .config log report info general protection fault in legacy_parse_param
ci-upstream-kasan-gce-smack-root 2021/12/12 10:57 upstream a763d5a5abd6 49ca1f59 .config log report info general protection fault in legacy_parse_param
ci-upstream-kasan-gce-smack-root 2021/12/02 06:00 upstream 58e1100fdc59 61f86278 .config log report info general protection fault in legacy_parse_param
ci-upstream-kasan-gce-smack-root 2021/11/06 19:25 upstream fe91c4725aee 4c1be0be .config log report info general protection fault in legacy_parse_param
ci-upstream-kasan-gce-smack-root 2021/10/24 23:32 upstream 6c62666d8879 282f03fb .config log report info general protection fault in legacy_parse_param
ci-upstream-kasan-gce-smack-root 2021/10/24 23:30 upstream 6c62666d8879 282f03fb .config log report info general protection fault in legacy_parse_param
ci-upstream-kasan-gce-smack-root 2021/10/12 11:22 upstream fa5878760579 838e7e2c .config log report info general protection fault in legacy_parse_param
ci-upstream-kasan-gce-smack-root 2021/10/12 09:32 upstream fa5878760579 838e7e2c .config log report info general protection fault in legacy_parse_param
ci-upstream-kasan-gce-smack-root 2021/09/05 00:40 upstream f1583cb1be35 d236a457 .config log report info general protection fault in legacy_parse_param
ci-upstream-kasan-gce-smack-root 2021/09/02 14:20 upstream 4ac6d90867a4 15cea0a3 .config log report info general protection fault in legacy_parse_param
ci-upstream-kasan-gce-smack-root 2021/08/27 14:36 upstream 77dd11439b86 b318694d .config log report info general protection fault in legacy_parse_param
ci-upstream-kasan-gce-smack-root 2021/06/28 21:55 upstream 62fb9874f5da 9d2ab5df .config log report info general protection fault in legacy_parse_param