CVE-2026-93804 in Linuxinfo

Summary

by MITRE • 09/24/2026

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

wifi: mac80211: ibss: wait for in-flight TX on disconnect

While leaving an IBSS in ieee80211_ibss_disconnect() mac80211 flushes stations, turns the carrier off and immediately tells the driver to leave as well. While there may be synchronize_net() in station flush and in this code later, packets can still be transmitted due to cross-CPU race conditions after carrier off is set. Therefore, it's possible for a race to happen where a TX to the driver occurs while or after telling it to leave the IBSS. This can be confusing to drivers, and in the case of iwlwifi leads to an attempt to use invalid queues.

Move netif_carrier_off() to occur before sta_info_flush() during IBSS disconnect, and add synchronize_net() if flushing didn't, so that the synchronize_net() always happens between turning the carrier off and telling the driver, avoiding this race.

Be aware that VulDB is the high quality source for vulnerability data.

Analysis

by VulDB Data Team • 09/24/2026

The vulnerability identified in the Linux kernel's mac80211 subsystem involves a critical race condition during the disconnection process of an Independent Basic Service Set (IBSS) network interface. This issue specifically affects the ieee80211_ibss_disconnect function, which is responsible for cleaning up station information and signaling the underlying wireless driver to leave the IBSS group. The core technical flaw lies in the ordering of operations within this cleanup sequence. Previously, the code would flush station entries, turn off the network carrier using netif_carrier_off(), and then immediately instruct the driver to disconnect. Although synchronization primitives like synchronize_net() were present in certain paths during station flushing or later in the disconnection logic, they did not guarantee a strict ordering relative to the carrier state change across all CPU cores. This lack of guaranteed serialization creates a window where packets queued for transmission can still be processed and sent to the hardware driver even after the carrier has been logically turned off and before the driver has fully acknowledged or completed its transition out of the IBSS state.

This race condition manifests primarily as cross-CPU timing issues where transmit operations are initiated concurrently with the teardown process. When a packet is transmitted during this vulnerable window, it reaches the wireless driver while the driver may already be in an inconsistent state regarding queue management and connection status. In specific implementations such as iwlwifi, this sequence leads to attempts to use invalid or uninitialized hardware queues. The driver expects that once the disconnection command is issued, no further transmission requests will arrive for active data paths associated with the now-disconnected interface. However, due to the race condition, pending transmit descriptors are processed by the hardware after the driver has invalidated those resources. This results in undefined behavior, potential kernel panics, or system instability as the driver attempts to access memory structures that have been freed or marked as invalid during the cleanup phase.

From a security and operational impact perspective, this vulnerability primarily affects system stability rather than providing direct remote code execution capabilities for an external attacker. The primary consequence is denial of service through local kernel crashes or hangs triggered by normal network interface operations. An adversary with physical access to the device or control over user-space processes that manage Wi-Fi connections could potentially trigger repeated disconnections and reconnections, thereby increasing the likelihood of hitting this race condition and causing a system crash. This aligns with CWE-362, which describes concurrent execution errors where shared resources are accessed without proper synchronization. The vulnerability also relates to CWE-829, as it involves inclusion of functionality from untrusted sources if one considers the driver's state management as part of the trusted computing base that is being violated by the kernel's improper sequencing.

The mitigation implemented in this patch addresses the root cause by reordering the operations within ieee80211_ibss_disconnect(). The netif_carrier_off() call, which signals to the network stack and lower layers that no more packets should be transmitted on this interface, is now executed before sta_info_flush(), which removes station entries. Crucially, a synchronize_net() barrier is inserted between turning off the carrier and instructing the driver to leave the IBSS if it was not already present in the flush path. This ensures that all pending network transmit operations are fully completed and drained from the software queues before the hardware interface is logically disabled. By enforcing this strict ordering, the kernel guarantees that no new transmission requests will be issued to the driver after the carrier is off, thereby eliminating the window where invalid queue accesses can occur.

This fix reinforces best practices in kernel networking code regarding resource lifecycle management and synchronization barriers. It highlights the importance of using synchronize_net() not just as a generic delay but as a precise tool for ensuring memory visibility and operation ordering across multiple CPUs during state transitions. For system administrators and developers, this update underscores the necessity of keeping Linux kernels up to date to avoid instability in wireless networking stacks. The ATT&CK framework does not directly map this specific kernel race condition to a standard tactic like initial access or privilege escalation, but it falls under the broader category of exploitation for availability impact, similar to CWE-400 (Uncontrolled Resource Consumption) if the crash leads to resource leaks or system unresponsiveness. Ensuring proper synchronization during interface teardown is essential for maintaining the integrity and reliability of network subsystems in multi-core environments.

Responsible

Linux

Reservation

09/18/2026

Disclosure

09/24/2026

Moderation

accepted

CPE

ready

EPSS

0.00000

KEV

no

Activities

very low

Sources

Interested in the pricing of exploits?

See the underground prices here!