SAE: Fix potential infinite loop in mismatching PMK case on AP
Commite61fea6b46
('SAE: Fix PMKSA caching behavior in AP mode') modified the PSK fetching loop to not override PMK in case of SAE with PMKSA caching. However, that commit missed the error path cases where there is need to break from the loop with exact negative of the check in the beginning of the loop. This could result in hitting an infinite loop in hostapd if a station derived a different PMK value from otherwise successfully completed SAE authentication or if a STA used a different PMK with a PMKSA caching attempt after a previously completed successful authentication. Fix this by adding the matching break condition on SAE AKM within the loops. Fixes:e61fea6b46
("SAE: Fix PMKSA caching behavior in AP mode") Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
This commit is contained in:
parent
427729ee67
commit
f5e0a3324b
1 changed files with 4 additions and 2 deletions
|
@ -881,7 +881,8 @@ static int wpa_try_alt_snonce(struct wpa_state_machine *sm, u8 *data,
|
|||
break;
|
||||
}
|
||||
|
||||
if (!wpa_key_mgmt_wpa_psk(sm->wpa_key_mgmt))
|
||||
if (!wpa_key_mgmt_wpa_psk(sm->wpa_key_mgmt) ||
|
||||
wpa_key_mgmt_sae(sm->wpa_key_mgmt))
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -2680,7 +2681,8 @@ SM_STATE(WPA_PTK, PTKCALCNEGOTIATING)
|
|||
}
|
||||
#endif /* CONFIG_FILS */
|
||||
|
||||
if (!wpa_key_mgmt_wpa_psk(sm->wpa_key_mgmt))
|
||||
if (!wpa_key_mgmt_wpa_psk(sm->wpa_key_mgmt) ||
|
||||
wpa_key_mgmt_sae(sm->wpa_key_mgmt))
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue