Page MenuHomeFreeBSD

Backport wpa fixes to stable/10.
ClosedPublic

Authored by jhb on Oct 18 2017, 9:16 PM.
Tags
None
Referenced Files
Unknown Object (File)
Mar 6 2024, 6:14 AM
Unknown Object (File)
Jan 15 2024, 12:07 PM
Unknown Object (File)
Jan 14 2024, 10:15 PM
Unknown Object (File)
Dec 20 2023, 5:26 AM
Unknown Object (File)
Dec 15 2023, 6:28 PM
Unknown Object (File)
Nov 25 2023, 3:55 AM
Unknown Object (File)
Sep 25 2023, 11:59 AM
Unknown Object (File)
Jul 13 2023, 11:40 PM
Subscribers

Details

Summary
  • hostapd: Avoid key reinstallation in FT handshake
  • Prevent reinstallation of an already in-use group key
  • Extend protection of GTK/IGTK reinstallation of WNM-Sleep Mode cases
  • Fix TK configuration to the driver in EAPOL-Key 3/4 retry case
  • Prevent installation of an all-zero TK
  • Fix PTK rekeying to generate a new ANonce
  • TDLS: Reject TPK-TK reconfiguration
  • WNM: Ignore Key Data in WNM Sleep Mode Response frame if no PMF in use
  • WNM: Ignore WNM-Sleep Mode Response if WNM-Sleep Mode has not been used
  • WNM: Ignore WNM-Sleep Mode Response without pending request
  • FT: Do not allow multiple Reassociation Response frames
  • TDLS: Ignore incoming TDLS Setup Response retries

This was generated by applying the 2.5 patches committed to HEAD to
stable/10 individually. Notes from that process:

  • patch 1: conflict in wpa_auth_ft.c manually resolved (preceding line not present)
  • patch 2: conflicts in rsn_supp/wpa.c:
    • use WPA_IGTK_LEN instead of flexible key len
    • Only add new os_memset()'s (others are added in different commits that resulted in conflicts)
    • conflicts in last function were similar to changes already resolved in new wpa_supplicant_install_gtk(), so just use new code that calls the new function
  • patch 3: conflicts in rsn_supp/wpa.c: just added new paramter to function for both conflicts
  • patch 4: conflicts in rsn_supp/wpa.c and wpa_i.h:
    • resolved by applying delta to existing code and ignoring additional memset/field in newer code
  • patch 5: conflicts in all files
    • since the older ptk struct is a packed struct that seems to match an on-wire format, I instead added 'ptk_installed' as a flag in the parent 'sm' structure
  • patch 6: applied cleanly
  • patch 7: conflicts in dtls.c: applied deltas to existing code
    • for the last conflict, the existing code was missing a conditional in newer code and always called os_get_random(). As a result, I moved the tk_set = 0 assignment to the top-level to match. This meant the new function from the original patch was also not used.
  • patch 8: applied cleanly
  • patch 9: conflicts in all files
    • ctrl_iface.c changed function doesn't exist in 2.0
    • applied deltas to existing code
  • patch 10: applied cleanly
  • patch 11: conflicts in rsn_supp/wpa.c: applied delta to existing code
  • patch 12: conflicts in tdls.c: applied delta to existing code
Test Plan
  • can still associate with home LAN on a 10.3-stable system running patched wpa_supplicant, wpa_cli, etc.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable