In the Linux kernel, the following vulnerability has been resolved:
scsi: pm8001: Fix use-after-free in pm8001queuecommand()
Commit e29c47fe8946 ("scsi: pm8001: Simplify pm8001taskexec()") refactors pm8001queuecommand(), however it introduces a potential cause of a double free scenario when it changes the function to return -ENODEV in case of phy down/device gone state.
In this path, pm8001queuecommand() updates task status and calls taskdone to indicate to upper layer that the task has been handled. However, this also frees the underlying SAS task. A -ENODEV is then returned to the caller. When libsas sasataqcissue() receives this error value, it assumes the task wasn't handled/queued by LLDD and proceeds to clean up and free the task again, resulting in a double free.
Since pm8001queuecommand() handles the SAS task in this case, it should return 0 to the caller indicating that the task has been handled.
{
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/23xxx/CVE-2026-23306.json",
"cna_assigner": "Linux"
}