syzbot


BUG: unable to handle kernel paging request in bit_putcs

Status: fixed on 2024/04/03 01:55
Reported-by: syzbot+525a735fc85a5b1d59a7@syzkaller.appspotmail.com
Fix commit: 2f91a96b892f fbcon: always restore the old font data in fbcon_do_set_font()
First crash: 256d, last: 60d
Fix bisection: fixed by (bisect log) :
commit 2f91a96b892fab2f2543b4a55740c5bee36b1a6b
Author: Jiri Slaby (SUSE) <jirislaby@kernel.org>
Date: Thu Feb 8 11:44:11 2024 +0000

  fbcon: always restore the old font data in fbcon_do_set_font()

  
Bug presence (1)
Date Name Commit Repro Result
2024/04/02 upstream (ToT) 026e680b0a08 C Didn't crash
Similar bugs (5)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream general protection fault in bit_putcs fbdev C 5 57d 211d 0/26 upstream: reported C repro on 2023/10/04 08:45
linux-4.14 KASAN: global-out-of-bounds Read in bit_putcs C error 241 597d 1608d 0/1 upstream: reported C repro on 2019/12/07 16:26
linux-4.14 KASAN: slab-out-of-bounds Read in bit_putcs C error 95 599d 1612d 0/1 upstream: reported C repro on 2019/12/03 16:38
linux-4.19 KASAN: global-out-of-bounds Read in bit_putcs C done 214 1073d 1610d 1/1 fixed on 2021/06/24 08:01
linux-4.19 KASAN: slab-out-of-bounds Read in bit_putcs C inconclusive 138 1077d 1612d 0/1 upstream: reported C repro on 2019/12/03 12:47
Fix bisection attempts (5)
Created Duration User Patch Repo Result
2024/04/02 12:58 7h24m bisect fix linux-6.1.y job log (1)
2024/03/03 09:35 1h32m bisect fix linux-6.1.y job log (0) log
2024/01/12 14:14 3h15m (2) bisect fix linux-6.1.y job log (0) log
2023/11/13 04:38 1h30m bisect fix linux-6.1.y job log (0) log
2023/10/09 16:20 1h47m bisect fix linux-6.1.y job log (0) log

Sample crash report:
Unable to handle kernel paging request at virtual address dfff800000000040
KASAN: null-ptr-deref in range [0x0000000000000200-0x0000000000000207]
Mem abort info:
  ESR = 0x0000000096000006
  EC = 0x25: DABT (current EL), IL = 32 bits
  SET = 0, FnV = 0
  EA = 0, S1PTW = 0
  FSC = 0x06: level 2 translation fault
Data abort info:
  ISV = 0, ISS = 0x00000006
  CM = 0, WnR = 0
