APPLIED: [SRU][M][PATCH 0/1] CVE-2024-26704
Roxana Nicolescu
roxana.nicolescu at canonical.com
Thu Apr 25 15:02:22 UTC 2024
On 19/04/2024 23:28, Bethany Jamison wrote:
> [Impact]
>
> In the Linux kernel, the following vulnerability has been resolved:
>
> ext4: fix double-free of blocks due to wrong extents moved_len
>
> In ext4_move_extents(), moved_len is only updated when all moves are
> successfully executed, and only discards orig_inode and donor_inode
> preallocations when moved_len is not zero. When the loop fails to exit
> after successfully moving some extents, moved_len is not updated and
> remains at 0, so it does not discard the preallocations.
>
> If the moved extents overlap with the preallocated extents, the
> overlapped extents are freed twice in ext4_mb_release_inode_pa() and
> ext4_process_freed_data() (as described in commit 94d7c16cbbbd ("ext4:
> Fix double-free of blocks with EXT4_IOC_MOVE_EXT")), and bb_free is
> incremented twice. Hence when trim is executed, a zero-division bug is
> triggered in mb_update_avg_fragment_size() because bb_free is not zero
> and bb_fragments is zero.
>
> Therefore, update move_len after each extent move to avoid the issue.
>
> [Fix]
>
> Mantic: Clean cherry-pick from linux-6.6.y
> Jammy: pending
> Focal: pending
> Bionic: fix sent to esm ML
> Xenial: fix sent to esm ML
> Trusty: not-affected
>
> [Test Case]
>
> Compile and boot tested.
>
> [Where problems could occur]
>
> This fix affects those who use the Ext4 file system, and an issue with
> this fix would be visable to the user via a system crash.
>
> Baokun Li (1):
> ext4: fix double-free of blocks due to wrong extents moved_len
>
> fs/ext4/move_extent.c | 6 ++----
> 1 file changed, 2 insertions(+), 4 deletions(-)
>
It was already applied from upstream. I just added the CVE no to the
commit.
More information about the kernel-team
mailing list