diff --git a/sys/netproto/802_11/wlan_tkip/ieee80211_crypto_tkip.c b/sys/netproto/802_11/wlan_tkip/ieee80211_crypto_tkip.c --- a/sys/netproto/802_11/wlan_tkip/ieee80211_crypto_tkip.c +++ b/sys/netproto/802_11/wlan_tkip/ieee80211_crypto_tkip.c @@ -358,7 +358,7 @@ mic); m_copydata(m, m->m_pkthdr.len - tkip.ic_miclen, tkip.ic_miclen, mic0); - if (memcmp(mic, mic0, tkip.ic_miclen)) { + if (timingsafe_bcmp(mic, mic0, tkip.ic_miclen)) { /* NB: 802.11 layer handles statistic and debug msg */ ieee80211_notify_michael_failure(vap, wh, k->wk_rxkeyix != IEEE80211_KEYIX_NONE ? diff --git a/sys/netproto/802_11/wlan_ccmp/ieee80211_crypto_ccmp.c b/sys/netproto/802_11/wlan_ccmp/ieee80211_crypto_ccmp.c --- a/sys/netproto/802_11/wlan_ccmp/ieee80211_crypto_ccmp.c +++ b/sys/netproto/802_11/wlan_ccmp/ieee80211_crypto_ccmp.c @@ -639,7 +639,7 @@ space = m->m_len; } } - if (memcmp(mic, a, ccmp.ic_trailer) != 0) { + if (timingsafe_bcmp(mic, a, ccmp.ic_trailer) != 0) { IEEE80211_NOTE_MAC(vap, IEEE80211_MSG_CRYPTO, wh->i_addr2, "%s", "AES-CCM decrypt failed; MIC mismatch"); vap->iv_stats.is_rx_ccmpmic++;