syzbot


KASAN: null-ptr-deref Write in n_tty_flush_buffer

Status: upstream: reported C repro on 2025/06/12 08:11
Reported-by: syzbot+c03462f5141aa18c5f0c@syzkaller.appspotmail.com
First crash: 2d14h, last: 1d19h
Similar bugs (2)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
android-6-1 KASAN: null-ptr-deref Write in n_tty_flush_buffer origin:lts C 3 10d 12d 0/2 upstream: reported C repro on 2025/06/02 07:54
android-5-10 KASAN: null-ptr-deref Write in n_tty_flush_buffer C 1 14d 95d 0/2 upstream: reported C repro on 2025/03/10 22:54

Sample crash report:
tty tty1: SAK: killed process 4312 (syz-executor903): by fd#3
==================================================================
BUG: KASAN: null-ptr-deref in reset_buffer_flags drivers/tty/n_tty.c:332 [inline]
BUG: KASAN: null-ptr-deref in n_tty_flush_buffer+0x6c/0x1f0 drivers/tty/n_tty.c:370
Write of size 24 at addr 0000000000000000 by task kworker/1:1/42

CPU: 1 PID: 42 Comm: kworker/1:1 Not tainted 5.15.185-syzkaller-00339-ge678c93d43cc #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 05/07/2025
Workqueue: events vc_SAK
Call Trace:
 <TASK>
 __dump_stack+0x21/0x30 lib/dump_stack.c:88
 dump_stack_lvl+0xee/0x150 lib/dump_stack.c:106
 __kasan_report mm/kasan/report.c:431 [inline]
 kasan_report+0xe7/0x140 mm/kasan/report.c:444
 check_region_inline mm/kasan/generic.c:-1 [inline]
 kasan_check_range+0x280/0x290 mm/kasan/generic.c:189
 memset+0x23/0x40 mm/kasan/shadow.c:44
 reset_buffer_flags drivers/tty/n_tty.c:332 [inline]
 n_tty_flush_buffer+0x6c/0x1f0 drivers/tty/n_tty.c:370
 tty_buffer_flush+0x2d5/0x360 drivers/tty/tty_buffer.c:241
 tty_ldisc_flush+0x6c/0xc0 drivers/tty/tty_ldisc.c:400
 __do_SAK+0x141/0x630 drivers/tty/tty_io.c:3051
 vc_SAK+0x78/0x220 drivers/tty/vt/vt_ioctl.c:993
 process_one_work+0x6be/0xba0 kernel/workqueue.c:2325
 worker_thread+0xa59/0x1200 kernel/workqueue.c:2472
 kthread+0x411/0x500 kernel/kthread.c:337
 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:287
 </TASK>
