medium · CVSS v3 5.5

CVE-2026-98766

A use‑after‑free in the Linux kernel’s aspeed‑vhub USB gadget can trigger after device removal, potentially leading to a crash or privilege

Overview

A use‑after‑free in the Linux kernel’s aspeed‑vhub USB gadget can trigger after device removal, potentially leading to a crash or privilege escalation. It affects systems running the aspeed‑vhub driver.

Description

In the Linux kernel, the following vulnerability has been resolved: usb: gadget: aspeed-vhub: cancel wake work on device removal wake_work is armed from the gadget .wakeup callback to resume suspended downstream ports, and it is never cancelled in ast_vhub_remove(), so a work item queued before or during removal can run after devm has freed vhub and its ports, a use-after-free. Cancelling the work alone is not sufficient: usb_gadget_wakeup() takes no lock and the unbind path never clears wakeup_en, so a remote-wakeup request in flight on another CPU can re-arm the work after the cancel and before vhub is freed. ast_vhub_del_dev() already clears d->registered under vhub->lock before unregistering the gadget. Refuse the wakeup in ast_vhub_udc_wakeup() once d->registered is clear: the check and the schedule_work() are then atomic against the unbind, so a wakeup that passed before the flag was cleared is drained by the cancel_work_sync() after the del_dev loop, and one that arrives later returns without arming. Also move INIT_WORK() to the top of ast_vhub_probe(), since the probe error path reuses ast_vhub_remove() and would otherwise cancel a never-initialized work item. This issue was found by an in-house static analysis tool.

Impact

The vulnerability can cause a kernel crash or arbitrary code execution, compromising confidentiality, integrity, and availability of the host. Attackers with local or remote access to the USB subsystem could exploit it. Defenders should treat it as a medium‑risk flaw that may allow privilege escalation.

Remediation

Apply the official kernel patch that cancels wake_work during removal and clears wakeup_en before unbinding. Update to a kernel version that includes the fix (e.g., 6.8+). If unable to patch, disable the aspeed‑vhub gadget or block USB gadget functionality until patched.

Risk context

Medium severity (CVSS 5.5) with no EPSS data. The flaw is not immediately exploitable without a crafted USB device, but it remains a moderate risk for systems that expose the aspeed‑vhub driver.

Affected products

  • Linux kernel
  • aspeed‑vhub gadget
  • USB gadget driver
  • embedded devices with aspeed chipset

Scores

Severity
medium
CVSS v2
4.9
CVSS v3
5.5
CVSS v4
—
EPSS
—

kernel usb use-after-free aspeed-vhub device-removal patch defense

← All CVEs