[syzbot] [serial?] general protection fault in serial8250_tx_chars

20 views
Skip to first unread message

syzbot

unread,
Jul 5, 2023, 7:16:08 PM7/5/23
to gre...@linuxfoundation.org, jiri...@kernel.org, linux-...@vger.kernel.org, linux-...@vger.kernel.org, syzkall...@googlegroups.com
Hello,

syzbot found the following issue on:

HEAD commit: 6cd06ab12d1a gup: make the stack expansion warning a bit m..
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=13fdf29ca80000
kernel config: https://syzkaller.appspot.com/x/.config?x=9b64180aaf312512
dashboard link: https://syzkaller.appspot.com/bug?extid=837b8c9032c053262db8
compiler: Debian clang version 15.0.7, GNU ld (GNU Binutils for Debian) 2.35.2

Unfortunately, I don't have any reproducer for this issue yet.

Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/6b9ac6b68fe1/disk-6cd06ab1.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/694d14350cd9/vmlinux-6cd06ab1.xz
kernel image: https://storage.googleapis.com/syzbot-assets/0344e65f0f1c/bzImage-6cd06ab1.xz

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+837b8c...@syzkaller.appspotmail.com

general protection fault, probably for non-canonical address 0xdffffc0000000000: 0000 [#1] PREEMPT SMP KASAN
KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007]
CPU: 1 PID: 12722 Comm: kworker/1:25 Not tainted 6.4.0-syzkaller-11479-g6cd06ab12d1a #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 05/27/2023
Workqueue: pm pm_runtime_work
RIP: 0010:serial8250_tx_chars+0x299/0x8b0 drivers/tty/serial/8250/8250_port.c:1813
Code: 5d 36 26 fd 48 8b 2b 48 8b 44 24 20 42 0f b6 04 38 84 c0 0f 85 8f 02 00 00 48 8b 04 24 48 63 00 48 01 c5 48 89 e8 48 c1 e8 03 <42> 0f b6 04 38 84 c0 0f 85 91 02 00 00 0f b6 6d 00 48 8b 44 24 60
RSP: 0018:ffffc9000abdf8d0 EFLAGS: 00010046
RAX: 0000000000000000 RBX: ffff88801f1c0fd0 RCX: 1ffffffff246560f
RDX: 1ffffffff2465659 RSI: 0000000000000000 RDI: ffffffff9232b2d0
RBP: 0000000000000000 R08: ffffffff84be7c90 R09: fffff5200157bf14
R10: dffffc0000000000 R11: fffff5200157bf14 R12: 0000000000000010
R13: ffffffff9232b120 R14: ffffffff9232b020 R15: dffffc0000000000
FS: 0000000000000000(0000) GS:ffff8880b9900000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000020404030 CR3: 000000000d130000 CR4: 00000000003506e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
<TASK>
__start_tx+0x312/0x450 drivers/tty/serial/8250/8250_port.c:1547
serial_port_runtime_resume+0x1ec/0x2a0 drivers/tty/serial/serial_port.c:40
__rpm_callback+0x2b9/0x7a0 drivers/base/power/runtime.c:392
rpm_callback drivers/base/power/runtime.c:446 [inline]
rpm_resume+0x10b1/0x1af0 drivers/base/power/runtime.c:912
pm_runtime_work+0x147/0x210 drivers/base/power/runtime.c:977
process_one_work+0x92c/0x12c0 kernel/workqueue.c:2597
worker_thread+0xa63/0x1210 kernel/workqueue.c:2748
kthread+0x2b8/0x350 kernel/kthread.c:389
ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:308
</TASK>
Modules linked in:
---[ end trace 0000000000000000 ]---
RIP: 0010:serial8250_tx_chars+0x299/0x8b0 drivers/tty/serial/8250/8250_port.c:1813
Code: 5d 36 26 fd 48 8b 2b 48 8b 44 24 20 42 0f b6 04 38 84 c0 0f 85 8f 02 00 00 48 8b 04 24 48 63 00 48 01 c5 48 89 e8 48 c1 e8 03 <42> 0f b6 04 38 84 c0 0f 85 91 02 00 00 0f b6 6d 00 48 8b 44 24 60
RSP: 0018:ffffc9000abdf8d0 EFLAGS: 00010046
RAX: 0000000000000000 RBX: ffff88801f1c0fd0 RCX: 1ffffffff246560f
RDX: 1ffffffff2465659 RSI: 0000000000000000 RDI: ffffffff9232b2d0
RBP: 0000000000000000 R08: ffffffff84be7c90 R09: fffff5200157bf14
R10: dffffc0000000000 R11: fffff5200157bf14 R12: 0000000000000010
R13: ffffffff9232b120 R14: ffffffff9232b020 R15: dffffc0000000000
FS: 0000000000000000(0000) GS:ffff8880b9900000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000020404030 CR3: 000000000d130000 CR4: 00000000003506e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
----------------
Code disassembly (best guess):
0: 5d pop %rbp
1: 36 26 fd ss es std
4: 48 8b 2b mov (%rbx),%rbp
7: 48 8b 44 24 20 mov 0x20(%rsp),%rax
c: 42 0f b6 04 38 movzbl (%rax,%r15,1),%eax
11: 84 c0 test %al,%al
13: 0f 85 8f 02 00 00 jne 0x2a8
19: 48 8b 04 24 mov (%rsp),%rax
1d: 48 63 00 movslq (%rax),%rax
20: 48 01 c5 add %rax,%rbp
23: 48 89 e8 mov %rbp,%rax
26: 48 c1 e8 03 shr $0x3,%rax
* 2a: 42 0f b6 04 38 movzbl (%rax,%r15,1),%eax <-- trapping instruction
2f: 84 c0 test %al,%al
31: 0f 85 91 02 00 00 jne 0x2c8
37: 0f b6 6d 00 movzbl 0x0(%rbp),%ebp
3b: 48 8b 44 24 60 mov 0x60(%rsp),%rax


---
This report is generated by a bot. It may contain errors.
See https://goo.gl/tpsmEJ for more information about syzbot.
syzbot engineers can be reached at syzk...@googlegroups.com.

syzbot will keep track of this issue. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.

If the bug is already fixed, let syzbot know by replying with:
#syz fix: exact-commit-title

If you want to change bug's subsystems, reply with:
#syz set subsystems: new-subsystem
(See the list of subsystem names on the web dashboard)

If the bug is a duplicate of another bug, reply with:
#syz dup: exact-subject-of-another-report

If you want to undo deduplication, reply with:
#syz undup

syzbot

unread,
Jul 22, 2023, 8:16:23 AM7/22/23
to gre...@linuxfoundation.org, jiri...@kernel.org, linux-...@vger.kernel.org, linux-...@vger.kernel.org, syzkall...@googlegroups.com
syzbot has found a reproducer for the following issue on:

HEAD commit: d192f5382581 Merge tag 'arm64-fixes' of git://git.kernel.o..
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=12d03ff4a80000
kernel config: https://syzkaller.appspot.com/x/.config?x=a4507c291b5ab5d4
dashboard link: https://syzkaller.appspot.com/bug?extid=837b8c9032c053262db8
compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=17e4fe52a80000

Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/517e5a5be15c/disk-d192f538.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/59d41b43c30c/vmlinux-d192f538.xz
kernel image: https://storage.googleapis.com/syzbot-assets/99ed26179ccf/bzImage-d192f538.xz

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+837b8c...@syzkaller.appspotmail.com

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: 5137 Comm: kworker/0:4 Not tainted 6.5.0-rc2-syzkaller-00307-gd192f5382581 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/12/2023
Workqueue: pm pm_runtime_work
RIP: 0010:serial8250_tx_chars+0x299/0x8b0 drivers/tty/serial/8250/8250_port.c:1813
Code: 8d cc 25 fd 48 8b 2b 48 8b 44 24 20 42 0f b6 04 38 84 c0 0f 85 8f 02 00 00 48 8b 04 24 48 63 00 48 01 c5 48 89 e8 48 c1 e8 03 <42> 0f b6 04 38 84 c0 0f 85 91 02 00 00 0f b6 6d 00 48 8b 44 24 60
RSP: 0018:ffffc9000432f8b0 EFLAGS: 00010046
RAX: 0000000000000000 RBX: ffff88801f490fd0 RCX: 1ffffffff246641b
RDX: 1ffffffff2466465 RSI: 0000000000000000 RDI: ffffffff92332330
RBP: 0000000000000000 R08: ffffffff84bef450 R09: fffff52000865f10
R10: dffffc0000000000 R11: fffff52000865f10 R12: 0000000000000010
R13: ffffffff92332180 R14: ffffffff92332080 R15: dffffc0000000000
FS: 0000000000000000(0000) GS:ffff8880b9800000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000555555c2f938 CR3: 000000002b259000 CR4: 00000000003506f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
<TASK>
__start_tx+0x312/0x450 drivers/tty/serial/8250/8250_port.c:1547
serial_port_runtime_resume+0x1ec/0x2a0 drivers/tty/serial/serial_port.c:40
__rpm_callback+0x2b9/0x7a0 drivers/base/power/runtime.c:392
rpm_callback drivers/base/power/runtime.c:446 [inline]
rpm_resume+0x10b1/0x1af0 drivers/base/power/runtime.c:912
pm_runtime_work+0x147/0x210 drivers/base/power/runtime.c:977
process_one_work+0x92c/0x12c0 kernel/workqueue.c:2597
worker_thread+0xa63/0x1210 kernel/workqueue.c:2748
kthread+0x2b8/0x350 kernel/kthread.c:389
ret_from_fork+0x2e/0x60 arch/x86/kernel/process.c:145
ret_from_fork_asm+0x11/0x20 arch/x86/entry/entry_64.S:296
RIP: 0000:0x0
Code: Unable to access opcode bytes at 0xffffffffffffffd6.
RSP: 0000:0000000000000000 EFLAGS: 00000000 ORIG_RAX: 0000000000000000
RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
</TASK>
Modules linked in:
---[ end trace 0000000000000000 ]---
RIP: 0010:serial8250_tx_chars+0x299/0x8b0 drivers/tty/serial/8250/8250_port.c:1813
Code: 8d cc 25 fd 48 8b 2b 48 8b 44 24 20 42 0f b6 04 38 84 c0 0f 85 8f 02 00 00 48 8b 04 24 48 63 00 48 01 c5 48 89 e8 48 c1 e8 03 <42> 0f b6 04 38 84 c0 0f 85 91 02 00 00 0f b6 6d 00 48 8b 44 24 60
RSP: 0018:ffffc9000432f8b0 EFLAGS: 00010046
RAX: 0000000000000000 RBX: ffff88801f490fd0 RCX: 1ffffffff246641b
RDX: 1ffffffff2466465 RSI: 0000000000000000 RDI: ffffffff92332330
RBP: 0000000000000000 R08: ffffffff84bef450 R09: fffff52000865f10
R10: dffffc0000000000 R11: fffff52000865f10 R12: 0000000000000010
R13: ffffffff92332180 R14: ffffffff92332080 R15: dffffc0000000000
FS: 0000000000000000(0000) GS:ffff8880b9800000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: ffffffffffffffd6 CR3: 000000002b259000 CR4: 00000000003506f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
----------------
Code disassembly (best guess), 1 bytes skipped:
0: cc int3
1: 25 fd 48 8b 2b and $0x2b8b48fd,%eax
6: 48 8b 44 24 20 mov 0x20(%rsp),%rax
b: 42 0f b6 04 38 movzbl (%rax,%r15,1),%eax
10: 84 c0 test %al,%al
12: 0f 85 8f 02 00 00 jne 0x2a7
18: 48 8b 04 24 mov (%rsp),%rax
1c: 48 63 00 movslq (%rax),%rax
1f: 48 01 c5 add %rax,%rbp
22: 48 89 e8 mov %rbp,%rax
25: 48 c1 e8 03 shr $0x3,%rax
* 29: 42 0f b6 04 38 movzbl (%rax,%r15,1),%eax <-- trapping instruction
2e: 84 c0 test %al,%al
30: 0f 85 91 02 00 00 jne 0x2c7
36: 0f b6 6d 00 movzbl 0x0(%rbp),%ebp
3a: 48 8b 44 24 60 mov 0x60(%rsp),%rax


