Subject: CVE-2024-42286: scsi: qla2xxx: validate nvme_local_port correctly

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

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

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

scsi: qla2xxx: validate nvme_local_port correctly

The driver load failed with error message,

qla2xxx [0000:04:00.0]-ffff:0: register_localport failed: ret=ffffffef

and with a kernel crash,

	BUG: unable to handle kernel NULL pointer dereference at 0000000000000070
	Workqueue: events_unbound qla_register_fcport_fn [qla2xxx]
	RIP: 0010:nvme_fc_register_remoteport+0x16/0x430 [nvme_fc]
	RSP: 0018:ffffaaa040eb3d98 EFLAGS: 00010282
	RAX: 0000000000000000 RBX: ffff9dfb46b78c00 RCX: 0000000000000000
	RDX: ffff9dfb46b78da8 RSI: ffffaaa040eb3e08 RDI: 0000000000000000
	RBP: ffff9dfb612a0a58 R08: ffffffffaf1d6270 R09: 3a34303a30303030
	R10: 34303a303030305b R11: 2078787832616c71 R12: ffff9dfb46b78dd4
	R13: ffff9dfb46b78c24 R14: ffff9dfb41525300 R15: ffff9dfb46b78da8
	FS:  0000000000000000(0000) GS:ffff9dfc67c00000(0000) knlGS:0000000000000000
	CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
	CR2: 0000000000000070 CR3: 000000018da10004 CR4: 00000000000206f0
	Call Trace:
	qla_nvme_register_remote+0xeb/0x1f0 [qla2xxx]
	? qla2x00_dfs_create_rport+0x231/0x270 [qla2xxx]
	qla2x00_update_fcport+0x2a1/0x3c0 [qla2xxx]
	qla_register_fcport_fn+0x54/0xc0 [qla2xxx]

Exit the qla_nvme_register_remote() function when qla_nvme_register_hba()
fails and correctly validate nvme_local_port.

The Linux kernel CVE team has assigned CVE-2024-42286 to this issue.

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

	Fixed in 4.19.320 with commit 549aac965532
	Fixed in 5.4.282 with commit e1f010844443
	Fixed in 5.10.224 with commit a3ab508a4853
	Fixed in 5.15.165 with commit cde43031df53
	Fixed in 6.1.103 with commit 7cec2c3bfe84
	Fixed in 6.6.44 with commit f6be298cc104
	Fixed in 6.10.3 with commit 3eac973eb5cb
	Fixed in 6.11 with commit eb1d4ce26095

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-2024-42286
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/qla2xxx/qla_nvme.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/549aac9655320c9b245a24271b204668c5d40430
	https://git.kernel.org/stable/c/e1f010844443c389bc552884ac5cfa47de34d54c
	https://git.kernel.org/stable/c/a3ab508a4853a9f5ae25a7816a4889f09938f63c
	https://git.kernel.org/stable/c/cde43031df533751b4ead37d173922feee2f550f
	https://git.kernel.org/stable/c/7cec2c3bfe84539c415f5e16f989228eba1d2f1e
	https://git.kernel.org/stable/c/f6be298cc1042f24d521197af29c7c4eb95af4d5
	https://git.kernel.org/stable/c/3eac973eb5cb2b874b3918f924798afc5affd46b
	https://git.kernel.org/stable/c/eb1d4ce2609584eeb7694866f34d4b213caa3af9