Bug 2302577 - wpa_supplicant 2.11 breaks WPA2-PSK / WPA3-SAE authentication on Linux' brcmfmac
Summary: wpa_supplicant 2.11 breaks WPA2-PSK / WPA3-SAE authentication on Linux' brcmfmac
Keywords:
Status: MODIFIED
Alias: None
Product: Fedora
Classification: Fedora
Component: wpa_supplicant
Version: 40
Hardware: All
OS: Linux
high
medium
Target Milestone: ---
Assignee: Lubomir Rintel
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2024-08-03 05:27 UTC by d1w0u
Modified: 2024-08-07 18:15 UTC (History)
22 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed:
Type: ---
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Fedora Package Sources wpa_supplicant pull-request 25 0 None None None 2024-08-06 05:56:58 UTC

Description d1w0u 2024-08-03 05:27:58 UTC
I upgraded this morning to the latest version of wpa_supplicant (1:2.11-1.fc40) and after rebooting the machine, the internet wasn't working.

I tried to edit some configuration but no luck, so I decided to downgrade the package to the previous working version 1:2.10-10.fc40 and it's working again.

I don't have logs but I could see in journalctl the first message was about trying to create p2p device from wireless one with no success.

The WiFi icon was loading without being connected and suddenly the device became disabled.

Reproducible: Didn't try

Steps to Reproduce:
1. sudo dnf upgrade --refresh
Actual Results:  
The internet connection couldn't be stablished over wireless.

Expected Results:  
A successful internet connection to the AP.

Comment 1 isgospodinov 2024-08-03 09:39:42 UTC
Exactly the same thing happens to me.
fc40.x86_64 Fedora 40
Broadcom BCM4360

Comment 2 Jean-Christophe Choisy 2024-08-03 14:58:26 UTC
I can confirm broadcom device is also broken by this update on my aarch64 system running Fedora 40. (Fedora Asahi Remix on MacBook Air M1).

I think archlinux (x86_64) tried to fix this by re-applying a patch called "add extra-ies only if allowed by driver"

Of course I don't even understand what any of that means, so it might very well be completely unrelated.

Comment 3 Janne Grunau 2024-08-03 20:02:01 UTC
A fix for a kernel NULL ptr dereference in the brcmfmac driver is sent as https://lore.kernel.org/asahi/20240803-brcmfmac_pmksa_del_ssid-v1-1-4e85f19135e1@jannau.net/T/#u

This will be hopefully in the next stable kernel. An update for the Fedora-Asahi-Remix kernel with this fix will be built as soon as possible.

This should allow configuring the as WPA2 (if possible) to allow wlan connectivity with wpa_supplicant 2.11. WPA3 / SAE Offload is unfortunately still broken with this fix. This seems to be a difference between wpa_supplicant 2.10 + SAE Offload patches and wpa_supplicant 2.11 with merged SAE Offload.

Comment 4 Jonathan Steffan 2024-08-03 20:51:47 UTC
BCM43602 802.11ac Wireless LAN SoC on a MBP 12,1 was impacted. I needed to connect to wired networking and downgrade.

Begin time     : Sat 03 Aug 2024 02:45:01 PM MDT
Begin rpmdb    : ff7f3d8ac292e23f7e044ab492474ac26ac8ba8c59cab2177c7047456276c649
End time       : Sat 03 Aug 2024 02:45:04 PM MDT (3 seconds)
End rpmdb      : 24d91113d752a2593f2aefe8b15045b8e44deaf46cb03a33aa5b0fd7b614f5f8
User           : Jon <jon>
Return-Code    : Success
Releasever     : 40
Command Line   : downgrade wpa_supplicant
Comment        : 
Packages Altered:
    Downgrade  wpa_supplicant-1:2.10-10.fc40.x86_64 @fedora
    Downgraded wpa_supplicant-1:2.11-1.fc40.x86_64  @@System

Comment 5 Janne Grunau 2024-08-04 13:02:08 UTC
A fix by reverting a single upstream commit is available at https://src.fedoraproject.org/rpms/wpa_supplicant/pull-request/25

Reported upstream in http://lists.infradead.org/pipermail/hostap/2024-August/042893.html

Comment 6 Janne Grunau 2024-08-05 04:58:20 UTC
Instead of downgrade to wpa_supplicant 2.10 disabling Offload works add well. Add "brcmfmac.feature_disable=0x82000" to the kernel command line either at the bootloader or via grubby. See https://iwd.wiki.kernel.org/offloading for reference.

