* [PATCH] mac80211: check if key has TKIP type before updating IV
@ 2012-10-02 19:34 Stanislaw Gruszka
2012-10-09 18:50 ` Johannes Berg
0 siblings, 1 reply; 2+ messages in thread
From: Stanislaw Gruszka @ 2012-10-02 19:34 UTC (permalink / raw)
To: Johannes Berg
Cc: Christian Lamparter, Luciano Coelho, Arik Nemtsov, linux-wireless
This patch fix corruption which can manifest itself by following crash
when switching on rfkill switch with rt2x00 driver:
https://bugzilla.redhat.com/attachment.cgi?id=615362
Pointer key->u.ccmp.tfm of group key get corrupted in:
ieee80211_rx_h_michael_mic_verify():
/* update IV in key information to be able to detect replays */
rx->key->u.tkip.rx[rx->security_idx].iv32 = rx->tkip_iv32;
rx->key->u.tkip.rx[rx->security_idx].iv16 = rx->tkip_iv16;
because rt2x00 always set RX_FLAG_MMIC_STRIPPED, even if key is not TKIP.
We already check type of the key in different path in
ieee80211_rx_h_michael_mic_verify() function, so adding additional
check here is reasonable.
Cc: stable@vger.kernel.org # 3.0+
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
---
net/mac80211/wpa.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/net/mac80211/wpa.c b/net/mac80211/wpa.c
index bdb53ab..e72562a 100644
--- a/net/mac80211/wpa.c
+++ b/net/mac80211/wpa.c
@@ -106,7 +106,8 @@ ieee80211_rx_h_michael_mic_verify(struct ieee80211_rx_data *rx)
if (status->flag & RX_FLAG_MMIC_ERROR)
goto mic_fail;
- if (!(status->flag & RX_FLAG_IV_STRIPPED) && rx->key)
+ if (!(status->flag & RX_FLAG_IV_STRIPPED) && rx->key &&
+ rx->key->conf.cipher == WLAN_CIPHER_SUITE_TKIP)
goto update_iv;
return RX_CONTINUE;
--
1.7.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] mac80211: check if key has TKIP type before updating IV
2012-10-02 19:34 [PATCH] mac80211: check if key has TKIP type before updating IV Stanislaw Gruszka
@ 2012-10-09 18:50 ` Johannes Berg
0 siblings, 0 replies; 2+ messages in thread
From: Johannes Berg @ 2012-10-09 18:50 UTC (permalink / raw)
To: Stanislaw Gruszka
Cc: Christian Lamparter, Luciano Coelho, Arik Nemtsov, linux-wireless,
John Linville
On Tue, 2012-10-02 at 21:34 +0200, Stanislaw Gruszka wrote:
> This patch fix corruption which can manifest itself by following crash
> when switching on rfkill switch with rt2x00 driver:
> https://bugzilla.redhat.com/attachment.cgi?id=615362
>
> Pointer key->u.ccmp.tfm of group key get corrupted in:
>
> ieee80211_rx_h_michael_mic_verify():
>
> /* update IV in key information to be able to detect replays */
> rx->key->u.tkip.rx[rx->security_idx].iv32 = rx->tkip_iv32;
> rx->key->u.tkip.rx[rx->security_idx].iv16 = rx->tkip_iv16;
>
> because rt2x00 always set RX_FLAG_MMIC_STRIPPED, even if key is not TKIP.
>
> We already check type of the key in different path in
> ieee80211_rx_h_michael_mic_verify() function, so adding additional
> check here is reasonable.
>
> Cc: stable@vger.kernel.org # 3.0+
> Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Looks fine, John, could you also pick this up for 3.7?
johannes
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2012-10-09 18:49 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-10-02 19:34 [PATCH] mac80211: check if key has TKIP type before updating IV Stanislaw Gruszka
2012-10-09 18:50 ` Johannes Berg
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).