---
If you want syzbot to run the reproducer, reply with:
#syz test: git://repo/address.git branch-or-commit-hash
If you attach or paste a git patch, syzbot will apply it before testing.

Hillf Danton

unread,
Jul 22, 2023, 8:15:13 PM7/22/23
to syzbot, linux-...@vger.kernel.org, syzkall...@googlegroups.com
On Sat, 22 Jul 2023 05:16:21 -0700
> HEAD commit: d192f5382581 Merge tag 'arm64-fixes' of git://git.kernel.o..
> git tree: upstream
> syz repro: https://syzkaller.appspot.com/x/repro.syz?x=17e4fe52a80000

Check if ->start_tx is valid.

#syz test https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git d192f5382581

--- x/drivers/tty/serial/serial_port.c
+++ y/drivers/tty/serial/serial_port.c
@@ -37,7 +37,8 @@ static int serial_port_runtime_resume(st
/* Flush any pending TX for the port */
spin_lock_irqsave(&port->lock, flags);
if (__serial_port_busy(port))
- port->ops->start_tx(port);
+ if (port->ops && port->ops->start_tx)
+ port->ops->start_tx(port);
spin_unlock_irqrestore(&port->lock, flags);

out:
--

syzbot

unread,
Jul 22, 2023, 8:46:38 PM7/22/23
to hda...@sina.com, linux-...@vger.kernel.org, syzkall...@googlegroups.com
Hello,

syzbot has tested the proposed patch and the reproducer did not trigger any issue:

Reported-and-tested-by: syzbot+837b8c...@syzkaller.appspotmail.com

Tested on:

commit: d192f538 Merge tag 'arm64-fixes' of git://git.kernel.o..
git tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
console output: https://syzkaller.appspot.com/x/log.txt?x=123825e6a80000
kernel config: https://syzkaller.appspot.com/x/.config?x=a4507c291b5ab5d4
dashboard link: https://syzkaller.appspot.com/bug?extid=837b8c9032c053262db8
compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40
patch: https://syzkaller.appspot.com/x/patch.diff?x=16e80b9aa80000

Note: testing is done by a robot and is best-effort only.

Andy Shevchenko

unread,
Apr 8, 2024, 4:12:08 AMApr 8
to syzbot, gre...@linuxfoundation.org, jiri...@kernel.org, linux-...@vger.kernel.org, linux-...@vger.kernel.org, syzkall...@googlegroups.com
Sat, Jul 22, 2023 at 05:16:21AM -0700, syzbot kirjoitti:
> syzbot has found a reproducer for the following issue on:
>
> HEAD commit: d192f5382581 Merge tag 'arm64-fixes' of git://git.kernel.o..
> git tree: upstream
> console output: https://syzkaller.appspot.com/x/log.txt?x=12d03ff4a80000
> kernel config: https://syzkaller.appspot.com/x/.config?x=a4507c291b5ab5d4
> dashboard link: https://syzkaller.appspot.com/bug?extid=837b8c9032c053262db8
> compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40
> syz repro: https://syzkaller.appspot.com/x/repro.syz?x=17e4fe52a80000
>
> Downloadable assets:
> disk image: https://storage.googleapis.com/syzbot-assets/517e5a5be15c/disk-d192f538.raw.xz
> vmlinux: https://storage.googleapis.com/syzbot-assets/59d41b43c30c/vmlinux-d192f538.xz
> kernel image: https://storage.googleapis.com/syzbot-assets/99ed26179ccf/bzImage-d192f538.xz
>
> IMPORTANT: if you fix the issue, please add the following tag to the commit:
> Reported-by: syzbot+837b8c...@syzkaller.appspotmail.com

#syz test g...@bitbucket.org:andy-shev/linux.git test-8250-pm

--
With Best Regards,
Andy Shevchenko


Reply all
Reply to author
Forward
0 new messages