Subject: CVE-2023-52679: of: Fix double free in of_parse_phandle_with_args_map

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

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

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

of: Fix double free in of_parse_phandle_with_args_map

In of_parse_phandle_with_args_map() the inner loop that
iterates through the map entries calls of_node_put(new)
to free the reference acquired by the previous iteration
of the inner loop. This assumes that the value of "new" is
NULL on the first iteration of the inner loop.

Make sure that this is true in all iterations of the outer
loop by setting "new" to NULL after its value is assigned to "cur".

Extend the unittest to detect the double free and add an additional
test case that actually triggers this path.

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

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

	Issue introduced in 4.17 with commit bd6f2fd5a1d5 and fixed in 4.19.306 with commit 26b4d702c44f
	Issue introduced in 4.17 with commit bd6f2fd5a1d5 and fixed in 5.4.268 with commit a0a061151a62
	Issue introduced in 4.17 with commit bd6f2fd5a1d5 and fixed in 5.10.209 with commit d5f490343c77
	Issue introduced in 4.17 with commit bd6f2fd5a1d5 and fixed in 5.15.148 with commit 454100408452
	Issue introduced in 4.17 with commit bd6f2fd5a1d5 and fixed in 6.1.75 with commit b9d760dae5b1
	Issue introduced in 4.17 with commit bd6f2fd5a1d5 and fixed in 6.6.14 with commit b64d09a4e859
	Issue introduced in 4.17 with commit bd6f2fd5a1d5 and fixed in 6.7.2 with commit cafa99213412
	Issue introduced in 4.17 with commit bd6f2fd5a1d5 and fixed in 6.8 with commit 4dde83569832

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-52679
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/of/base.c
	drivers/of/unittest-data/tests-phandle.dtsi
	drivers/of/unittest.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/26b4d702c44f9e5cf3c5c001ae619a4a001889db
	https://git.kernel.org/stable/c/a0a061151a6200c13149dbcdb6c065203c8425d2
	https://git.kernel.org/stable/c/d5f490343c77e6708b6c4aa7dbbfbcbb9546adea
	https://git.kernel.org/stable/c/4541004084527ce9e95a818ebbc4e6b293ffca21
	https://git.kernel.org/stable/c/b9d760dae5b10e73369b769073525acd7b3be2bd
	https://git.kernel.org/stable/c/b64d09a4e8596f76d27f4b4a90a1cf6baf6a82f8
	https://git.kernel.org/stable/c/cafa992134124e785609a406da4ff2b54052aff7
	https://git.kernel.org/stable/c/4dde83569832f9377362e50f7748463340c5db6b