From 799a29d37cfc55e552eb3cc458ca95b01d055351 Mon Sep 17 00:00:00 2001 From: James Prestwood Date: Wed, 17 Apr 2019 15:16:44 -0700 Subject: [PATCH] eapol: only check for snonce if MIC is used In eapol_key_handle, 'have_snonce' is checked before decrypting the key data. For FILS, there will be no snonce so this check can be skipped if mic_len == 0. --- src/eapol.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/eapol.c b/src/eapol.c index 02c863e8..256f71ee 100644 --- a/src/eapol.c +++ b/src/eapol.c @@ -1918,8 +1918,11 @@ static void eapol_key_handle(struct eapol_sm *sm, if ((ek->encrypted_key_data && !sm->handshake->wpa_ie) || (ek->key_type == 0 && sm->handshake->wpa_ie)) { - /* Haven't received step 1 yet, so no ptk */ - if (!sm->handshake->have_snonce) + /* + * If using a MIC (non-FILS) but haven't received step 1 yet + * we disregard since there will be no ptk + */ + if (sm->mic_len && !sm->handshake->have_snonce) return; kek = handshake_state_get_kek(sm->handshake);