CCMP MIC verified with non-constant-time memcmp
Summary
ccmp_decrypt (:642): if(memcmp(mic,a,ccmp.ic_trailer)!=0) libc memcmp short-circuits on first differing byte timing-dependent. mic=attacker-supplied 8B tag from frame trailer a=CBC-MAC under secret AES key. Practical exploitability negligible: each byte depends on all prior AES outputs+secret attacker cannot iterate guesses byte-by-byte (not CBC padding oracle). Hardening/best-practice item constant-time mandated for AEAD tag check costs nothing to fix. Fix: consttime_memequal.
Discussion (0)
PoC verification
Evidence pack
findings/poc/DF-0656 Β· 1 files| File | Type | Description | Size | |
|---|---|---|---|---|
| manifest.json | file | 419 B | view raw |
Fix verification
not_testablerecommended fix identified; fix.diff not authored/validated in this batch
recommended fix identified; fix.diff not authored/validated in this batch
Confirmed kernel references
β
Detail
Exploit chain
none (Info severity)
Evidence (decisive lines)
Source-confirmed at sys/netproto/802_11/wlan_ccmp/ieee80211_crypto_ccmp.c:642: CCMP MIC verified with non-constant-time memcmp
Verified recommended fix
Source-confirmed at sys/netproto/802_11/wlan_ccmp/ieee80211_crypto_ccmp.c:642: CCMP MIC verified with non-constant-time memcmp
Verdict
Source-confirmed at sys/netproto/802_11/wlan_ccmp/ieee80211_crypto_ccmp.c:642: CCMP MIC verified with non-constant-time memcmp
No comments yet.