==================================================================
BUG: unable to handle page fault for address: 0000000000002260
#PF: supervisor write access in kernel mode
#PF: error_code(0x0002) - not-present page
PGD 0 P4D 0 
Oops: 0002 [#1] PREEMPT SMP KASAN
CPU: 1 PID: 42 Comm: kworker/1:1 Tainted: G    B             5.15.185-syzkaller-00339-ge678c93d43cc #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 05/07/2025
Workqueue: events vc_SAK
RIP: 0010:memset_erms+0x9/0x10 arch/x86/lib/memset_64.S:64
Code: c1 e9 03 40 0f b6 f6 48 b8 01 01 01 01 01 01 01 01 48 0f af c6 f3 48 ab 89 d1 f3 aa 4c 89 c8 c3 90 49 89 f9 40 88 f0 48 89 d1 <f3> aa 4c 89 c8 c3 90 49 89 fa 40 0f b6 ce 48 b8 01 01 01 01 01 01
RSP: 0018:ffffc900002bfb50 EFLAGS: 00010202
RAX: 0000000000000000 RBX: 0000000000000010 RCX: 0000000000000010
RDX: 0000000000000010 RSI: 0000000000000000 RDI: 0000000000002260
RBP: ffffc900002bfb70 R08: 0000000000000000 R09: 0000000000002260
R10: fffffbfff0e17a4c R11: 1ffffffff0e17a4c R12: 000000000000005d
R13: 0000000000002260 R14: 0000000000000000 R15: 0000000000002260
FS:  0000000000000000(0000) GS:ffff8881f7100000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000000002260 CR3: 0000000120e2a000 CR4: 00000000003506a0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
 <TASK>
 reset_buffer_flags drivers/tty/n_tty.c:334 [inline]
 n_tty_flush_buffer+0x7b/0x1f0 drivers/tty/n_tty.c:370
 tty_buffer_flush+0x2d5/0x360 drivers/tty/tty_buffer.c:241
 tty_ldisc_flush+0x6c/0xc0 drivers/tty/tty_ldisc.c:400
 __do_SAK+0x141/0x630 drivers/tty/tty_io.c:3051
 vc_SAK+0x78/0x220 drivers/tty/vt/vt_ioctl.c:993
 process_one_work+0x6be/0xba0 kernel/workqueue.c:2325
 worker_thread+0xa59/0x1200 kernel/workqueue.c:2472
 kthread+0x411/0x500 kernel/kthread.c:337
 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:287
 </TASK>
Modules linked in:
CR2: 0000000000002260
---[ end trace 5af36a89cebaf646 ]---
RIP: 0010:memset_erms+0x9/0x10 arch/x86/lib/memset_64.S:64
Code: c1 e9 03 40 0f b6 f6 48 b8 01 01 01 01 01 01 01 01 48 0f af c6 f3 48 ab 89 d1 f3 aa 4c 89 c8 c3 90 49 89 f9 40 88 f0 48 89 d1 <f3> aa 4c 89 c8 c3 90 49 89 fa 40 0f b6 ce 48 b8 01 01 01 01 01 01
RSP: 0018:ffffc900002bfb50 EFLAGS: 00010202
RAX: 0000000000000000 RBX: 0000000000000010 RCX: 0000000000000010
RDX: 0000000000000010 RSI: 0000000000000000 RDI: 0000000000002260
RBP: ffffc900002bfb70 R08: 0000000000000000 R09: 0000000000002260
R10: fffffbfff0e17a4c R11: 1ffffffff0e17a4c R12: 000000000000005d
R13: 0000000000002260 R14: 0000000000000000 R15: 0000000000002260
FS:  0000000000000000(0000) GS:ffff8881f7100000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000000002260 CR3: 0000000120e2a000 CR4: 00000000003506a0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
----------------
Code disassembly (best guess):
   0:	c1 e9 03             	shr    $0x3,%ecx
   3:	40 0f b6 f6          	movzbl %sil,%esi
   7:	48 b8 01 01 01 01 01 	movabs $0x101010101010101,%rax
   e:	01 01 01
  11:	48 0f af c6          	imul   %rsi,%rax
  15:	f3 48 ab             	rep stos %rax,%es:(%rdi)
  18:	89 d1                	mov    %edx,%ecx
  1a:	f3 aa                	rep stos %al,%es:(%rdi)
  1c:	4c 89 c8             	mov    %r9,%rax
  1f:	c3                   	ret
  20:	90                   	nop
  21:	49 89 f9             	mov    %rdi,%r9
  24:	40 88 f0             	mov    %sil,%al
  27:	48 89 d1             	mov    %rdx,%rcx
* 2a:	f3 aa                	rep stos %al,%es:(%rdi) <-- trapping instruction
  2c:	4c 89 c8             	mov    %r9,%rax
  2f:	c3                   	ret
  30:	90                   	nop
  31:	49 89 fa             	mov    %rdi,%r10
  34:	40 0f b6 ce          	movzbl %sil,%ecx
  38:	48                   	rex.W
  39:	b8 01 01 01 01       	mov    $0x1010101,%eax
  3e:	01 01                	add    %eax,(%rcx)

Crashes (3):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2025/06/13 03:38 android13-5.15-lts e678c93d43cc 98683f8f .config strace log report syz / log C [disk image] [vmlinux] [kernel image] ci2-android-5-15 KASAN: null-ptr-deref Write in n_tty_flush_buffer
2025/06/12 12:18 android13-5.15-lts e678c93d43cc 98683f8f .config console log report syz / log C [disk image] [vmlinux] [kernel image] ci2-android-5-15 KASAN: null-ptr-deref Write in n_tty_flush_buffer
2025/06/12 08:09 android13-5.15-lts e678c93d43cc 98683f8f .config console log report syz / log C [disk image] [vmlinux] [kernel image] ci2-android-5-15 KASAN: null-ptr-deref Write in n_tty_flush_buffer
* Struck through repros no longer work on HEAD.