wpa_supplicant 2.12-1: WPA2-Enterprise EAP-TLS fails at 4-way handshake, 2.11 works
Anil Kumar
akryptic00 at gmail.com
Sun Aug 23 05:57:33 PDT 2026
Hello,
I am experiencing what appears to be a regression in wpa_supplicant
2.12-1 compared to 2.11-5 on a WPA2-Enterprise / IEEE 802.1X network
using EAP-TLS.
The exact same Wi-Fi hardware, university network, certificates,
configuration, kernel environment, and NetworkManager setup works with
wpa_supplicant 2.11-5 but fails with 2.12-1.
Hardware:
ASUS Zenbook
Intel Wi-Fi 6E AX211 160MHz
PCI device: Intel Meteor Lake PCH CNVi WiFi
Driver: iwlwifi
Software:
wpa_supplicant: 2:2.12-1 (failing)
wpa_supplicant: 2.11-5 (working)
NetworkManager: 1.58.1-1
OpenSSL: 3.6.3-1
Kernel: 7.1.5-arch1-2
Distribution: Arch Linux
The EAP-TLS authentication itself succeeds. The TLS handshake completes,
the EAP state machine reaches SUCCESS, and the PMK is obtained and used
to derive the PTK/KEK/TK.
The failure occurs afterwards during the WPA 4-way handshake.
The sequence with 2.12 is:
EAP-TLS authentication
-> EAP-Success
-> PMK obtained
-> PTK/KEK/TK derived
-> 4-way handshake starts
-> RX EAPOL-Key 1/4
-> TX EAPOL-Key 2/4
-> control-port TX status: ack=1
-> no EAPOL-Key 3/4 is received
-> station is deauthenticated
Relevant log:
WPA: Sending EAPOL-Key 2/4
WPA: Send EAPOL-Key frame to <AP> ver=2 mic_len=16 key_mgmt=0x1
WPA: EAPOL-Key MIC using HMAC-SHA1
WPA: Derived Key MIC - hexdump(len=16): [redacted]
WPA: TX EAPOL-Key - hexdump(len=125): ...
nl80211: Send over control port dest=<AP> proto=0x888e len=125 no_encrypt=1
nl80211: tx_control_port cookie=...
nl80211: Control port TX status (ack=1)
No EAPOL-Key 3/4 is received after this.
About two seconds later the station is removed/deauthenticated:
kernel: wlan0: deauthenticated from <AP> (Reason: 3=DEAUTH_LEAVING)
nl80211: NL80211_CMD_DEL_STATION received
nl80211: Delete station <AP>
nl80211: NL80211_CMD_DEAUTHENTICATE received
wlan0: CTRL-EVENT-DISCONNECTED ... reason=3
I also see:
nl80211: _cmd_set_pmksa failed: -95 (Operation not supported)
The supplicant nevertheless continues into the 4-way handshake after
this, so I am not certain whether the PMKSA error is related.
I recently noticed upstream commit:
7c1e798198f34e35a9a1d40c05e0ae34a595cd62
"wpa_supplicant: Fix PMKSA caching with 802.1X 4-way handshake offload"
The commit specifically concerns driver-based 4-way handshake offload
with IEEE 802.1X and PMK handling. Since my failure occurs immediately
after successful 802.1X authentication and during the 4-way handshake,
I wondered whether this could be related to the same code path.
I am not certain that this commit is the fix for my issue, but the
similarity seemed significant enough to report.
The important reproducible difference is:
wpa_supplicant 2.11-5 -> works
wpa_supplicant 2.12-1 -> fails
The configuration and certificates are unchanged between the two
versions.
The failure is therefore specifically reproducible as a 2.11 -> 2.12
version change.
Thank you.
More information about the Hostap
mailing list