[dfff800000000040] address between user and kernel address ranges
Internal error: Oops: 0000000096000006 [#1] PREEMPT SMP
Modules linked in:
CPU: 1 PID: 4231 Comm: syz-executor210 Not tainted 6.1.67-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 11/10/2023
pstate: 80400005 (Nzcv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
pc : __fb_pad_aligned_buffer include/linux/fb.h:655 [inline]
pc : bit_putcs_aligned drivers/video/fbdev/core/bitblit.c:96 [inline]
pc : bit_putcs+0x958/0xe30 drivers/video/fbdev/core/bitblit.c:185
lr : __fb_pad_aligned_buffer include/linux/fb.h:652 [inline]
lr : bit_putcs_aligned drivers/video/fbdev/core/bitblit.c:96 [inline]
lr : bit_putcs+0x93c/0xe30 drivers/video/fbdev/core/bitblit.c:185
sp : ffff80001dce7480
x29: ffff80001dce7690 x28: 0000000000000200 x27: ffff0000cddbc000
x26: ffff0000cddbc000 x25: 000000000000000f x24: dfff800000000000
x23: 0000000000000080 x22: 0000000000000000 x21: 0000000000000000
x20: ffff0000c0031440 x19: 0000000000000200 x18: 1fffe00036870376
x17: ffff80001581d000 x16: ffff800012090000 x15: 0000000000000000
x14: 0000000000000003 x13: ffff0000c8958000 x12: 00000000ffffffff
x11: 0000000000ff0100 x10: 0000000000000000 x9 : 0000000000000000
x8 : 0000000000000040 x7 : 0000000000000000 x6 : 0000000000000007
x5 : 0000000000000000 x4 : 0000000000000008 x3 : ffff80000b08cb80
x2 : 0000000000000800 x1 : 0000000000000010 x0 : 0000000000000000
Call trace:
 __fb_pad_aligned_buffer include/linux/fb.h:655 [inline]
 bit_putcs_aligned drivers/video/fbdev/core/bitblit.c:96 [inline]
 bit_putcs+0x958/0xe30 drivers/video/fbdev/core/bitblit.c:185
 fbcon_putcs+0x318/0x4e8 drivers/video/fbdev/core/fbcon.c:1282
 do_update_region+0x42c/0x5f8 drivers/tty/vt/vt.c:676
 redraw_screen+0x82c/0xd54 drivers/tty/vt/vt.c:1035
 fbcon_modechanged+0x9f4/0x1090 drivers/video/fbdev/core/fbcon.c:2709
 fbcon_update_vcs+0x3c/0x4c drivers/video/fbdev/core/fbcon.c:2754
 do_fb_ioctl+0xb40/0xe34 drivers/video/fbdev/core/fbmem.c:1127
 fb_ioctl+0xec/0x134 drivers/video/fbdev/core/fbmem.c:1204
 vfs_ioctl fs/ioctl.c:51 [inline]
 __do_sys_ioctl fs/ioctl.c:870 [inline]
 __se_sys_ioctl fs/ioctl.c:856 [inline]
 __arm64_sys_ioctl+0x14c/0x1c8 fs/ioctl.c:856
 __invoke_syscall arch/arm64/kernel/syscall.c:38 [inline]
 invoke_syscall+0x98/0x2c0 arch/arm64/kernel/syscall.c:52
 el0_svc_common+0x138/0x258 arch/arm64/kernel/syscall.c:142
 do_el0_svc+0x64/0x218 arch/arm64/kernel/syscall.c:206
 el0_svc+0x58/0x168 arch/arm64/kernel/entry-common.c:637
 el0t_64_sync_handler+0x84/0xf0 arch/arm64/kernel/entry-common.c:655
 el0t_64_sync+0x18c/0x190 arch/arm64/kernel/entry.S:585
Code: 51000679 aa1c03f3 d343fe68 12000a69 (38f86908) 
---[ end trace 0000000000000000 ]---
----------------
Code disassembly (best guess):
   0:	51000679 	sub	w25, w19, #0x1
   4:	aa1c03f3 	mov	x19, x28
   8:	d343fe68 	lsr	x8, x19, #3
   c:	12000a69 	and	w9, w19, #0x7
* 10:	38f86908 	ldrsb	w8, [x8, x24] <-- trapping instruction

Crashes (4):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2023/12/12 10:26 linux-6.1.y e7cddbb41b63 28b24332 .config console log report syz C [disk image] [vmlinux] [kernel image] ci2-linux-6-1-kasan-arm64 BUG: unable to handle kernel paging request in bit_putcs
2023/08/20 17:54 linux-6.1.y 6c44e13dc284 d216d8a0 .config console log report syz C [disk image] [vmlinux] [kernel image] ci2-linux-6-1-kasan-arm64 BUG: unable to handle kernel paging request in bit_putcs
2023/08/20 15:47 linux-6.1.y 6c44e13dc284 d216d8a0 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-6-1-kasan-arm64 BUG: unable to handle kernel paging request in bit_putcs
2024/01/23 20:43 linux-6.1.y 8fd7f4462453 1e153dc8 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-6-1-kasan general protection fault in bit_putcs
* Struck through repros no longer work on HEAD.