Subject: CVE-2021-47328: scsi: iscsi: Fix conn use after free during resets

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

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

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

scsi: iscsi: Fix conn use after free during resets

If we haven't done a unbind target call we can race where
iscsi_conn_teardown wakes up the EH thread and then frees the conn while
those threads are still accessing the conn ehwait.

We can only do one TMF per session so this just moves the TMF fields from
the conn to the session. We can then rely on the
iscsi_session_teardown->iscsi_remove_session->__iscsi_unbind_session call
to remove the target and it's devices, and know after that point there is
no device or scsi-ml callout trying to access the session.

The Linux kernel CVE team has assigned CVE-2021-47328 to this issue.

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

	Fixed in 4.19.198 with commit bf20d85a8838
	Fixed in 5.4.134 with commit d04958a348e5
	Fixed in 5.10.52 with commit 89812e7957ab
	Fixed in 5.12.19 with commit f0a031f7c55f
	Fixed in 5.13.4 with commit fa9542b35ceb
	Fixed in 5.14 with commit ec29d0ac29be

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-2021-47328
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/libiscsi.c
	include/scsi/libiscsi.h

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/bf20d85a88384574fabb3d53ad62a8af57e7ab11
	https://git.kernel.org/stable/c/d04958a348e560938410e04a12fb99da9c7e6a00
	https://git.kernel.org/stable/c/89812e7957ab0746eab66ed6fc49d52bb4dca250
	https://git.kernel.org/stable/c/f0a031f7c55ffd944fead1ddaf2aa94df9a158c1
	https://git.kernel.org/stable/c/fa9542b35ceb4202e8f8d65f440529a63524dca9
	https://git.kernel.org/stable/c/ec29d0ac29be366450a7faffbcf8cba3a6a3b506