Linux: wifi: mac80211: unlist vifs when their netdev is unregistered
What fixes it
- 20a56e96a6f7b4dfbd13f8732fd2673409fc7ba0LinuxCVE List
- 821bab0456dfca12acef6df702c8f2477d313227LinuxCVE List
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
In the Linux kernel, the following vulnerability has been resolved:
wifi: mac80211: unlist vifs when their netdev is unregistered
mac80211 only removes vifs from the local->interfaces list when an interface is removed via ieee80211_if_remove(), before it unregisters the netdev. However, it's possible for a netdev to be unregistered without going through that: When the netns that holds the wiphy is destroyed, the wiphy is supposed to move to the init_ns, but that can run into allocation failures.
Then, mac80211 has an interface listed that doesn't exist, and will eventually hit
BUG: failure at net/wireless/core.h:141/wiphy_to_rdev()! ... _cfg80211_unregister_wdev+0x24/0x36a [cfg80211] cfg80211_unregister_wdev+0x15/0x1d [cfg80211] ieee80211_remove_interfaces+0x1ff/0x257 [mac80211] ieee80211_unregister_hw+0x73/0x1d1 [mac80211] mac80211_hwsim_del_radio+0x114/0x166 [mac80211_hwsim]
Remove the interface from the list in ->ndo_uninit if it's still around to avoid this.
Text from CVE List
Affected versions 14
- Linuxaffected: 463d018323851a608eef52a9427b0585005c647f before a22c02863439993095acd0c3db97fa53cd515f4fCVE List
- Linuxaffected: 463d018323851a608eef52a9427b0585005c647f before 20a56e96a6f7b4dfbd13f8732fd2673409fc7ba0CVE List
- Linuxaffected: 463d018323851a608eef52a9427b0585005c647f before b735ad1a9aca6080192c1316cf2706e5e1318762CVE List
- Linuxaffected: 463d018323851a608eef52a9427b0585005c647f before d45bf731ec7085d2cc2c5d179d3b3b6c743d4fb1CVE List
- Linuxaffected: 463d018323851a608eef52a9427b0585005c647f before 821bab0456dfca12acef6df702c8f2477d313227CVE List
- Linuxaffected: 463d018323851a608eef52a9427b0585005c647f before eee2efd82867b623982ac51925b5a1812a74c50dCVE List
- Linuxaffected: 2.6.32CVE List
- Linuxunaffected: all versions before 2.6.32CVE List
- Linuxunaffected: 6.1.189 through 6.1.*CVE List
- Linuxunaffected: 6.6.158 through 6.6.*CVE List
- Linuxunaffected: 6.12.112 through 6.12.*CVE List
- Linuxunaffected: 6.18.54 through 6.18.*CVE List
- Linuxunaffected: 7.2.8 through 7.2.*CVE List
- Linuxunaffected: 7.3CVE List
References 6
- git.kernel.org/stable/c/a22c02863439993095acd0c3db97fa53cd515f4fReferencevia CVE List
- git.kernel.org/stable/c/20a56e96a6f7b4dfbd13f8732fd2673409fc7ba0Referencevia CVE List
- git.kernel.org/stable/c/b735ad1a9aca6080192c1316cf2706e5e1318762Referencevia CVE List
- git.kernel.org/stable/c/d45bf731ec7085d2cc2c5d179d3b3b6c743d4fb1Referencevia CVE List
- git.kernel.org/stable/c/821bab0456dfca12acef6df702c8f2477d313227Referencevia CVE List
- git.kernel.org/stable/c/eee2efd82867b623982ac51925b5a1812a74c50dReferencevia CVE List