[syzbot] [usb?] [net?] KMSAN: uninit-value in rtl8150_open (2)

1 view
Skip to first unread message

syzbot

unread,
Mar 24, 2026, 10:40:30 PM (21 hours ago) Mar 24
to andrew...@lunn.ch, da...@davemloft.net, edum...@google.com, ku...@kernel.org, linux-...@vger.kernel.org, linu...@vger.kernel.org, net...@vger.kernel.org, pab...@redhat.com, pet...@nucleusys.com, syzkall...@googlegroups.com
Hello,

syzbot found the following issue on:

HEAD commit: c612261bedd6 Merge tag 'io_uring-7.0-20260320' of git://gi..
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=155801d6580000
kernel config: https://syzkaller.appspot.com/x/.config?x=963de479f54c6dbb
dashboard link: https://syzkaller.appspot.com/bug?extid=9db6c624635564ad813c
compiler: Debian clang version 21.1.8 (++20251221033036+2078da43e25a-1~exp1~20251221153213.50), Debian LLD 21.1.8

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

Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/aa2bdf537bf6/disk-c612261b.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/8fcd98072431/vmlinux-c612261b.xz
kernel image: https://storage.googleapis.com/syzbot-assets/737b94c52155/bzImage-c612261b.xz

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

usb 2-1: device reset failed
=====================================================
BUG: KMSAN: uninit-value in set_carrier drivers/net/usb/rtl8150.c:726 [inline]
BUG: KMSAN: uninit-value in rtl8150_open+0x1131/0x1360 drivers/net/usb/rtl8150.c:763
set_carrier drivers/net/usb/rtl8150.c:726 [inline]
rtl8150_open+0x1131/0x1360 drivers/net/usb/rtl8150.c:763
__dev_open+0x8e3/0xd40 net/core/dev.c:1702
__dev_change_flags+0x32f/0x950 net/core/dev.c:9764
netif_change_flags+0x8d/0x1e0 net/core/dev.c:9827
dev_change_flags+0x18c/0x320 net/core/dev_api.c:68
devinet_ioctl+0x10dd/0x25a0 net/ipv4/devinet.c:1199
inet_ioctl+0x4c0/0x6f0 net/ipv4/af_inet.c:1015
sock_do_ioctl net/socket.c:1254 [inline]
sock_ioctl+0x769/0x1140 net/socket.c:1375
vfs_ioctl fs/ioctl.c:51 [inline]
__do_sys_ioctl fs/ioctl.c:597 [inline]
__se_sys_ioctl+0x23c/0x400 fs/ioctl.c:583
__x64_sys_ioctl+0x97/0xe0 fs/ioctl.c:583
x64_sys_call+0x1975/0x3ea0 arch/x86/include/generated/asm/syscalls_64.h:17
do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
do_syscall_64+0x134/0xf80 arch/x86/entry/syscall_64.c:94
entry_SYSCALL_64_after_hwframe+0x77/0x7f

Local variable tmp.i created at:
set_carrier drivers/net/usb/rtl8150.c:723 [inline]
rtl8150_open+0xc26/0x1360 drivers/net/usb/rtl8150.c:763
__dev_open+0x8e3/0xd40 net/core/dev.c:1702

CPU: 1 UID: 0 PID: 5428 Comm: dhcpcd Not tainted syzkaller #0 PREEMPT(full)
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 02/12/2026
=====================================================


---
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 report is already addressed, let syzbot know by replying with:
#syz fix: exact-commit-title

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

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

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

Kohei Enju

unread,
6:40 AM (13 hours ago) 6:40 AM
to syzbot+9db6c6...@syzkaller.appspotmail.com, kun...@google.com, andrew...@lunn.ch, linux-...@vger.kernel.org, linu...@vger.kernel.org, net...@vger.kernel.org, syzkall...@googlegroups.com
+ Iwashima-san
I see Iwashima-san was previously working on this issue here:
https://lore.kernel.org/all/20250827233108....@google.com/T/

The issue seems to be that set_carrier() ignores the return value of
get_registers() and may use an uninitialized tmp.

rtl8150 appears to have other call sites that use get_registers() the
same way as mentioned in the thread above.
Reply all
Reply to author
Forward
0 new messages