Subject: CVE-2024-27020: netfilter: nf_tables: Fix potential data-race in __nft_expr_type_get()

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

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

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

netfilter: nf_tables: Fix potential data-race in __nft_expr_type_get()

nft_unregister_expr() can concurrent with __nft_expr_type_get(),
and there is not any protection when iterate over nf_tables_expressions
list in __nft_expr_type_get(). Therefore, there is potential data-race
of nf_tables_expressions list entry.

Use list_for_each_entry_rcu() to iterate over nf_tables_expressions
list in __nft_expr_type_get(), and use rcu_read_lock() in the caller
nft_expr_type_get() to protect the entire type query process.

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

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

	Issue introduced in 3.13 with commit ef1f7df9170d and fixed in 4.19.313 with commit 939109c0a8e2
	Issue introduced in 3.13 with commit ef1f7df9170d and fixed in 5.4.275 with commit b38a133d37fa
	Issue introduced in 3.13 with commit ef1f7df9170d and fixed in 5.10.216 with commit 934e66e231cf
	Issue introduced in 3.13 with commit ef1f7df9170d and fixed in 5.15.157 with commit 0b6de00206ad
	Issue introduced in 3.13 with commit ef1f7df9170d and fixed in 6.1.88 with commit 8d56bad42ac4
	Issue introduced in 3.13 with commit ef1f7df9170d and fixed in 6.6.29 with commit a9ebf340d123
	Issue introduced in 3.13 with commit ef1f7df9170d and fixed in 6.8.8 with commit 01f1a678b05a
	Issue introduced in 3.13 with commit ef1f7df9170d and fixed in 6.9 with commit f969eb84ce48

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-27020
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:
	net/netfilter/nf_tables_api.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/939109c0a8e2a006a6cc8209e262d25065f4403a
	https://git.kernel.org/stable/c/b38a133d37fa421c8447b383d788c9cc6f5cb34c
	https://git.kernel.org/stable/c/934e66e231cff2b18faa2c8aad0b8cec13957e05
	https://git.kernel.org/stable/c/0b6de00206adbbfc6373b3ae38d2a6f197987907
	https://git.kernel.org/stable/c/8d56bad42ac4c43c6c72ddd6a654a2628bf839c5
	https://git.kernel.org/stable/c/a9ebf340d123ae12582210407f879d6a5a1bc25b
	https://git.kernel.org/stable/c/01f1a678b05ade4b1248019c2dcca773aebbeb7f
	https://git.kernel.org/stable/c/f969eb84ce482331a991079ab7a5c4dc3b7f89bf