CVE-2023-53586

Source
https://cve.org/CVERecord?id=CVE-2023-53586
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2023-53586.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2023-53586
Downstream
Published
2025-10-04T15:44:01.809Z
Modified
2026-03-09T23:58:23.984653Z
Summary
scsi: target: Fix multiple LUN_RESET handling
Details

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

scsi: target: Fix multiple LUN_RESET handling

This fixes a bug where an initiator thinks a LUN_RESET has cleaned up running commands when it hasn't. The bug was added in commit 51ec502a3266 ("target: Delete tmr from list before processing").

The problem occurs when:

  1. We have N I/O cmds running in the target layer spread over 2 sessions.

  2. The initiator sends a LUN_RESET for each session.

  3. session1's LUNRESET loops over all the running commands from both sessions and moves them to its local draintask_list.

  4. session2's LUNRESET does not see the LUNRESET from session1 because the commit above has it remove itself. session2 also does not see any commands since the other reset moved them off the state lists.

  5. sessions2's LUN_RESET will then complete with a successful response.

  6. sessions2's inititor believes the running commands on its session are now cleaned up due to the successful response and cleans up the running commands from its side. It then restarts them.

  7. The commands do eventually complete on the backend and the target starts to return aborted task statuses for them. The initiator will either throw a invalid ITT error or might accidentally lookup a new task if the ITT has been reallocated already.

Fix the bug by reverting the patch, and serialize the execution of LUN_RESETs and Preempt and Aborts.

Also prevent us from waiting on LUNRESETs in coretmrdraintmrlist, because it turns out the original patch fixed a bug that was not mentioned. For LUNRESET1 coretmrdraintmrlist can see a second LUNRESET and wait on it. Then the second reset will run coretmrdraintmr_list and see the first reset and wait on it resulting in a deadlock.

Database specific
{
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/53xxx/CVE-2023-53586.json",
    "cna_assigner": "Linux"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
51ec502a32665fed66c7f03799ede4023b212536
Fixed
e1f59cd18a10969d08a082264b557876ca38766e
Fixed
9158c86fd3237acaea8f0181c7836d90fd6eea10
Fixed
eacfe32c3650bfd0e54224d160c431013d7f6998
Fixed
ed18526289b5603bf2253dee50f1d7ec245cf397
Fixed
2c43de56f9220dca3e28c774d1c5e2cab574223a
Fixed
673db054d7a2b5a470d7a25baf65956d005ad729

Database specific

source
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2023-53586.json"