{"cve":"CVE-2026-43327","nvd":{"published":"2026-05-08T14:16:42.243","modified":"2026-06-17T10:49:23.337","status":"Analyzed","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nUSB: dummy-hcd: Fix locking/synchronization error\n\nSyzbot testing was able to provoke an addressing exception and crash\nin the usb_gadget_udc_reset() routine in\ndrivers/usb/gadgets/udc/core.c, resulting from the fact that the\nroutine was called with a second (\"driver\") argument of NULL.  The bad\ncaller was set_link_state() in dummy_hcd.c, and the problem arose\nbecause of a race between a USB reset and driver unbind.\n\nThese sorts of races were not supposed to be possible; commit\n7dbd8f4cabd9 (\"USB: dummy-hcd: Fix erroneous synchronization change\"),\nalong with a few followup commits, was written specifically to prevent\nthem.  As it turns out, there are (at least) two errors remaining in\nthe code.  Another patch will address the second error; this one is\nconcerned with the first.\n\nThe error responsible for the syzbot crash occurred because the\nstop_activity() routine will sometimes drop and then re-acquire the\ndum->lock spinlock.  A call to stop_activity() occurs in\nset_link_state() when handling an emulated USB reset, after the test\nof dum->ints_enabled and before the increment of dum->callback_usage.\nThis allowed another thread (doing a driver unbind) to sneak in and\ngrab the spinlock, and then clear dum->ints_enabled and dum->driver.\nNormally this other thread would have to wait for dum->callback_usage\nto go down to 0 before it would clear dum->driver, but in this case it\ndidn't have to wait since dum->callback_usage had not yet been\nincremented.\n\nThe fix is to increment dum->callback_usage _before_ calling\nstop_activity() instead of after.  Then the thread doing the unbind\nwill not clear dum->driver until after the call to\nusb_gadget_udc_reset() safely returns and dum->callback_usage has been\ndecremented again.","cvss_v4":null,"cvss_v3":{"version":"3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","score":5.5},"cwes":["CWE-667"],"references":["https://git.kernel.org/stable/c/218886b2ef2dea7627d3700ab0abaf4bf9d1161f","https://git.kernel.org/stable/c/616a63ff495df12863692ab3f9f7b84e3fa7a66d","https://git.kernel.org/stable/c/6350c7dd33ab481ef41c931a238361490c32d15c","https://git.kernel.org/stable/c/69ab97a693251d6a6093e630060a3c744fd58524","https://git.kernel.org/stable/c/791966f85b439b261bf19865cf1c07c065ffb4b4"],"products":["linux:linux_kernel"],"source":"nvd","synced_at":"2026-10-19T22:33:55.586217763+00:00"},"epss":{"cve":"CVE-2026-43327","score":0.00095,"percentile":0.00592,"date":"2026-10-31"},"kev":null,"osv":[],"attribution":["This product uses the NVD API but is not endorsed or certified by the NVD.","EPSS scores: FIRST Exploit Prediction Scoring System, https://www.first.org/epss","Known exploited vulnerabilities: CISA Known Exploited Vulnerabilities Catalog, https://www.cisa.gov/known-exploited-vulnerabilities-catalog","Package advisories: OSV (https://osv.dev), from the GitHub Advisory Database, PyPA, Go, RustSec and other ecosystem databases, under CC-BY 4.0 or CC0","CVE records: the CVE Program's CVE List (https://www.cve.org), under its terms of use (https://www.cve.org/Legal/TermsOfUse). CVE is a registered trademark of The MITRE Corporation; this product is not affiliated with the CVE Program."]}