-

CVE-2026-98406

wifi: mac80211: avoid WARN in set_bitrate_mask when sdata not in driver

In the Linux kernel, the following vulnerability has been resolved:

wifi: mac80211: avoid WARN in set_bitrate_mask when sdata not in driver

ieee80211_set_bitrate_mask() checks if the interface is running via
ieee80211_sdata_running(), but it does not check if the interface is
still present in the driver.

When sdata is running but IEEE80211_SDATA_IN_DRIVER is not set, the
call reaches drv_set_bitrate_mask() in driver-ops.h which hits

  wlan1: Failed check-sdata-in-driver check, flags: 0x0
  WARNING: net/mac80211/driver-ops.h:884 at drv_set_bitrate_mask

Syzkaller triggers this via wext SIOCSIWRATE ioctl. The Call Trace shows
wext_ioctl_dispatch() in wext-core.c dispatching the ioctl, calling
ioctl_standard_call() for SIOCSIWRATE, which calls cfg80211_wext_siwrate()
in wext-compat.c. That builds a bitrate mask and calls
rdev_set_bitrate_mask() which ends up in ieee80211_set_bitrate_mask() in
cfg.c. The interface is marked running via SDATA_STATE_RUNNING but
flags is 0, so check_sdata_in_driver() fails.

When the interface is being torn down, or when wext ioctl is issued
during interface bringup before drv_add_interface() sets IN_DRIVER, the
running check passes while IN_DRIVER is clear.

Check IEEE80211_SDATA_IN_DRIVER in ieee80211_set_bitrate_mask() before
calling the driver, returning -ENETDOWN. This avoids the WARN_ONCE in
driver-ops.h and matches other cfg.c operations that bail early when not
in driver.

This change should be safe because wiphy mutex is held in
cfg80211_wext_siwrate() via guard(wiphy), and IN_DRIVER is set/cleared
under RTNL and wiphy paths in drv_add_interface() and
drv_remove_interface() in driver-ops.c, so the check is race-free
against driver add/remove. Returning -ENETDOWN is the same error other
not-running paths use and does not introduce new locking.

[also add second syzbot report]
Daten sind bereitgestellt durch das CVE Programm von einer CVE Numbering Authority (CNA) (Unstrukturiert).
HerstellerLinux
≫
Produkt Linux
Default Statusunaffected
Version 554a43d5e77e8256aa9685ffd19ad555e6f77979
Version < 4ba86c44b2fcb1c3175caa2456b6d58f483446ab
Status affected
Version 554a43d5e77e8256aa9685ffd19ad555e6f77979
Version < 4095b66acae9893dd13deb39a4331651cb2f822b
Status affected
Version 554a43d5e77e8256aa9685ffd19ad555e6f77979
Version < c2cd9c44777cf97be3e35c10b7c2d8f59ebb9306
Status affected
Version 554a43d5e77e8256aa9685ffd19ad555e6f77979
Version < 0d1700394e9f5d0bd9bebad8d5a50edf983f52fd
Status affected
Version 554a43d5e77e8256aa9685ffd19ad555e6f77979
Version < 7978dda63d2b109ea9c3f7a096cd1aac6542cd54
Status affected
Version 554a43d5e77e8256aa9685ffd19ad555e6f77979
Version < 432c8532d5ccc2af77da43ed6ef1c80495a4efe8
Status affected
Version 554a43d5e77e8256aa9685ffd19ad555e6f77979
Version < c4ee5685af444024e6222ce29f6ed36adc44ffc3
Status affected
Version 554a43d5e77e8256aa9685ffd19ad555e6f77979
Version < da2ca406f45a6e21760243152ed8d2e8e72915c2
Status affected
HerstellerLinux
≫
Produkt Linux
Default Statusaffected
Version 3.5
Status affected
Version 0
Version < 3.5
Status unaffected
Version <= 5.10.*
Version 5.10.271
Status unaffected
Version <= 5.15.*
Version 5.15.222
Status unaffected
Version <= 6.1.*
Version 6.1.189
Status unaffected
Version <= 6.6.*
Version 6.6.158
Status unaffected
Version <= 6.12.*
Version 6.12.112
Status unaffected
Version <= 6.18.*
Version 6.18.54
Status unaffected
Version <= 7.2.*
Version 7.2.8
Status unaffected
Version <= *
Version 7.3
Status unaffected
VulnDex Vulnerability Enrichment
Diese Information steht angemeldeten Benutzern zur Verfügung. Login Login
Zu dieser CVE wurde keine Warnung gefunden.
EPSS Metriken
Typ Quelle Score Percentile
EPSS FIRST.org 0.22% 0.116
CVSS Metriken
Quelle Base Score Exploit Score Impact Score Vector String
Es wurden noch keine Informationen zu CWE veröffentlicht.
https://git.kernel.org/stable/c/4ba86c44b2fcb1c3175caa2456b6d58f483446ab
https://git.kernel.org/stable/c/4095b66acae9893dd13deb39a4331651cb2f822b
https://git.kernel.org/stable/c/c2cd9c44777cf97be3e35c10b7c2d8f59ebb9306
https://git.kernel.org/stable/c/0d1700394e9f5d0bd9bebad8d5a50edf983f52fd
https://git.kernel.org/stable/c/7978dda63d2b109ea9c3f7a096cd1aac6542cd54
https://git.kernel.org/stable/c/432c8532d5ccc2af77da43ed6ef1c80495a4efe8
https://git.kernel.org/stable/c/c4ee5685af444024e6222ce29f6ed36adc44ffc3
https://git.kernel.org/stable/c/da2ca406f45a6e21760243152ed8d2e8e72915c2