aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJouni Malinen <j@w1.fi>2017-09-22 08:52:55 (GMT)
committerJouni Malinen <j@w1.fi>2017-10-15 23:03:47 (GMT)
commite760851176c77ae6de19821bb1d5bf3ae2cb5187 (patch)
treecff6747f5b6a1349a737d9dcb209d4edeebe1e42
parente22aa2f6ec47d881c78532b6620a394c0a014e48 (diff)
downloadhostap-e760851176c77ae6de19821bb1d5bf3ae2cb5187.zip
hostap-e760851176c77ae6de19821bb1d5bf3ae2cb5187.tar.gz
hostap-e760851176c77ae6de19821bb1d5bf3ae2cb5187.tar.bz2
FILS: Do not allow multiple (Re)Association Response frames
The driver is expected to not report a second association event without the station having explicitly request a new association. As such, this case should not be reachable. However, since reconfiguring the same pairwise or group keys to the driver could result in nonce reuse issues, be extra careful here and do an additional state check to avoid this even if the local driver ends up somehow accepting an unexpected (Re)Association Response frame. Signed-off-by: Jouni Malinen <j@w1.fi>
-rw-r--r--src/rsn_supp/wpa.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/rsn_supp/wpa.c b/src/rsn_supp/wpa.c
index fc6c4c8..215834e 100644
--- a/src/rsn_supp/wpa.c
+++ b/src/rsn_supp/wpa.c
@@ -4068,6 +4068,12 @@ int fils_process_assoc_resp(struct wpa_sm *sm, const u8 *resp, size_t len)
return -1;
}
+ if (sm->fils_completed) {
+ wpa_printf(MSG_DEBUG,
+ "FILS: Association has already been completed for this FILS authentication - ignore unexpected retransmission");
+ return -1;
+ }
+
wpa_hexdump(MSG_DEBUG, "FILS: (Re)Association Response frame",
resp, len);