Subject: CVE-2022-48791: scsi: pm8001: Fix use-after-free for aborted TMF sas_task

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

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

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

scsi: pm8001: Fix use-after-free for aborted TMF sas_task

Currently a use-after-free may occur if a TMF sas_task is aborted before we
handle the IO completion in mpi_ssp_completion(). The abort occurs due to
timeout.

When the timeout occurs, the SAS_TASK_STATE_ABORTED flag is set and the
sas_task is freed in pm8001_exec_internal_tmf_task().

However, if the I/O completion occurs later, the I/O completion still
thinks that the sas_task is available. Fix this by clearing the ccb->task
if the TMF times out - the I/O completion handler does nothing if this
pointer is cleared.

The Linux kernel CVE team has assigned CVE-2022-48791 to this issue.

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

	Fixed in 5.10.102 with commit d872e7b5fe38
	Fixed in 5.15.25 with commit 3c334cdfd949
	Fixed in 5.16.11 with commit 510b21442c3a
	Fixed in 5.17 with commit 61f162aa4381

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-2022-48791
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/scsi/pm8001/pm8001_sas.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/d872e7b5fe38f325f5206b6872746fa02c2b4819
	https://git.kernel.org/stable/c/3c334cdfd94945b8edb94022a0371a8665b17366
	https://git.kernel.org/stable/c/510b21442c3a2e3ecc071ba3e666b320e7acdd61
	https://git.kernel.org/stable/c/61f162aa4381845acbdc7f2be4dfb694d027c018