Patch "mac80211: bail out if cipher schemes are invalid" has been added to the 5.10-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    mac80211: bail out if cipher schemes are invalid

to the 5.10-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     mac80211-bail-out-if-cipher-schemes-are-invalid.patch
and it can be found in the queue-5.10 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 75f8717d42ab9f4628dfc302e47ceb73b1b76981
Author: Johannes Berg <johannes.berg@xxxxxxxxx>
Date:   Thu Apr 8 14:31:50 2021 +0200

    mac80211: bail out if cipher schemes are invalid
    
    [ Upstream commit db878e27a98106a70315d264cc92230d84009e72 ]
    
    If any of the cipher schemes specified by the driver are invalid, bail
    out and fail the registration rather than just warning.  Otherwise, we
    might later crash when we try to use the invalid cipher scheme, e.g.
    if the hdr_len is (significantly) less than the pn_offs + pn_len, we'd
    have an out-of-bounds access in RX validation.
    
    Fixes: 2475b1cc0d52 ("mac80211: add generic cipher scheme support")
    Link: https://lore.kernel.org/r/20210408143149.38a3a13a1b19.I6b7f5790fa0958ed8049cf02ac2a535c61e9bc96@changeid
    Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/net/mac80211/main.c b/net/mac80211/main.c
index 19c093bb3876..73893025922f 100644
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
@@ -1150,8 +1150,11 @@ int ieee80211_register_hw(struct ieee80211_hw *hw)
 	if (local->hw.wiphy->max_scan_ie_len)
 		local->hw.wiphy->max_scan_ie_len -= local->scan_ies_len;
 
-	WARN_ON(!ieee80211_cs_list_valid(local->hw.cipher_schemes,
-					 local->hw.n_cipher_schemes));
+	if (WARN_ON(!ieee80211_cs_list_valid(local->hw.cipher_schemes,
+					     local->hw.n_cipher_schemes))) {
+		result = -EINVAL;
+		goto fail_workqueue;
+	}
 
 	result = ieee80211_init_cipher_suites(local);
 	if (result < 0)



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux