Subject: CVE-2023-52515: RDMA/srp: Do not call scsi_done() from srp_abort()

From: Greg Kroah-Hartman <[email-masked]>

Description
===========

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

RDMA/srp: Do not call scsi_done() from srp_abort()

After scmd_eh_abort_handler() has called the SCSI LLD eh_abort_handler
callback, it performs one of the following actions:
* Call scsi_queue_insert().
* Call scsi_finish_command().
* Call scsi_eh_scmd_add().
Hence, SCSI abort handlers must not call scsi_done(). Otherwise all
the above actions would trigger a use-after-free. Hence remove the
scsi_done() call from srp_abort(). Keep the srp_free_req() call
before returning SUCCESS because we may not see the command again if
SUCCESS is returned.

The Linux kernel CVE team has assigned CVE-2023-52515 to this issue.

Affected and fixed versions
===========================

	Issue introduced in 3.7 with commit d8536670916a and fixed in 5.10.199 with commit 26788a5b48d9
	Issue introduced in 3.7 with commit d8536670916a and fixed in 5.15.136 with commit b9bdffb3f9aa
	Issue introduced in 3.7 with commit d8536670916a and fixed in 6.1.57 with commit 2b298f918158
	Issue introduced in 3.7 with commit d8536670916a and fixed in 6.5.7 with commit 05a10b316ada
	Issue introduced in 3.7 with commit d8536670916a and fixed in 6.6 with commit e193b7955dfa
	Issue introduced in 3.0.45 with commit 738589592a04
	Issue introduced in 3.2.32 with commit 0575df129e2e
	Issue introduced in 3.4.13 with commit 22fb58240500
	Issue introduced in 3.5.6 with commit 39d6594c457c
	Issue introduced in 3.6.1 with commit b3f3b814add7

Please see https://www.kernel.org for a full list of currently supported
kernel versions by the kernel community.

Unaffected versions might change over time as fixes are backported to
older supported kernel versions.  The official CVE entry at
	https://cve.org/CVERecord/?id=CVE-2023-52515
will be updated if fixes are backported, please check that for the most
up to date information about this issue.

Affected files
==============

The file(s) affected by this issue are:
	drivers/infiniband/ulp/srp/ib_srp.c

Mitigation
==========

The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes.  Individual
changes are never tested alone, but rather are part of a larger kernel
release.  Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all.  If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
	https://git.kernel.org/stable/c/26788a5b48d9d5cd3283d777d238631c8cd7495a
	https://git.kernel.org/stable/c/b9bdffb3f9aaeff8379c83f5449c6b42cb71c2b5
	https://git.kernel.org/stable/c/2b298f9181582270d5e95774e5a6c7a7fb5b1206
	https://git.kernel.org/stable/c/05a10b316adaac1f322007ca9a0383b410d759cc
	https://git.kernel.org/stable/c/e193b7955dfad68035b983a0011f4ef3590c85eb