net: usb: aqc111: Do not perform PM inside suspend callback
In the Linux kernel, the following vulnerability has been resolved: net: usb: aqc111: Do not perform PM inside suspend callback syzbot reports "task hung in rpm_resume" This is caused by aqc111_suspend calling the PM variant of its write_cmd routine. The simplified call trace looks like this: rpm_suspend() usb_suspend_both() - here udev->dev.power.runtime_status == RPM_SUSPENDING aqc111_suspend() - called for the usb device interface aqc111_write32_cmd() usb_autopm_get_interface() pm_runtime_resume_and_get() rpm_resume() - here we call rpm_resume() on our parent rpm_resume() - Here we wait for a status change that will never happen. At this point we block another task which holds rtnl_lock and locks up the whole networking stack. Fix this by replacing the write_cmd calls with their _nopm variants
02 / AFFECTED SOFTWARE
Affected packages
03 / CONNECTIONS
Connected vulnerabilities
04 / EVIDENCE
Source records
In the Linux kernel, the following vulnerability has been resolved: net: usb: aqc111: Do not perform PM inside suspend callback syzbot reports "task hung in rpm_resume" This is caused by aqc111_suspend calling the PM variant of its write_cmd routine. The simplified call trace looks like this: rpm_suspend() usb_suspend_both() - here udev->dev.power.runtime_status == RPM_SUSPENDING aqc111_suspend() - called for the usb device interface aqc111_write32_cmd() usb_autopm_get_interface() pm_runtime_resume_and_get() rpm_resume() - here we call rpm_resume() on our parent rpm_resume() - Here we wait for a status change that will never happen. At this point we block another task which holds rtnl_lock and locks up the whole networking stack. Fix this by replacing the write_cmd calls with their _nopm variants
05 / REFERENCES
Further evidence
- https://cert-portal.siemens.com/productcert/html/ssa-019113.html
- https://cert-portal.siemens.com/productcert/html/ssa-082556.html
- https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
- https://git.kernel.org/stable/c/069c8f5aebe4d5224cf62acc7d4b3486091c658a
- https://git.kernel.org/stable/c/3267bcb744ee8a2feabaa7ab69473f086f67fd71
- https://git.kernel.org/stable/c/4de6a43e8ecf961feabddf0e9d6911081d2ed218
- https://git.kernel.org/stable/c/621f2f43741b51f62d767eb4752fbcefe2526926
- https://git.kernel.org/stable/c/98e8aed64614b0c199d5f0391fbe1a4331cb5773
- https://git.kernel.org/stable/c/b87f361d41f9a7f1f6c426947ca815651c481376
- https://git.kernel.org/stable/c/cc06ac99fd78839b2d38850785731ef131d9ae26
- https://git.kernel.org/stable/c/d3e32a612c6391ca9b7c183aeec22b4fd24c300c
- https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/23xxx/CVE-2026-23446.json
- https://nvd.nist.gov/vuln/detail/CVE-2026-23446