CVE-2026-23306

scsi: pm8001: Fix use-after-free in pm8001_queue_command()

High · published March 25, 2026

CVSS v3.1
7.8
EPSS
0%
Percentile
2.4
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

scsi: pm8001: Fix use-after-free in pm8001_queue_command()

Commit e29c47fe8946 ("scsi: pm8001: Simplify pm8001_task_exec()") refactors

pm8001_queue_command(), 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, pm8001_queue_command() updates task status and calls

task_done 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 sas_ata_qc_issue() 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 pm8001_queue_command() handles the SAS task in this case, it should

return 0 to the caller indicating that the task has been handled.

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00130 · 2.4th percentile
Published
2026-03-25T10:27Z
EPSS history
Timeline
  • 25 MAR 10:27Z
    scsi: pm8001: Fix use-after-free in pm8001_queue_command()
    cvelistv5