Description
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
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
e58ba4544c7771591d1e3157bc01b4a8e4d1c3fc to < cc06ac99fd78839b2d38850785731ef131d9ae26affectede58ba4544c7771591d1e3157bc01b4a8e4d1c3fc to < b87f361d41f9a7f1f6c426947ca815651c481376affectede58ba4544c7771591d1e3157bc01b4a8e4d1c3fc to < 621f2f43741b51f62d767eb4752fbcefe2526926affectede58ba4544c7771591d1e3157bc01b4a8e4d1c3fc to < 4de6a43e8ecf961feabddf0e9d6911081d2ed218affectede58ba4544c7771591d1e3157bc01b4a8e4d1c3fc to < 3267bcb744ee8a2feabaa7ab69473f086f67fd71affectede58ba4544c7771591d1e3157bc01b4a8e4d1c3fc to < d3e32a612c6391ca9b7c183aeec22b4fd24c300caffectede58ba4544c7771591d1e3157bc01b4a8e4d1c3fc to < 98e8aed64614b0c199d5f0391fbe1a4331cb5773affectede58ba4544c7771591d1e3157bc01b4a8e4d1c3fc to < 069c8f5aebe4d5224cf62acc7d4b3486091c658aaffected
Linux Linux
Default version status: affected
5.0affected0 to < 5.0unaffected5.10.253 to ≤ 5.10.*unaffected5.15.203 to ≤ 5.15.*unaffected6.1.167 to ≤ 6.1.*unaffected6.6.130 to ≤ 6.6.*unaffected6.12.78 to ≤ 6.12.*unaffected6.18.20 to ≤ 6.18.*unaffected6.19.10 to ≤ 6.19.*unaffected7.0 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/cc06ac99fd78839b2d38850785731ef131d9ae26 ↗
- https://git.kernel.org/stable/c/b87f361d41f9a7f1f6c426947ca815651c481376 ↗
- https://git.kernel.org/stable/c/621f2f43741b51f62d767eb4752fbcefe2526926 ↗
- https://git.kernel.org/stable/c/4de6a43e8ecf961feabddf0e9d6911081d2ed218 ↗
- https://git.kernel.org/stable/c/3267bcb744ee8a2feabaa7ab69473f086f67fd71 ↗
- https://git.kernel.org/stable/c/d3e32a612c6391ca9b7c183aeec22b4fd24c300c ↗
- https://git.kernel.org/stable/c/98e8aed64614b0c199d5f0391fbe1a4331cb5773 ↗
- https://git.kernel.org/stable/c/069c8f5aebe4d5224cf62acc7d4b3486091c658a ↗
- https://cert-portal.siemens.com/productcert/html/ssa-082556.html ↗
- https://cert-portal.siemens.com/productcert/html/ssa-019113.html ↗
- https://cert-portal.siemens.com/productcert/html/ssa-457936.html ↗