wifi: mt76: mt7921: fix using incorrect group cipher after disconnection.
authorMichael Lo <michael.lo@mediatek.com>
Thu, 1 Aug 2024 02:43:35 +0000 (10:43 +0800)
committerFelix Fietkau <nbd@nbd.name>
Tue, 14 Jan 2025 12:34:33 +0000 (13:34 +0100)
To avoid incorrect cipher after disconnection, we should
do the key deletion process in this case.

Fixes: e6db67fa871d ("wifi: mt76: ignore key disable commands")
Signed-off-by: Michael Lo <michael.lo@mediatek.com>
Signed-off-by: Ming Yen Hsieh <mingyen.hsieh@mediatek.com>
Tested-by: David Ruth <druth@chromium.org>
Reviewed-by: David Ruth <druth@chromium.org>
Link: https://patch.msgid.link/20240801024335.12981-1-mingyen.hsieh@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt7921/main.c

index 2ef8dbfc4a95ac9877508c44d5c9c279ecced9fb..573a2cd7fe4544e675c368d799c39276e4a792da 100644 (file)
@@ -531,7 +531,13 @@ static int mt7921_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
        } else {
                if (idx == *wcid_keyidx)
                        *wcid_keyidx = -1;
-               goto out;
+
+               /* For security issue we don't trigger the key deletion when
+                * reassociating. But we should trigger the deletion process
+                * to avoid using incorrect cipher after disconnection,
+                */
+               if (vif->type != NL80211_IFTYPE_STATION || vif->cfg.assoc)
+                       goto out;
        }
 
        mt76_wcid_key_setup(&dev->mt76, wcid, key);