CVE-2026-72005 in Linuxinfo

Summary

by MITRE • 08/15/2026

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

wifi: rt2x00: avoid full teardown before work setup in probe

rt2x00lib_probe_dev() uses the full rt2x00lib_remove_dev() teardown for all probe failures. However, drv_data allocation and workqueue allocation can fail before intf_work, autowakeup_work and sleep_work have been initialized.

Do not enter the full remove path until the probe has reached the point where those work items are set up. Return directly for drv_data allocation failure, and use a small early cleanup path for workqueue allocation failure.

This issue was found by our static analysis tool and then confirmed by manual review of rt2x00lib_probe_dev() and rt2x00lib_remove_dev(). The early probe exits should not call a common teardown path that assumes the later work setup has already completed.

A QEMU PoC forced alloc_ordered_workqueue() to fail before the work initializers are reached. The resulting fail path entered rt2x00lib_remove_dev(), and DEBUG_OBJECTS reported invalid work drains with rt2x00lib_probe_dev() and rt2x00lib_remove_dev() in the stack.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Analysis

by VulDB Data Team • 09/02/2026

The vulnerability resides in the rt2x00 wireless driver subsystem of the Linux kernel, specifically within the rt2x00lib_probe_dev() function that handles device probe operations for rt2x00 compatible hardware. This issue represents a critical design flaw in error handling that can lead to system instability and potential denial of service conditions. The root cause stems from improper teardown sequence where the driver attempts to execute a complete removal routine even before all essential initialization steps have been successfully completed, creating a scenario where cleanup operations reference uninitialized data structures.

The technical flaw manifests when the probe function encounters allocation failures during early initialization phases. Specifically, when drv_data allocation or workqueue allocation fails, the code path incorrectly invokes rt2x00lib_remove_dev() which assumes that all work items including intf_work, autowakeup_work, and sleep_work have been properly initialized. This improper error handling creates a cascade of issues where the system attempts to clean up resources that were never actually allocated, leading to invalid memory access patterns and kernel object corruption. The static analysis tool identified this pattern by examining the control flow in rt2x00lib_probe_dev() and comparing it against the teardown logic in rt2x00lib_remove_dev(), revealing that early exits should not invoke full cleanup routines.

The operational impact of this vulnerability is significant as it can cause kernel oops, system crashes, and denial of service conditions when wireless devices are being initialized. When QEMU PoC testing forces alloc_ordered_workqueue() to fail before work initializers are reached, the kernel stack trace reveals DEBUG_OBJECTS reporting invalid work drains with both probe and remove functions in the call stack. This indicates that work queue objects are being improperly drained or referenced during cleanup operations, potentially leading to memory corruption or system instability. The vulnerability affects all systems running Linux kernels with rt2x00 wireless drivers, particularly those using hardware that relies on this driver framework for wireless connectivity.

The fix implemented addresses this issue by introducing proper early exit paths that avoid invoking the full teardown routine until the probe operation has progressed beyond the point where work items are initialized. This approach aligns with established security principles and follows the principle of least privilege by ensuring that cleanup operations only reference properly allocated resources. The solution prevents the kernel from attempting to clean up uninitialized work queue structures, thereby eliminating the risk of invalid memory access patterns. This vulnerability classification corresponds to CWE-254 and relates to improper error handling patterns in kernel space code, with potential ATT&CK techniques involving privilege escalation through kernel exploitation or denial of service via system instability. The mitigation strategy ensures that each resource allocation failure is handled appropriately without triggering cascading cleanup operations that assume prior successful initialization steps.

Responsible

Linux

Reservation

08/09/2026

Disclosure

08/15/2026

Moderation

accepted

CPE

ready

EPSS

0.00164

KEV

no

Activities

very low

Sources

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!