Subject: CVE-2021-47179: NFSv4: Fix a NULL pointer dereference in pnfs_mark_matching_lsegs_return()

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

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

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

NFSv4: Fix a NULL pointer dereference in pnfs_mark_matching_lsegs_return()

Commit de144ff4234f changes _pnfs_return_layout() to call
pnfs_mark_matching_lsegs_return() passing NULL as the struct
pnfs_layout_range argument. Unfortunately,
pnfs_mark_matching_lsegs_return() doesn't check if we have a value here
before dereferencing it, causing an oops.

I'm able to hit this crash consistently when running connectathon basic
tests on NFS v4.1/v4.2 against Ontap.

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

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

	Issue introduced in 4.9.269 with commit 80e34f4957ec and fixed in 4.9.271 with commit 4e1ba532dbc1
	Issue introduced in 4.14.233 with commit 7b7b97746432 and fixed in 4.14.235 with commit 42637ca25c7d
	Issue introduced in 4.19.191 with commit 9ffa7967f937 and fixed in 4.19.193 with commit 39785761fead
	Issue introduced in 5.4.118 with commit 6be0e4b59314 and fixed in 5.4.124 with commit aba3c7795f51
	Issue introduced in 5.10.36 with commit 2fafe7d5047f and fixed in 5.10.42 with commit f9890652185b
	Issue introduced in 5.12.3 with commit 7e65ea887d0c and fixed in 5.12.9 with commit b090d110e666
	Issue introduced in 5.11.20 with commit 96260bde1ea8

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-47179
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:
	fs/nfs/pnfs.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/4e1ba532dbc1a0e19fc2458d74ab8d98680c4e42
	https://git.kernel.org/stable/c/42637ca25c7d7b5a92804a679af5192e8c1a9f48
	https://git.kernel.org/stable/c/39785761feadf261bc5101372b0b0bbaf6a94494
	https://git.kernel.org/stable/c/aba3c7795f51717ae316f3566442dee7cc3eeccb
	https://git.kernel.org/stable/c/f9890652185b72b8de9ebeb4406037640b6e1b53
	https://git.kernel.org/stable/c/b090d110e66636bca473fd8b98d5c97b555a965a
	https://git.kernel.org/stable/c/a421d218603ffa822a0b8045055c03eae394a7eb