* [syzbot] [wireless?] KMSAN: uninit-value in cfg80211_tx_mlme_mgmt @ 2025-02-26 15:44 syzbot 2025-02-27 9:09 ` [RFC PATCH] wifi: mac80211: Prevent disconnect reports when no AP is associated Zhongqiu Han 0 siblings, 1 reply; 2+ messages in thread From: syzbot @ 2025-02-26 15:44 UTC (permalink / raw) To: johannes, linux-kernel, linux-wireless, netdev, syzkaller-bugs Hello, syzbot found the following issue on: HEAD commit: ff202c5028a1 Merge tag 'soc-fixes-6.14' of git://git.kerne.. git tree: upstream console output: https://syzkaller.appspot.com/x/log.txt?x=12d447a4580000 kernel config: https://syzkaller.appspot.com/x/.config?x=aca5947365998f67 dashboard link: https://syzkaller.appspot.com/bug?extid=5a7b40bcb34dea5ca959 compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 userspace arch: i386 Unfortunately, I don't have any reproducer for this issue yet. Downloadable assets: disk image: https://storage.googleapis.com/syzbot-assets/788b15dfbf95/disk-ff202c50.raw.xz vmlinux: https://storage.googleapis.com/syzbot-assets/48f236cd3e71/vmlinux-ff202c50.xz kernel image: https://storage.googleapis.com/syzbot-assets/b92116dbc946/bzImage-ff202c50.xz IMPORTANT: if you fix the issue, please add the following tag to the commit: Reported-by: syzbot+5a7b40bcb34dea5ca959@syzkaller.appspotmail.com cfg80211_wiphy_work+0x396/0x860 net/wireless/core.c:435 process_one_work kernel/workqueue.c:3236 [inline] process_scheduled_works+0xc1a/0x1e80 kernel/workqueue.c:3317 worker_thread+0xea7/0x14f0 kernel/workqueue.c:3398 kthread+0x6b9/0xef0 kernel/kthread.c:464 ret_from_fork+0x6d/0x90 arch/x86/kernel/process.c:148 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244 </TASK> ---[ end trace 0000000000000000 ]--- ===================================================== BUG: KMSAN: uninit-value in cfg80211_tx_mlme_mgmt+0x155/0x300 net/wireless/mlme.c:226 cfg80211_tx_mlme_mgmt+0x155/0x300 net/wireless/mlme.c:226 ieee80211_report_disconnect net/mac80211/mlme.c:4238 [inline] ieee80211_sta_connection_lost+0xfa/0x150 net/mac80211/mlme.c:7811 ieee80211_sta_work+0x1dea/0x4ef0 ieee80211_iface_work+0x1900/0x1970 net/mac80211/iface.c:1684 cfg80211_wiphy_work+0x396/0x860 net/wireless/core.c:435 process_one_work kernel/workqueue.c:3236 [inline] process_scheduled_works+0xc1a/0x1e80 kernel/workqueue.c:3317 worker_thread+0xea7/0x14f0 kernel/workqueue.c:3398 kthread+0x6b9/0xef0 kernel/kthread.c:464 ret_from_fork+0x6d/0x90 arch/x86/kernel/process.c:148 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244 Local variable frame_buf created at: ieee80211_sta_connection_lost+0x43/0x150 net/mac80211/mlme.c:7806 ieee80211_sta_work+0x1dea/0x4ef0 CPU: 1 UID: 0 PID: 4086 Comm: kworker/u8:16 Tainted: G W 6.14.0-rc3-syzkaller-00267-gff202c5028a1 #0 Tainted: [W]=WARN Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 02/12/2025 Workqueue: events_unbound cfg80211_wiphy_work ===================================================== --- 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 syzkaller@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 ^ permalink raw reply [flat|nested] 2+ messages in thread
* [RFC PATCH] wifi: mac80211: Prevent disconnect reports when no AP is associated 2025-02-26 15:44 [syzbot] [wireless?] KMSAN: uninit-value in cfg80211_tx_mlme_mgmt syzbot @ 2025-02-27 9:09 ` Zhongqiu Han 0 siblings, 0 replies; 2+ messages in thread From: Zhongqiu Han @ 2025-02-27 9:09 UTC (permalink / raw) To: johannes, miriam.rachel.korenblit, syzbot+5a7b40bcb34dea5ca959 Cc: linux-wireless, linux-kernel, quic_zhonhan, syzkaller-bugs syzbot reports that cfg80211_tx_mlme_mgmt is using uninit-value: ===================================================== BUG: KMSAN: uninit-value in cfg80211_tx_mlme_mgmt+0x155/0x300 net/wireless/mlme.c:226 cfg80211_tx_mlme_mgmt+0x155/0x300 net/wireless/mlme.c:226 ieee80211_report_disconnect net/mac80211/mlme.c:4238 [inline] ieee80211_sta_connection_lost+0xfa/0x150 net/mac80211/mlme.c:7811 ieee80211_sta_work+0x1dea/0x4ef0 ieee80211_iface_work+0x1900/0x1970 net/mac80211/iface.c:1684 cfg80211_wiphy_work+0x396/0x860 net/wireless/core.c:435 process_one_work kernel/workqueue.c:3236 [inline] process_scheduled_works+0xc1a/0x1e80 kernel/workqueue.c:3317 worker_thread+0xea7/0x14f0 kernel/workqueue.c:3398 kthread+0x6b9/0xef0 kernel/kthread.c:464 ret_from_fork+0x6d/0x90 arch/x86/kernel/process.c:148 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244 Local variable frame_buf created at: ieee80211_sta_connection_lost+0x43/0x150 net/mac80211/mlme.c:7806 ieee80211_sta_work+0x1dea/0x4ef0 ===================================================== The reason is that the local variable frame_buf on the stack cannot be initialized by default. However one more question is that avoiding the uninit-value bug by explicitly initializing it is not enough. Since commit 687a7c8a7227 ("wifi: mac80211: change disassoc sequence a bit"), if there is no AP station, frame_buf has no chance to be assigned a valid value. The function ieee80211_report_disconnect should not continue executing with the frame_buf parameter that is merely initialized to zero. Signed-off-by: Zhongqiu Han <quic_zhonhan@quicinc.com> Fixes: 687a7c8a7227 ("wifi: mac80211: change disassoc sequence a bit") Reported-by: syzbot+5a7b40bcb34dea5ca959@syzkaller.appspotmail.com Closes: https://lore.kernel.org/all/67bf36d3.050a0220.38b081.01ff.GAE@google.com/ --- Please kindy help thoroughly review this patch as I am not a wireless network expert. net/mac80211/mlme.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c index 4e8f0a5f6251..4f3b535b1174 100644 --- a/net/mac80211/mlme.c +++ b/net/mac80211/mlme.c @@ -4414,6 +4414,10 @@ static void ieee80211_report_disconnect(struct ieee80211_sub_if_data *sdata, .u.mlme.data = tx ? DEAUTH_TX_EVENT : DEAUTH_RX_EVENT, .u.mlme.reason = reason, }; + struct sta_info *ap_sta = sta_info_get(sdata, sdata->vif.cfg.ap_addr); + + if (WARN_ON(!ap_sta)) + return; if (tx) cfg80211_tx_mlme_mgmt(sdata->dev, buf, len, reconnect); @@ -8070,7 +8074,7 @@ static void ieee80211_sta_timer(struct timer_list *t) void ieee80211_sta_connection_lost(struct ieee80211_sub_if_data *sdata, u8 reason, bool tx) { - u8 frame_buf[IEEE80211_DEAUTH_FRAME_LEN]; + u8 frame_buf[IEEE80211_DEAUTH_FRAME_LEN] = {0}; ieee80211_set_disassoc(sdata, IEEE80211_STYPE_DEAUTH, reason, tx, frame_buf); -- 2.25.1 ^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2025-02-27 9:09 UTC | newest] Thread overview: 2+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-02-26 15:44 [syzbot] [wireless?] KMSAN: uninit-value in cfg80211_tx_mlme_mgmt syzbot 2025-02-27 9:09 ` [RFC PATCH] wifi: mac80211: Prevent disconnect reports when no AP is associated Zhongqiu Han
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox