blob: 3da5d9f1010b7582ec1694eafdfb6dca4761ea33 [file] [log] [blame]
From bippy-5f407fcff5a0 Mon Sep 17 00:00:00 2001
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: <linux-cve-announce@vger.kernel.org>
Reply-to: <cve@kernel.org>, <linux-kernel@vger.kernel.org>
Subject: CVE-2024-43828: ext4: fix infinite loop when replaying fast_commit
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 8016e29f4362e285f0f7e38fadc61a5b7bdfdfa2 and fixed in 5.10.224 with commit 5ed0496e383cb6de120e56991385dce70bbb87c1
Issue introduced in 5.10 with commit 8016e29f4362e285f0f7e38fadc61a5b7bdfdfa2 and fixed in 5.15.165 with commit 0619f7750f2b178a1309808832ab20d85e0ad121
Issue introduced in 5.10 with commit 8016e29f4362e285f0f7e38fadc61a5b7bdfdfa2 and fixed in 6.1.103 with commit 181e63cd595c688194e07332f9944b3a63193de2
Issue introduced in 5.10 with commit 8016e29f4362e285f0f7e38fadc61a5b7bdfdfa2 and fixed in 6.6.44 with commit c6e67df64783e99a657ef2b8c834ba2bf54c539c
Issue introduced in 5.10 with commit 8016e29f4362e285f0f7e38fadc61a5b7bdfdfa2 and fixed in 6.10.3 with commit 81f819c537d29932e4b9267f02411cbc8b355178
Issue introduced in 5.10 with commit 8016e29f4362e285f0f7e38fadc61a5b7bdfdfa2 and fixed in 6.11 with commit 907c3fe532253a6ef4eb9c4d67efb71fab58c706
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