diff options
| author | Johannes Berg <johannes.berg@intel.com> | 2019-02-13 15:13:30 +0100 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2019-06-25 11:34:55 +0800 |
| commit | 61113ed908d86ad06319a9c774800cfa3f6f8766 (patch) | |
| tree | 422c340b91d631db419d9483e3d2e7b76f7a1aab | |
| parent | 4a6d3e2fcada25b61745c71afb09c35383ef0b3f (diff) | |
| download | linux-61113ed908d86ad06319a9c774800cfa3f6f8766.tar.gz linux-61113ed908d86ad06319a9c774800cfa3f6f8766.tar.bz2 linux-61113ed908d86ad06319a9c774800cfa3f6f8766.zip | |
mac80211: drop robust management frames from unknown TA
commit 588f7d39b3592a36fb7702ae3b8bdd9be4621e2f upstream.
When receiving a robust management frame, drop it if we don't have
rx->sta since then we don't have a security association and thus
couldn't possibly validate the frame.
Cc: stable@vger.kernel.org
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
| -rw-r--r-- | net/mac80211/rx.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c index bf0b187f994e..1a1f850b76fd 100644 --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c @@ -3823,6 +3823,8 @@ static bool ieee80211_accept_frame(struct ieee80211_rx_data *rx) case NL80211_IFTYPE_STATION: if (!bssid && !sdata->u.mgd.use_4addr) return false; + if (ieee80211_is_robust_mgmt_frame(skb) && !rx->sta) + return false; if (multicast) return true; return ether_addr_equal(sdata->vif.addr, hdr->addr1); |
