In the Linux kernel, the following vulnerability has been resolved: scsi: qedi: Fix use after free bug in qediremove() In qediprobe() we call _qediprobe() which initializes &qedi->recoverywork with qedirecoveryhandler() and &qedi->boarddisablework with qediboarddisablework(). When qedischedulerecoveryhandler() is called, scheduledelayedwork() will finally start the work. In qediremove(), which is called to remove the driver, the following sequence may be observed: Fix this by finishing the work before cleanup in qediremove(). CPU0 CPU1 |qedirecoveryhandler qediremove | _qediremove | iscsihostfree | scsihostput | //free shost | |iscsihostforeachsession |//use qedi->shost Cancel recoverywork and boarddisablework in _qedi_remove().