Comment 7 isgospodinov 2024-08-05 12:03:06 UTC
(In reply to Janne Grunau from comment #6)
> Instead of downgrade to wpa_supplicant 2.10 disabling Offload works add
> well. Add "brcmfmac.feature_disable=0x82000" to the kernel command line
> either at the bootloader or via grubby. See
> https://iwd.wiki.kernel.org/offloading for reference.

This is not work for a configurations like mine with tp-link Archer T6E(ac1300 wireless dual band pci express adapter) aka BCM4360
The driver in use is broadcom hybrid wireless driver 'wl'
So obviously I'll stick with wpa_supplicant 2.10-10 on Fedora 40

Comment 8 traxtopel 2024-08-06 10:11:53 UTC
Seeing a issue using wpa-eap with a pkcs11 private key.Downgrade to 2.10 and it works again.

 <info>  [1722934597.2072] device (wlp1s0): Activation: (wifi) connection 'Wireless' has security, and secrets exist.  No new secrets needed.

Is this issue related or something different?

Comment 9 Vasilis Keramidas 2024-08-06 13:18:30 UTC
I had the same problem. No wi-fi AP could be found.
Once i downgraded to 2.10 everything start working again

Comment 10 traxtopel 2024-08-06 13:48:38 UTC
Mine is a different issue opened a new bug here.
https://bugzilla.redhat.com/show_bug.cgi?id=2303165

Comment 11 Fedora Update System 2024-08-06 15:07:53 UTC
FEDORA-2024-82fdfeff80 (wpa_supplicant-2.11-2.fc40) has been submitted as an update to Fedora 40.
https://bodhi.fedoraproject.org/updates/FEDORA-2024-82fdfeff80

Comment 12 isgospodinov 2024-08-06 16:52:04 UTC
(In reply to Fedora Update System from comment #11)
> FEDORA-2024-82fdfeff80 (wpa_supplicant-2.11-2.fc40) has been submitted as an
> update to Fedora 40.
> https://bodhi.fedoraproject.org/updates/FEDORA-2024-82fdfeff80

Unfortunately, there is no change for me with 2.11-2
I am compelled to return again to 2.10-10
Тhis is my log :

19:12:45 wpa_supplicant: wlp5s0: CTRL-EVENT-SCAN-FAILED ret=-22
19:11:33 NetworkManager: <info>  [1722960693.9828] device (wlp5s0): supplicant interface state: disconnected -> inactive
19:11:33 wpa_supplicant: wlp5s0: CTRL-EVENT-SCAN-FAILED ret=-22
19:11:33 NetworkManager: <info>  [1722960693.6809] device (wlp5s0): state change: failed -> disconnected (reason 'none', sys-iface-state: 'managed')
19:11:33 wpa_supplicant: wlp5s0: CTRL-EVENT-DSCP-POLICY clear_all
19:11:33 NetworkManager: <info>  [1722960693.6805] device (wlp5s0): state change: config -> failed (reason 'ssid-not-found', sys-iface-state: 'managed')
19:11:32 wpa_supplicant: wlp5s0: CTRL-EVENT-SCAN-FAILED ret=-22 retry=1
19:11:07 NetworkManager: <info>  [1722960667.9492] device (wlp5s0): Activation: (wifi) connection 'WF-AP-5GHz' has security, and secrets exist.  No new secrets needed.
19:11:07 NetworkManager: <info>  [1722960667.9491] device (wlp5s0): state change: prepare -> config (reason 'none', sys-iface-state: 'managed')
19:11:07 NetworkManager: <info>  [1722960667.9489] device (wlp5s0): state change: need-auth -> prepare (reason 'none', sys-iface-state: 'managed')
19:11:07 NetworkManager: <info>  [1722960667.9485] device (wlp5s0): state change: config -> need-auth (reason 'none', sys-iface-state: 'managed')
19:11:07 NetworkManager: <info>  [1722960667.9485] device (wlp5s0): Activation: (wifi) access point 'WF-AP-5GHz' has security, but secrets are required.
19:11:07 NetworkManager: <info>  [1722960667.9483] device (wlp5s0): state change: prepare -> config (reason 'none', sys-iface-state: 'managed')
19:11:07 NetworkManager: <info>  [1722960667.9476] device (wlp5s0): state change: disconnected -> prepare (reason 'none', sys-iface-state: 'managed')
19:11:07 NetworkManager: <info>  [1722960667.9475] device (wlp5s0): Activation: starting connection 'WF-AP-5GHz' (2e7425e1-c3ef-426d-997e-497c74e11714)
19:11:04 wpa_supplicant: wlp5s0: CTRL-EVENT-SCAN-FAILED ret=-22
19:10:22 NetworkManager: <info>  [1722960622.1409] device (wlp5s0): state change: unavailable -> disconnected (reason 'supplicant-available', sys-iface-state: 'managed')
19:10:22 NetworkManager: <info>  [1722960622.1409] device (wlp5s0): supplicant interface state: internal-starting -> disconnected
19:10:22 NetworkManager: <info>  [1722960622.0250] device (wlp5s0): state change: unmanaged -> unavailable (reason 'managed', sys-iface-state: 'external')
19:10:22 NetworkManager: <info>  [1722960622.0249] manager: (wlp5s0): new 802.11 Wi-Fi device (/org/freedesktop/NetworkManager/Devices/2)
19:10:22 NetworkManager: <info>  [1722960622.0246] device (wlp5s0): driver supports Access Point (AP) mode
19:10:22 NetworkManager: <info>  [1722960622.0130] rfkill0: found Wi-Fi radio killswitch (at /sys/devices/pci0000:00/0000:00:01.2/0000:02:00.2/0000:03:07.0/0000:05:00.0/ieee80211/phy0/rfkill0) (driver wl)
19:10:21 NetworkManager: <info>  [1722960621.9498] Read config: /etc/NetworkManager/NetworkManager.conf (lib: 20-connectivity-fedora.conf, 22-wifi-mac-addr.conf, 90-broadcom-wl.conf)
19:10:20 kernel: wl 0000:05:00.0 wlp5s0: renamed from eth0
19:10:20 kernel: wl 0000:05:00.0 wlp5s0: renamed from eth0
19:10:20 kernel: wl 0000:05:00.0: enabling device (0000 -> 0002)
19:10:20 kernel:  wl_module_init+0x17/0xa0 [wl]
19:10:20 kernel:  wl_module_init+0x17/0xa0 [wl]
19:10:20 kernel:  ? __UNIQUE_ID_vermagic434+0x523e3f547ebb/0x523e3f547ebb [wl]
19:10:20 kernel:  getvar+0x20/0x70 [wl]
19:10:20 kernel: Modules linked in: ... wl(POE+) ...

Comment 13 isgospodinov 2024-08-06 17:31:47 UTC
(In reply to Fedora Update System from comment #11)
> FEDORA-2024-82fdfeff80 (wpa_supplicant-2.11-2.fc40) has been submitted as an
> update to Fedora 40.
> https://bodhi.fedoraproject.org/updates/FEDORA-2024-82fdfeff80

And for greater clarity, my log with wpa_supplicant 2.10-10

19:31:38 NetworkManager: <info>  [1722961898.6287] dhcp6 (wlp5s0): state changed new lease
19:31:38 avahi-daemon: Withdrawing address record for fe80::9f15:59a1:bf58:5677 on wlp5s0.
19:31:38 NetworkManager: <info>  [1722961898.6257] dhcp6 (wlp5s0): activation: beginning transaction (timeout in 45 seconds)
19:31:33 systemd-resolve: wlp5s0: Bus client set DNS server list to: yyy.yyy.yyy.yyy
19:31:33 systemd-resolve: wlp5s0: Bus client set default route setting: yes
19:31:33 avahi-daemon: Registering new address record for xxx.xxx.xxx.xxx on wlp5s0.IPv4.
19:31:33 avahi-daemon: Registering new address record for xxx.xxx.xxx.xxx on wlp5s0.IPv4.
19:31:33 avahi-daemon: New relevant interface wlp5s0.IPv4 for mDNS.
19:31:33 systemd-resolve: wlp5s0: Bus client set search domain list to: net-provider
19:31:33 avahi-daemon: Joining mDNS multicast group on interface wlp5s0.IPv4 with address xxx.xxx.xxx.xxx
19:31:33 NetworkManager: <info>  [1722961893.5293] policy: set 'WF-AP-5GHz' (wlp5s0) as default for IPv4 routing and DNS
19:31:33 NetworkManager: <info>  [1722961893.5293] policy: set 'WF-AP-5GHz' (wlp5s0) as default for IPv4 routing and DNS
19:31:33 NetworkManager: <info>  [1722961893.5290] dhcp4 (wlp5s0): state changed new lease, address=xxx.xxx.xxx.xxx
19:31:33 NetworkManager: <info>  [1722961893.3748] dhcp4 (wlp5s0): state changed new lease, address=xxx.xxx.xxx.xxx, acd pending
19:31:33 avahi-daemon: Registering new address record for fe80::9f15:59a1:bf58:5677 on wlp5s0.*.
19:31:33 avahi-daemon: Registering new address record for fe80::9f15:59a1:bf58:5677 on wlp5s0.*.
19:31:33 avahi-daemon: New relevant interface wlp5s0.IPv6 for mDNS.
19:31:33 avahi-daemon: Joining mDNS multicast group on interface wlp5s0.IPv6 with address fe80::9f15:59a1:bf58:5677.
19:31:33 NetworkManager: <info>  [1722961893.2943] dhcp4 (wlp5s0): activation: beginning transaction (timeout in 45 seconds)
19:31:33 NetworkManager: <info>  [1722961893.2943] dhcp4 (wlp5s0): activation: beginning transaction (timeout in 45 seconds)
19:31:33 NetworkManager: <info>  [1722961893.2940] device (wlp5s0): state change: config -> ip-config (reason 'none', sys-iface-state: 'managed')
19:31:33 NetworkManager: <info>  [1722961893.2583] device (wlp5s0): Activation: (wifi) Stage 2 of 5 (Device Configure) successful. Connected to wireless network "WF-AP-5GHz"
19:31:33 NetworkManager: <info>  [1722961893.2583] device (wlp5s0): supplicant interface state: associating -> completed
19:31:33 wpa_supplicant: wlp5s0: CTRL-EVENT-CONNECTED - Connection to ac:84:c6:95:4d:ed completed [id=0 id_str=]
19:31:33 wpa_supplicant: wlp5s0: CTRL-EVENT-CONNECTED - Connection to ac:84:c6:95:4d:ed completed [id=0 id_str=]
19:31:33 wpa_supplicant: wlp5s0: WPA: Key negotiation completed with ac:84:c6:95:4d:ed [PTK=CCMP GTK=TKIP]
19:31:33 wpa_supplicant: wlp5s0: CTRL-EVENT-SUBNET-STATUS-UPDATE status=0
19:31:33 wpa_supplicant: wlp5s0: Associated with ac:84:c6:95:4d:ed
19:31:33 NetworkManager: <info>  [1722961893.1697] device (wlp5s0): supplicant interface state: disconnected -> associating
19:31:33 wpa_supplicant: wlp5s0: Trying to associate with ac:84:c6:95:4d:ed (SSID='WF-AP-5GHz' freq=5220 MHz)
19:31:33 wpa_supplicant: wlp5s0: Trying to associate with ac:84:c6:95:4d:ed (SSID='WF-AP-5GHz' freq=5220 MHz)
19:31:33 wpa_supplicant: wlp5s0: WPS-CANCEL
19:31:33 NetworkManager: <info>  [1722961893.1592] device (wlp5s0): Activation: (wifi) connection 'WF-AP-5GHz' has security, and secrets exist.  No new secrets needed.
19:31:33 NetworkManager: <info>  [1722961893.1590] device (wlp5s0): state change: prepare -> config (reason 'none', sys-iface-state: 'managed')
19:31:33 wpa_supplicant: wlp5s0: CTRL-EVENT-SCAN-FAILED ret=-22 retry=1
19:31:33 NetworkManager: <info>  [1722961893.1589] device (wlp5s0): state change: need-auth -> prepare (reason 'none', sys-iface-state: 'managed')
19:31:33 NetworkManager: <info>  [1722961893.1584] sup-iface[95955dfa455bbbfd,0,wlp5s0]: wps: type pbc start...
19:31:33 NetworkManager: <info>  [1722961893.1584] device (wlp5s0): state change: config -> need-auth (reason 'none', sys-iface-state: 'managed')
19:31:33 NetworkManager: <info>  [1722961893.1584] device (wlp5s0): Activation: (wifi) access point 'WF-AP-5GHz' has security, but secrets are required.
19:31:33 NetworkManager: <info>  [1722961893.1582] device (wlp5s0): state change: prepare -> config (reason 'none', sys-iface-state: 'managed')
19:31:33 NetworkManager: <info>  [1722961893.1579] device (wlp5s0): state change: disconnected -> prepare (reason 'none', sys-iface-state: 'managed')
19:31:33 NetworkManager: <info>  [1722961893.1579] device (wlp5s0): Activation: starting connection 'WF-AP-5GHz' (2e7425e1-c3ef-426d-997e-497c74e11313)
19:31:31 NetworkManager: <info>  [1722961891.1990] device (wlp5s0): state change: unavailable -> disconnected (reason 'supplicant-available', sys-iface-state: 'managed')
19:31:31 NetworkManager: <info>  [1722961891.1990] device (wlp5s0): supplicant interface state: internal-starting -> disconnected
19:31:30 NetworkManager: <info>  [1722961890.9370] device (wlp5s0): state change: unmanaged -> unavailable (reason 'managed', sys-iface-state: 'external')
19:31:30 NetworkManager: <info>  [1722961890.9369] manager: (wlp5s0): new 802.11 Wi-Fi device (/org/freedesktop/NetworkManager/Devices/2)
19:31:30 NetworkManager: <info>  [1722961890.9366] device (wlp5s0): driver supports Access Point (AP) mode
19:31:30 NetworkManager: <info>  [1722961890.9234] rfkill0: found Wi-Fi radio killswitch (at /sys/devices/pci0000:00/0000:00:01.2/0000:02:00.2/0000:03:07.0/0000:05:00.0/ieee80211/phy0/rfkill0) (driver wl)
19:31:30 NetworkManager: <info>  [1722961890.8692] Read config: /etc/NetworkManager/NetworkManager.conf (lib: 20-connectivity-fedora.conf, 22-wifi-mac-addr.conf, 90-broadcom-wl.conf)
19:31:28 kernel: wl 0000:05:00.0 wlp5s0: renamed from eth0
19:31:28 kernel: wl 0000:05:00.0 wlp5s0: renamed from eth0
19:31:28 kernel: wl 0000:05:00.0: enabling device (0000 -> 0002)
19:31:28 kernel:  wl_module_init+0x17/0xa0 [wl]
19:31:28 kernel:  wl_module_init+0x17/0xa0 [wl]
19:31:28 kernel:  ? __UNIQUE_ID_vermagic434+0x4412bf5a7ebb/0x4412bf5a7ebb [wl]
19:31:28 kernel:  getvar+0x20/0x70 [wl]
19:31:28 kernel: Modules linked in: ... wl(POE+) ...

Comment 14 Janne Grunau 2024-08-06 19:14:01 UTC
I forgot that wpa_supplicant 2.11 will hit a NULL pointer dereference in the upstream / Fedora kernel. A fix was submitted on 3rd of August at https://lore.kernel.org/linux-wireless/20240803-brcmfmac_pmksa_del_ssid-v1-1-4e85f19135e1@jannau.net/

The change is included in the Fedora Asahi remix kernel so wpa_supplicant-2.11-2 works on Fedora Asahi remix systems.

Comment 15 Pavel Roskin 2024-08-07 17:16:41 UTC
(In reply to Janne Grunau from comment #14)
> I forgot that wpa_supplicant 2.11 will hit a NULL pointer dereference in the
> upstream / Fedora kernel. A fix was submitted on 3rd of August at
> https://lore.kernel.org/linux-wireless/20240803-brcmfmac_pmksa_del_ssid-v1-1-
> 4e85f19135e1/
> 
> The change is included in the Fedora Asahi remix kernel so
> wpa_supplicant-2.11-2 works on Fedora Asahi remix systems.

Janne, could you please confirm that wpa_supplicant-2.11-2.fc40 would work with brcmfmac on non-Asahi kernels? It's about to go to stable.

Comment 16 Jonathan Steffan 2024-08-07 17:26:45 UTC
The following is working for me with the updated package:

$ uname -r
6.9.12-200.fc40.x86_64
$ rpm -q wpa_supplicant
wpa_supplicant-2.11-2.fc40.x86_64
$ lshw -C network
WARNING: you should run this program as super-user.
  *-network                 
       description: Wireless interface
       product: BCM43602 802.11ac Wireless LAN SoC
       vendor: Broadcom Inc. and subsidiaries
       physical id: 0
       bus info: pci@0000:03:00.0
       logical name: wlp3s0
       version: 01
       serial: XXX
       width: 64 bits
       clock: 33MHz
       capabilities: bus_master cap_list ethernet physical wireless
       configuration: broadcast=yes driver=brcmfmac driverversion=7.35.177.61 firmware=01-ea662a8c ip=XXX latency=0 multicast=yes wireless=IEEE 802.11
       resources: irq:80 memory:c1400000-c1407fff memory:c1000000-c13fffff

Comment 17 Janne Grunau 2024-08-07 18:15:25 UTC
wpa_supplicant-2.11-2 is an improvement on non-asahi brcmfmac systems. Connecting to WPA2/WPA3 will work again.

On disconnect it will hit the NULL pointer dereference in the kernel (fixed by https://lore.kernel.org/linux-wireless/20240803-brcmfmac_pmksa_del_ssid-v1-1-4e85f19135e1@jannau.net/). For stationary system this is probably not noticeable but systems switching between wireless networks will need to be rebooted. This bug is already triggered wpa_supplicant-2.11-1 after the initial connection to a WPA2/WPA3 network time outs.


Note You need to log in before you can comment on or make changes to this bug.