public inbox for netdev@vger.kernel.org 
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel•org>
To: linux-kernel@vger•kernel.org, stable@vger•kernel.org
Cc: Zekun Shen <bruceshenzk@gmail•com>,
	Brendan Dolan-Gavitt <brendandg@nyu•edu>,
	Kalle Valo <kvalo@codeaurora•org>,
	Sasha Levin <sashal@kernel•org>,
	amitkarwar@gmail•com, ganapathi017@gmail•com,
	sharvari.harisangam@nxp•com, huxinming820@gmail•com,
	kvalo@kernel•org, davem@davemloft•net, kuba@kernel•org,
	linux-wireless@vger•kernel.org, netdev@vger•kernel.org
Subject: [PATCH AUTOSEL 5.15 064/188] mwifiex: Fix skb_over_panic in mwifiex_usb_recv()
Date: Mon, 17 Jan 2022 21:29:48 -0500	[thread overview]
Message-ID: <20220118023152.1948105-64-sashal@kernel.org> (raw)
In-Reply-To: <20220118023152.1948105-1-sashal@kernel.org>

From: Zekun Shen <bruceshenzk@gmail•com>

[ Upstream commit 04d80663f67ccef893061b49ec8a42ff7045ae84 ]

Currently, with an unknown recv_type, mwifiex_usb_recv
just return -1 without restoring the skb. Next time
mwifiex_usb_rx_complete is invoked with the same skb,
calling skb_put causes skb_over_panic.

The bug is triggerable with a compromised/malfunctioning
usb device. After applying the patch, skb_over_panic
no longer shows up with the same input.

Attached is the panic report from fuzzing.
skbuff: skb_over_panic: text:000000003bf1b5fa
 len:2048 put:4 head:00000000dd6a115b data:000000000a9445d8
 tail:0x844 end:0x840 dev:<NULL>
kernel BUG at net/core/skbuff.c:109!
invalid opcode: 0000 [#1] SMP KASAN NOPTI
CPU: 0 PID: 198 Comm: in:imklog Not tainted 5.6.0 #60
RIP: 0010:skb_panic+0x15f/0x161
Call Trace:
 <IRQ>
 ? mwifiex_usb_rx_complete+0x26b/0xfcd [mwifiex_usb]
 skb_put.cold+0x24/0x24
 mwifiex_usb_rx_complete+0x26b/0xfcd [mwifiex_usb]
 __usb_hcd_giveback_urb+0x1e4/0x380
 usb_giveback_urb_bh+0x241/0x4f0
 ? __hrtimer_run_queues+0x316/0x740
 ? __usb_hcd_giveback_urb+0x380/0x380
 tasklet_action_common.isra.0+0x135/0x330
 __do_softirq+0x18c/0x634
 irq_exit+0x114/0x140
 smp_apic_timer_interrupt+0xde/0x380
 apic_timer_interrupt+0xf/0x20
 </IRQ>

Reported-by: Brendan Dolan-Gavitt <brendandg@nyu•edu>
Signed-off-by: Zekun Shen <bruceshenzk@gmail•com>
Signed-off-by: Kalle Valo <kvalo@codeaurora•org>
Link: https://lore.kernel.org/r/YX4CqjfRcTa6bVL+@Zekuns-MBP-16.fios-router.home
Signed-off-by: Sasha Levin <sashal@kernel•org>
---
 drivers/net/wireless/marvell/mwifiex/usb.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/wireless/marvell/mwifiex/usb.c b/drivers/net/wireless/marvell/mwifiex/usb.c
index 9736aa0ab7fd4..8f01fcbe93961 100644
--- a/drivers/net/wireless/marvell/mwifiex/usb.c
+++ b/drivers/net/wireless/marvell/mwifiex/usb.c
@@ -130,7 +130,8 @@ static int mwifiex_usb_recv(struct mwifiex_adapter *adapter,
 		default:
 			mwifiex_dbg(adapter, ERROR,
 				    "unknown recv_type %#x\n", recv_type);
-			return -1;
+			ret = -1;
+			goto exit_restore_skb;
 		}
 		break;
 	case MWIFIEX_USB_EP_DATA:
-- 
2.34.1


  parent reply	other threads:[~2022-01-18  2:42 UTC|newest]

Thread overview: 70+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-18  2:28 [PATCH AUTOSEL 5.15 001/188] Bluetooth: Fix debugfs entry leak in hci_register_dev() Sasha Levin
2022-01-18  2:28 ` [PATCH AUTOSEL 5.15 002/188] Bluetooth: Fix memory leak of hci device Sasha Levin
2022-01-18  2:28 ` [PATCH AUTOSEL 5.15 004/188] Bluetooth: Fix removing adv when processing cmd complete Sasha Levin
2022-01-18  2:28 ` [PATCH AUTOSEL 5.15 006/188] libbpf: Validate that .BTF and .BTF.ext sections contain data Sasha Levin
2022-01-18  2:28 ` [PATCH AUTOSEL 5.15 008/188] selftests/bpf: Fix memory leaks in btf_type_c_dump() helper Sasha Levin
2022-01-18  2:28 ` [PATCH AUTOSEL 5.15 009/188] selftests/bpf: Destroy XDP link correctly Sasha Levin
2022-01-18  2:28 ` [PATCH AUTOSEL 5.15 010/188] selftests/bpf: Fix bpf_object leak in skb_ctx selftest Sasha Levin
2022-01-18  2:28 ` [PATCH AUTOSEL 5.15 011/188] ar5523: Fix null-ptr-deref with unexpected WDCMSG_TARGET_START reply Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 020/188] batman-adv: allow netlink usage in unprivileged containers Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 022/188] ath11k: Fix crash caused by uninitialized TX ring Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 028/188] amd: lance: use eth_hw_addr_set() Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 029/188] amd: ni65: " Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 030/188] amd: a2065/ariadne: " Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 031/188] amd: hplance: " Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 032/188] amd: atarilance: " Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 033/188] amd: mvme147: " Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 034/188] 8390: smc-ultra: " Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 035/188] 8390: hydra: " Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 036/188] 8390: mac8390: " Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 037/188] 8390: wd: " Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 038/188] smc9194: " Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 039/188] lasi_82594: " Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 040/188] apple: macmace: " Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 041/188] cirrus: mac89x0: " Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 045/188] libbpf: Accommodate DWARF/compiler bug with duplicated structs Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 046/188] ethernet: renesas: Use div64_ul instead of do_div Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 047/188] 82596: use eth_hw_addr_set() Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 055/188] mlxsw: pci: Add shutdown method in PCI driver Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 063/188] rtw88: add quirk to disable pci caps on HP 250 G7 Notebook PC Sasha Levin
2022-01-18  2:29 ` Sasha Levin [this message]
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 065/188] rsi: Fix use-after-free in rsi_rx_done_handler() Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 066/188] rsi: Fix out-of-bounds read in rsi_read_pkt() Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 067/188] ath11k: Avoid NULL ptr access during mgmt tx cleanup Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 090/188] iwlwifi: mvm: synchronize with FW after multicast commands Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 091/188] iwlwifi: mvm: avoid clearing a just saved session protection id Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 093/188] net: dsa: ocelot: felix: Remove requirement for PCS in felix devices Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 094/188] ath11k: avoid deadlock by change ieee80211_queue_work for regd_update_work Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 095/188] ath10k: Fix tx hanging Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 096/188] net-sysfs: update the queue counts in the unregistration path Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 097/188] net: phy: prefer 1000baseT over 1000baseKX Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 101/188] net: Enable neighbor sysctls that is save for userns root Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 102/188] ath11k: Avoid false DEADLOCK warning reported by lockdep Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 108/188] net: bonding: debug: avoid printing debug logs when bond is not notifying peers Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 110/188] bpf: Do not WARN in bpf_warn_invalid_xdp_action() Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 130/188] mt76: mt7615: fix possible deadlock while mt7615_register_ext_phy() Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 131/188] mt76: do not pass the received frame with decryption error Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 132/188] mt76: mt7615: improve wmm index allocation Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 133/188] ath9k_htc: fix NULL pointer dereference at ath9k_htc_rxep() Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 134/188] ath9k_htc: fix NULL pointer dereference at ath9k_htc_tx_get_packet() Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 135/188] ath9k: Fix out-of-bound memcpy in ath9k_hif_usb_rx_stream Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 136/188] rtw88: 8822c: update rx settings to prevent potential hw deadlock Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 138/188] iwlwifi: fix leaks/bad data after failed firmware load Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 139/188] iwlwifi: remove module loading failure message Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 140/188] iwlwifi: mvm: Fix calculation of frame length Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 141/188] iwlwifi: mvm: fix AUX ROC removal Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 142/188] iwlwifi: pcie: make sure prph_info is set when treating wakeup IRQ Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 146/188] ath11k: Fix napi related hang Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 149/188] xfrm: rate limit SA mapping change message to user space Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 166/188] net: mdio: Demote probed message to debug print Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 167/188] mac80211: allow non-standard VHT MCS-10/11 Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 170/188] bpf/selftests: Fix namespace mount setup in tc_redirect Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 171/188] mlxsw: pci: Avoid flow control for EMAD packets Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 172/188] net: phy: marvell: configure RGMII delays for 88E1118 Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 173/188] net: gemini: allow any RGMII interface mode Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 174/188] net: dsa: hold rtnl_mutex when calling dsa_master_{setup,teardown} Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 180/188] net/mlx5: Update log_max_qp value to FW max capability Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 181/188] net/mlx5e: Unblock setting vid 0 for VF in case PF isn't eswitch manager Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 184/188] can: flexcan: allow to change quirks at runtime Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 185/188] can: flexcan: rename RX modes Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 186/188] can: flexcan: add more quirks to describe RX path capabilities Sasha Levin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220118023152.1948105-64-sashal@kernel.org \
    --to=sashal@kernel$(echo .)org \
    --cc=amitkarwar@gmail$(echo .)com \
    --cc=brendandg@nyu$(echo .)edu \
    --cc=bruceshenzk@gmail$(echo .)com \
    --cc=davem@davemloft$(echo .)net \
    --cc=ganapathi017@gmail$(echo .)com \
    --cc=huxinming820@gmail$(echo .)com \
    --cc=kuba@kernel$(echo .)org \
    --cc=kvalo@codeaurora$(echo .)org \
    --cc=kvalo@kernel$(echo .)org \
    --cc=linux-kernel@vger$(echo .)kernel.org \
    --cc=linux-wireless@vger$(echo .)kernel.org \
    --cc=netdev@vger$(echo .)kernel.org \
    --cc=sharvari.harisangam@nxp$(echo .)com \
    --cc=stable@vger$(echo .)kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox