CVE-2026-98334
NoneCVSS
—
EPSS
0.2%
Published
Oct 6, 2026
CISA due date
—
Cloudanix analysis
A programming mistake in Linux wireless code can make the computer crash when starting a Wi-Fi network fails and scanning later tries to recover.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Moderate
- Impact
- Denial Of Service
- Component
- OS kernel
- Class
- Other
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
mac80211 ieee80211_start_ap() sets enable_beacon and beacon_int without resetting them on subsequent failure paths, leaving inconsistent interface state that later scan and off-channel operations dereference, producing divide-by-zero oops in mac80211_hwsim_link_info_changed and warnings in drv_link_info_changed.
Why it matters to the business
Linux systems running wireless AP or managed interfaces may experience kernel crashes or warnings during routine scanning, leading to loss of Wi-Fi connectivity, service restarts, or unplanned reboots in affected kernels.
How an attack unfolds
An attacker with local or adjacent access triggers an AP interface start that partially succeeds then fails, leaving stale beacon state; subsequent scan initiation walks the corrupted state through ieee80211_offchannel_return and link-info callbacks, crashing the kernel.
How to fix it
Apply the upstream mac80211 fix that resets enable_beacon and beacon_int on any ieee80211_start_ap failure; rebuild and deploy updated kernel packages containing the corrected net/mac80211/ap.c and related files.
How to confirm the fix worked
Boot the patched kernel, attempt repeated AP start failures followed by scans, and confirm absence of the divide error in mac80211_hwsim_link_info_changed and the driver-ops warning; inspect dmesg for clean state transitions.
Typical attack path
- Cause ieee80211_start_ap to set enable_beacon then fail before full initialization
- Trigger or wait for a scan operation on the same wiphy
- Force off-channel return or link-info notification to dereference stale beacon state
- Observe divide error or driver-ops warning and resulting kernel oops
How to detect it
Review kernel logs for the exact Oops string containing mac80211_hwsim_link_info_changed divide error and the WARNING at drv_link_info_changed after AP start attempts; correlate with cfg80211_wiphy_work and ieee80211_scan_work call traces.
What your security team should do
- Prioritize kernel updates containing the mac80211 AP-start state reset on all Wi-Fi capable Linux hosts
- Monitor upstream stable and distribution kernel changelogs for the exact commit that clears enable_beacon on failure
- Temporarily disable AP mode or scanning on unpatched systems if crashes are observed in production
The record
In the Linux kernel, the following vulnerability has been resolved: wifi: mac80211: reset state when starting AP fails ieee80211_start_ap() can set enable_beacon (and beacon_int) and fail later, leaving it set forever. Scanning can then attempt to restore beaconing on such an interface, leading to: Oops: divide error: 0000 [#1] SMP KASAN NOPTI RIP: 0010:mac80211_hwsim_link_info_changed+0xca7/0xf00 Call Trace: drv_link_info_changed+0x413/0x860 net/mac80211/driver-ops.c:495 ieee80211_link_info_change_notify+0x24b/0x3c0 net/mac80211/main.c:427 ieee80211_offchannel_return+0x381/0x580 net/mac80211/offchannel.c:160 __ieee80211_scan_completed+0x993/0xe30 net/mac80211/scan.c:519 ieee80211_scan_work+0x472/0x2010 net/mac80211/scan.c:1193 cfg80211_wiphy_work+0x2b7/0x550 net/wireless/core.c:538 in hwsim. Also, cfg80211 then allows changing the interface type, and the off-channel path getgs confused about beaconing as well, leading to another warning: WARNING: net/mac80211/driver-ops.c:468 at drv_link_info_changed+0x583/0x880 ieee80211_link_info_change_notify+0x24b/0x3c0 net/mac80211/main.c:427 ieee80211_offchannel_stop_vifs+0x328/0x5c0 net/mac80211/offchannel.c:122 ieee80211_start_sw_scan net/mac80211/scan.c:583 [inline] __ieee80211_start_scan+0xfb6/0x1af0 net/mac80211/scan.c:882 Reset the state on failures to always have it correct.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|