Subject: CVE-2024-43828: ext4: fix infinite loop when replaying fast_commit

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

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

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

ext4: fix infinite loop when replaying fast_commit

When doing fast_commit replay an infinite loop may occur due to an
uninitialized extent_status struct.  ext4_ext_determine_insert_hole() does
not detect the replay and calls ext4_es_find_extent_range(), which will
return immediately without initializing the 'es' variable.

Because 'es' contains garbage, an integer overflow may happen causing an
infinite loop in this function, easily reproducible using fstest generic/039.

This commit fixes this issue by unconditionally initializing the structure
in function ext4_es_find_extent_range().

Thanks to Zhang Yi, for figuring out the real problem!

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

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

	Issue introduced in 5.10 with commit 8016e29f4362 and fixed in 5.10.224 with commit 5ed0496e383c
	Issue introduced in 5.10 with commit 8016e29f4362 and fixed in 5.15.165 with commit 0619f7750f2b
	Issue introduced in 5.10 with commit 8016e29f4362 and fixed in 6.1.103 with commit 181e63cd595c
	Issue introduced in 5.10 with commit 8016e29f4362 and fixed in 6.6.44 with commit c6e67df64783
	Issue introduced in 5.10 with commit 8016e29f4362 and fixed in 6.10.3 with commit 81f819c537d2
	Issue introduced in 5.10 with commit 8016e29f4362 and fixed in 6.11 with commit 907c3fe53225

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-43828
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/ext4/extents_status.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/5ed0496e383cb6de120e56991385dce70bbb87c1
	https://git.kernel.org/stable/c/0619f7750f2b178a1309808832ab20d85e0ad121
	https://git.kernel.org/stable/c/181e63cd595c688194e07332f9944b3a63193de2
	https://git.kernel.org/stable/c/c6e67df64783e99a657ef2b8c834ba2bf54c539c
	https://git.kernel.org/stable/c/81f819c537d29932e4b9267f02411cbc8b355178
	https://git.kernel.org/stable/c/907c3fe532253a6ef4eb9c4d67efb71fab58c706