Johannes Berg
03b07ec6b5
mac80211: add fragment cache to sta_info
...
commit 3a11ce08c45b50d69c891d71760b7c5b92074709 upstream.
Prior patches protected against fragmentation cache attacks
by coloring keys, but this shows that it can lead to issues
when multiple stations use the same sequence number. Add a
fragment cache to struct sta_info (in addition to the one in
the interface) to separate fragments for different stations
properly.
This then automatically clear most of the fragment cache when a
station disconnects (or reassociates) from an AP, or when client
interfaces disconnect from the network, etc.
On the way, also fix the comment there since this brings us in line
with the recommendation in 802.11-2016 ("An AP should support ...").
Additionally, remove a useless condition (since there's no problem
purging an already empty list).
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20210511200110.fc35046b0d52.I1ef101e3784d13e8f6600d83de7ec9a3a45bcd52@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-06-03 08:23:28 +02:00
..
aes_ccm.c
mac80211: move struct aead_req off the stack
2016-10-17 16:14:04 +02:00
aes_ccm.h
mac80211: move struct aead_req off the stack
2016-10-17 16:14:04 +02:00
aes_cmac.c
aes_cmac.h
aes_gcm.c
mac80211: move struct aead_req off the stack
2016-10-17 16:14:04 +02:00
aes_gcm.h
mac80211: move struct aead_req off the stack
2016-10-17 16:14:04 +02:00
aes_gmac.c
mac80211: move struct aead_req off the stack
2016-10-17 16:14:04 +02:00
aes_gmac.h
mac80211: move struct aead_req off the stack
2016-10-17 16:14:04 +02:00
agg-rx.c
mac80211: don't reorder frames with SN smaller than SSN
2017-03-15 10:02:47 +08:00
agg-tx.c
mac80211: fix TX aggregation start/stop callback race
2018-11-10 07:42:47 -08:00
cfg.c
mac80211: fix rate mask reset
2021-03-30 14:41:41 +02:00
chan.c
mac80211: calculate min channel width correctly
2017-12-09 22:01:51 +01:00
debug.h
debugfs.c
mac80211: Export fq memory limit information in debugfs
2016-09-30 13:29:31 +02:00
debugfs.h
debugfs_key.c
mac80211: move TKIP TX IVs to public part of key struct
2016-02-24 09:04:38 +01:00
debugfs_key.h
debugfs_netdev.c
mac80211: fix txq null pointer dereference
2019-10-29 09:15:03 +01:00
debugfs_netdev.h
debugfs_sta.c
mac80211: fix tid_agg_rx NULL dereference
2017-01-12 11:39:23 +01:00
debugfs_sta.h
driver-ops.c
mac80211: fix station rate table updates on assoc
2021-02-10 09:09:25 +01:00
driver-ops.h
mac80211: do not call driver wake_tx_queue op during reconfig
2019-04-27 09:34:45 +02:00
ethtool.c
ht.c
mac80211: fix TX aggregation start/stop callback race
2018-11-10 07:42:47 -08:00
ibss.c
mac80211: fix double free in ibss_leave
2021-03-30 14:41:43 +02:00
ieee80211_i.h
mac80211: add fragment cache to sta_info
2021-06-03 08:23:28 +02:00
iface.c
mac80211: add fragment cache to sta_info
2021-06-03 08:23:28 +02:00
Kconfig
key.c
mac80211: prevent mixed key and fragment cache attacks
2021-06-03 08:23:28 +02:00
key.h
mac80211: prevent mixed key and fragment cache attacks
2021-06-03 08:23:28 +02:00
led.c
led.h
main.c
mac80211: bail out if cipher schemes are invalid
2021-05-22 10:40:27 +02:00
Makefile
mesh.c
mac80211: free peer keys before vif down in mesh
2019-07-21 09:05:52 +02:00
mesh.h
mac80211: mesh: fix cleanup for mesh pathtable
2016-04-05 21:34:53 +02:00
mesh_hwmp.c
mac80211: fix potential overflow when multiplying to u32 integers
2021-03-03 17:44:34 +01:00
mesh_pathtbl.c
mac80211: mesh: fix mesh_pathtbl_init() error path
2020-12-29 13:44:48 +01:00
mesh_plink.c
mac80211: Fix possible sband related NULL pointer de-reference
2018-03-24 11:00:17 +01:00
mesh_ps.c
mesh_sync.c
mac80211: Remove invalid flag operations in mesh TSF synchronization
2017-11-30 08:39:13 +00:00
michael.c
michael.h
mlme.c
mac80211: clear the beacon's CRC after channel switch
2021-05-22 10:40:29 +02:00
ocb.c
mac80211: remove rx_stats.last_rx update after sta alloc
2016-04-06 13:18:15 +02:00
offchannel.c
mac80211: flush hw_roc_start work before cancelling the ROC
2017-10-05 09:43:58 +02:00
pm.c
mac80211: flush delayed work when entering suspend
2017-03-15 10:02:47 +08:00
rate.c
mac80211: fix station rate table updates on assoc
2021-02-10 09:09:25 +01:00
rate.h
mac80211: remove sta_info debugfs sub-struct
2016-04-05 11:59:05 +02:00
rc80211_minstrel.c
mac80211: minstrel: fix tx status processing corner case
2020-11-24 13:03:09 +01:00
rc80211_minstrel.h
mac80211: minstrel: remove deferred sampling code
2020-11-24 13:03:09 +01:00
rc80211_minstrel_debugfs.c
rc80211_minstrel_ht.c
mac80211: minstrel_ht: fix per-group max throughput rate initialization
2020-01-29 10:24:30 +01:00
rc80211_minstrel_ht.h
rc80211_minstrel_ht_debugfs.c
rx.c
mac80211: add fragment cache to sta_info
2021-06-03 08:23:28 +02:00
scan.c
mac80211: fix scan completed tracing
2016-09-15 16:46:16 +02:00
spectmgmt.c
mac80211: Do not disconnect on invalid operating class
2018-05-30 07:50:28 +02:00
sta_info.c
mac80211: add fragment cache to sta_info
2021-06-03 08:23:28 +02:00
sta_info.h
mac80211: add fragment cache to sta_info
2021-06-03 08:23:28 +02:00
status.c
mac80211: add ieee80211_is_any_nullfunc()
2020-05-10 10:28:03 +02:00
tdls.c
mac80211: handle deauthentication/disassociation from TDLS peer
2019-10-05 12:30:09 +02:00
tkip.c
mac80211: Fix TKIP replay protection immediately after key setup
2020-02-05 13:05:50 +00:00
tkip.h
mac80211: move TKIP TX IVs to public part of key struct
2016-02-24 09:04:38 +01:00
trace.c
trace.h
mac80211: add offset_tsf driver op and use it for mesh
2016-09-30 13:45:44 +02:00
trace_msg.h
tx.c
mac80211: fix use of skb payload instead of header
2020-11-18 18:26:26 +01:00
util.c
mac80211: consider more elements in parsing CRC
2020-03-11 07:53:02 +01:00
vht.c
mac80211: do not allow bigger VHT MPDUs than the hardware supports
2020-10-14 09:48:12 +02:00
wep.c
mac80211: Add RX flag to indicate ICV stripped
2018-01-17 09:38:49 +01:00
wep.h
wme.c
wme.h
wpa.c
mac80211: Do not use stack memory with scatterlist for GMAC
2019-07-10 09:55:35 +02:00
wpa.h