CVE-2026-98766

usb: gadget: aspeed-vhub: cancel wake work on device removal

State
Published
Severity
Not scored
Published
Oct 18, 2026
Updated
Oct 30, 2026
Reserved
Sep 25, 2026

Read the record on cve.org

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.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 7ecca2a4080cb6b1fa174adc588fce9e9014c43c to before 89b3fef8809ec1a9acf5f753eb89b9508d7e4466Affected
  • 7ecca2a4080cb6b1fa174adc588fce9e9014c43c to before 3aed0c86afa7877d08722233a8b15e8c1ff8bcb8Affected
  • 7ecca2a4080cb6b1fa174adc588fce9e9014c43c to before 552f580a18787cfbd83d28d7d76d584c29f2c4c2Affected
  • 7ecca2a4080cb6b1fa174adc588fce9e9014c43c to before 0d39ac4f65f9357469518c70e42940e0d8b0e497Affected
  • 7ecca2a4080cb6b1fa174adc588fce9e9014c43c to before f343bfa3fc9f6255602d66f4a7dbe7ddef13ba41Affected
  • 7ecca2a4080cb6b1fa174adc588fce9e9014c43c to before 474e9e1852fb5ba0bfb26f123dd0cb361d0f4f4dAffected
  • 7ecca2a4080cb6b1fa174adc588fce9e9014c43c to before c81504dfd2d93e345c98e7a012c2f2e74ce5b6a1Affected
  • 7ecca2a4080cb6b1fa174adc588fce9e9014c43c to before 20388c8d1d74c203fec8194c45cd31afdfab934eAffected
LinuxLinux
  • 4.18Affected
  • before 4.18Not affected
  • 5.10.273 through 5.10.*Not affected
  • 5.15.224 through 5.15.*Not affected
  • 6.1.191 through 6.1.*Not affected
  • 6.6.160 through 6.6.*Not affected
  • 6.12.113 through 6.12.*Not affected
  • 6.18.56 through 6.18.*Not affected
  • 7.2.10 through 7.2.*Not affected
  • 7.3 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.