On Tue, Mar 28, 2017 at 11:22:17PM -0500, [email protected] wrote:
> I follow i386 stable and after applying the WPA1/WPA2 MITM fix to 6.0 (#018)
> I can no longer obtain an IP address via dhclient when WPA2 is in use. This
> happens with both PSK and enterprise modes (via wpa_supplicant). Wireless
> (iwi0) connections without encryption work fine.
>
> I tried the 03/25/17 snapshot and that does not resolve the issue.
>
> I reversed patch #018 and and built a stable kernel and that does resolve the
> issue.
>
> With the iwi debug flag enabled I see the expected rssi lines and then the 4
> handshake messages without patch #018. These messages are then followed by
> normal dhclient success.
>
> Mar 28 22:14:51 /bsd: iwi0: begin active scan
> Mar 28 22:14:51 /bsd: iwi0: received probe_resp from 00:0f:66:b0:d9:dc rssi
> 66 mode auto
> Mar 28 22:14:51 /bsd: iwi0: received beacon from 00:0f:66:b0:d9:dc rssi 60
> mode auto
> Mar 28 22:14:51 /bsd: iwi0: received probe_resp from 00:0f:66:b0:d9:dc rssi
> 63 mode auto
> Mar 28 22:14:51 /bsd: iwi0: received beacon from 2c:59:e5:f4:57:e3 rssi 44
> mode auto
> Mar 28 22:14:52 /bsd: iwi0: received probe_resp from 44:94:fc:78:a4:40 rssi
> 56 mode auto
> Mar 28 22:14:52 /bsd: iwi0: received probe_resp from 2c:59:e5:f4:57:e3 rssi
> 47 mode auto
> Mar 28 22:14:52 /bsd: iwi0: received beacon from 2c:59:e5:f4:57:e3 rssi 47
> mode auto
> Mar 28 22:14:52 /bsd: iwi0: received probe_resp from 44:94:fc:78:a4:40 rssi
> 54 mode auto
> Mar 28 22:14:52 /bsd: iwi0: received probe_resp from 7c:bf:b1:77:40:30 rssi
> 37 mode auto
> Mar 28 22:14:52 /bsd: iwi0: received probe_resp from 7c:bf:b1:77:40:30 rssi
> 38 mode auto
> Mar 28 22:14:52 /bsd: iwi0: received probe_resp from 7c:bf:b1:77:40:30 rssi
> 37 mode auto
> Mar 28 22:14:52 /bsd: iwi0: received probe_resp from 7c:bf:b1:77:40:30 rssi
> 38 mode auto
> Mar 28 22:14:52 /bsd: iwi0: end active scan
> Mar 28 22:14:52 /bsd: iwi0: received msg 1/4 of the 4-way handshake from
> 00:0f:66:b0:d9:dc
> Mar 28 22:14:52 /bsd: iwi0: sending msg 2/4 of the 4-way handshake to
> 00:0f:66:b0:d9:dc
> Mar 28 22:14:52 /bsd: iwi0: received msg 3/4 of the 4-way handshake from
> 00:0f:66:b0:d9:dc
> Mar 28 22:14:52 /bsd: iwi0: sending msg 4/4 of the 4-way handshake to
> 00:0f:66:b0:d9:dc
>
> With patch #018 applied or with 3/25 snapshot, active scanning occurs and
> ends, but no RSNA handshake happens. Therefore, dhclient does not succeed.
iwi(4) is being stupid and does not forward state changes to the
net80211 stack. It is a wonder this driver even works at all.
This diff is untested. I have a iwi(4) minipci card but will need to
make some rearrangements to plug it.
Can you please test this ASAP? The 6.1 release deadline is very close.
Index: if_iwi.c
===================================================================
RCS file: /cvs/src/sys/dev/pci/if_iwi.c,v
retrieving revision 1.135
diff -u -p -r1.135 if_iwi.c
--- if_iwi.c 8 Mar 2017 12:02:41 -0000 1.135
+++ if_iwi.c 29 Mar 2017 08:47:03 -0000
@@ -733,7 +733,8 @@ iwi_newstate(struct ieee80211com *ic, en
switch (nstate) {
case IEEE80211_S_SCAN:
iwi_scan(sc);
- break;
+ ic->ic_state = nstate;
+ return 0;
case IEEE80211_S_AUTH:
iwi_auth_and_assoc(sc);
@@ -767,8 +768,7 @@ iwi_newstate(struct ieee80211com *ic, en
break;
}
- ic->ic_state = nstate;
- return 0;
+ return sc->sc_newstate(ic, nstate, arg);
}
/*