In the Linux kernel, the following vulnerability has been resolved:
enic: fix txhangreset use-after-free on device removal
enicremove() cancels the reset and changemtuwork items but does not cancel txhangreset. A TX timeout that fires while the device is being removed can schedule enictxhangreset() so that it runs after free_netdev(), resulting in a use-after-free.
cancelworksync() alone is not sufficient here: the still-live watchdog and notify paths can re-schedule these work items in the window between the cancel and unregisternetdev(). Use disableworksync(), which cancels the work and blocks any subsequent schedulework() from requeuing it, and apply it to the reset and changemtuwork items as well so the same requeue race is closed for all teardown work.