MEDIUM 5.5

CVE-2026-53107: Linux Kernel Libertas WiFi Driver USB Interrupt Context Flaw

A flaw was found in how the Linux kernel's libertas WiFi driver handles USB data transmission. The driver was using a function that blocks (pauses) to prevent multiple transmission requests from overlapping, but this function can be called during interrupt handling—a special CPU context where blocking operations are forbidden. This mismatch can cause the system to sleep when it shouldn't, leading to kernel instability. The fix changes the approach: instead of forcefully stopping in-flight USB requests, the driver now checks whether a request is already pending and returns an error if one is, avoiding the problematic blocking call during interrupt handling.

Source data · NVD / CISA · public domain

CVSS
3.1 · 5.5 MEDIUM · CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Weaknesses (CWE)
Affected products
1 configuration(s)
Published / Modified
2026-06-24 / 2026-07-23

NVD description (verbatim)

In the Linux kernel, the following vulnerability has been resolved: wifi: libertas: don't kill URBs in interrupt context Serialization for the TX path was enforced by calling usb_kill_urb()/usb_kill_anchored_urbs(), to prevent transmission before a previous URB was completed. usb_tx_block() can be called from interrupt context (e.g. in the HCD giveback path), so we can't always use it to kill in-flight URBs. Prevent sleeping during interrupt context by checking the tx_submitted anchor for existing URBs. We now return -EBUSY, to indicate there's a pending request.

3 reference(s) · View on NVD →

SEC.co analysis · AI-assisted, reviewed against source

Technical summary

The vulnerability exists in the libertas WiFi driver's TX (transmit) path serialization mechanism. The usb_kill_urb() and usb_kill_anchored_urbs() functions perform sleeping operations to synchronously cancel USB Request Blocks (URBs). However, usb_tx_block()—which invokes these functions—can be called from interrupt context, particularly from the USB Host Controller Driver (HCD) giveback path. Sleeping in interrupt context violates kernel concurrency rules and can cause kernel panics or data corruption. The resolution replaces synchronous URB termination with a non-blocking check of the tx_submitted anchor to detect pending URBs. If a transmission is already in flight, the function now returns -EBUSY instead of attempting to kill the URB, preserving serialization without sleeping.

Business impact

This vulnerability primarily affects systems running vulnerable Linux kernel versions with WiFi connectivity dependent on libertas drivers—commonly found in embedded systems, IoT devices, and legacy wireless hardware. The impact manifests as kernel crashes or hangs during WiFi transmission under specific timing conditions, potentially causing service interruptions, data loss, or denial of service. For organizations relying on affected hardware, unpatched systems may experience unpredictable WiFi failures, particularly under load or in scenarios where interrupt-driven TX operations occur frequently. This is not a remote code execution or privilege escalation vector; the damage is confined to availability and stability.

Affected systems

The Linux kernel is affected across versions containing the vulnerable libertas driver code. The vulnerability applies to any system using libertas-based WiFi hardware (primarily older Marvell chipsets) on Linux. This includes custom embedded devices, legacy laptops, and IoT systems with libertas wireless modules. Desktop and server systems using modern WiFi drivers are not affected. Check your kernel version and verify whether libertas driver modules are loaded: `lsmod | grep libertas`.

Exploitability

This vulnerability is not remotely exploitable. It requires local code execution context to trigger the interrupt timing condition that causes the bug. An unprivileged local process cannot directly invoke the vulnerable code path; exploitation would depend on reproducing specific USB interrupt timing scenarios during WiFi transmit operations. The practical likelihood of accidental trigger is low but possible under sustained network I/O stress. No known public exploits leverage this flaw, and its impact is limited to denial of service rather than privilege escalation.

Remediation

Apply kernel updates that include the libertas driver fix. Verify the patch commit or kernel version from your distribution's security advisory. As an interim mitigation, reducing USB device activity or disabling libertas-based WiFi in favor of alternative connectivity may limit exposure, though this is a workaround rather than a fix. Organizations should prioritize patching systems where libertas hardware is actively used in production. Test patches in a non-production environment first, as kernel updates require reboot.

Patch guidance

Consult your Linux distribution's security advisory or kernel maintainer repository for the specific kernel version containing the libertas TX serialization fix. The patch modifies the usb_tx_block() function to use non-blocking anchor checks instead of usb_kill_urb(). Ensure your kernel is updated to a version released after the vulnerability disclosure date. Use tools like `uname -r` to check your current kernel version and cross-reference with your vendor's security bulletins. Full system reboot is required after kernel patching.

Detection guidance

Monitor system logs for kernel panic messages or soft lockup warnings containing 'libertas' or 'usb_tx_block' references. Tools like journalctl (on systemd systems) or /var/log/kern.log can be searched for these patterns. Observe WiFi interface stability during sustained network I/O; unexpected disconnections or driver resets may indicate the vulnerability is being triggered. Use `ethtool -S` on affected wireless interfaces to check for TX errors or resets. Network monitoring may reveal sporadic WiFi dropouts correlated with high transmit load on systems running vulnerable libertas drivers.

Why prioritize this

Although the CVSS score is moderate (5.5), this vulnerability should be prioritized for patching on any system actively using libertas WiFi hardware. The practical impact on availability makes it a stability concern for edge devices and embedded systems where WiFi is critical. Organizations with inventory visibility into libertas deployments should patch as part of routine kernel maintenance. The non-remote nature reduces urgency relative to critical RCE flaws, but the potential for repeated service interruptions in production environments justifies timely remediation.

Risk score, explained

The CVSS 3.1 score of 5.5 (MEDIUM) reflects a local attack vector, low privilege requirement, and availability impact without confidentiality or integrity compromise. The score accurately represents the kernel stability risk but does not account for deployment context; systems where WiFi is non-critical carry lower operational risk, while embedded or IoT deployments relying on libertas for primary connectivity face higher business impact than the CVSS score suggests. Organizations should adjust internal risk ratings based on whether affected hardware is present and in active use.

Frequently asked questions

Is this vulnerability exploitable remotely over the network?

No. This is a local kernel driver bug triggered only during USB interrupt handling on systems with libertas hardware. Remote WiFi attacks cannot trigger this vulnerability; exploitation requires local code execution context.

Do modern WiFi adapters and drivers use libertas?

Libertas support is largely legacy. Most contemporary WiFi hardware uses modern drivers like iwlwifi, ath9k, or rtl8xxx. Check your system with `lsmod | grep libertas` to confirm whether you are affected. If the output is empty, your WiFi driver is not affected.

What happens if we don't patch this vulnerability?

Unpatched systems may experience kernel crashes or soft lockups during WiFi transmission, particularly under sustained network load. This manifests as unexpected WiFi disconnections, system hangs, or automatic reboots. Service availability is at risk; no data exfiltration or privilege escalation occurs.

Can we work around this without patching the kernel?

Temporary workarounds include disabling libertas-based WiFi and using alternative connectivity (Ethernet or a different WiFi adapter with a modern driver), or minimizing sustained network traffic. These are not true fixes; kernel patching is the proper solution and requires reboot.

This analysis is based on the published vulnerability description and CVSS vector. Specific patch version numbers, affected kernel versions, and distribution advisories should be verified against official vendor security bulletins before deployment. Testing patches in non-production environments is mandatory. This vulnerability analysis does not constitute professional security advice; consult your security team and vendor documentation for your specific infrastructure. No exploit code or proof-of-concept is provided. Source: NVD (public-domain), retrieved 2026-08-01. Analysis generated by SEC.co (claude-haiku-4-5).