Skip to content
OpenAdvisories
Unscored CVE-2024-49880 EUVD-2024-43580GHSA-9r6q-3r52-hh42

ext4: fix off by one issue in alloc_flex_gd()

Published Oct 21, 2024 · Updated May 11, 2026 · Assigned by Linux

Vendor: Linux Product: Linux Package: linux Package: linux Package: linux-allwinner-5.19 Package: linux-aws Package: linux-aws-5.0 Package: linux-aws-5.11 Package: linux-aws-5.13 Package: linux-aws-5.19 Package: linux-aws-5.3 Package: linux-aws-5.8 Package: linux-aws-6.2 Package: linux-aws-6.5 Package: linux-aws-6.8 Package: linux-azure Package: linux-azure-5.11 Package: linux-azure-5.13 Package: linux-azure-5.19 Package: linux-azure-5.3 Package: linux-azure-5.8 Package: linux-azure-6.11 Package: linux-azure-6.2 Package: linux-azure-6.5 Package: linux-azure-6.8 Package: linux-azure-edge Package: linux-azure-fde Package: linux-azure-fde-5.19 Package: linux-azure-fde-6.2 Package: linux-azure-nvidia Package: linux-fips Package: linux-gcp Package: linux-gcp-5.11 Package: linux-gcp-5.13 Package: linux-gcp-5.19 Package: linux-gcp-5.3 Package: linux-gcp-5.8 Package: linux-gcp-6.11 Package: linux-gcp-6.2 Package: linux-gcp-6.5 Package: linux-gcp-6.8 Package: linux-gke Package: linux-gke-4.15 Package: linux-gke-5.15 Package: linux-gke-5.4 Package: linux-gkeop Package: linux-gkeop-5.15 Package: linux-gkeop-5.4 Package: linux-hwe Package: linux-hwe-5.11 Package: linux-hwe-5.13 Package: linux-hwe-5.19 Package: linux-hwe-5.8 Package: linux-hwe-6.2 Package: linux-hwe-6.5 Package: linux-hwe-6.8 Package: linux-hwe-edge Package: linux-ibm Package: linux-ibm-6.8 Package: linux-intel-5.13 Package: linux-intel-iot-realtime Package: linux-lowlatency Package: linux-lowlatency-hwe-5.19 Package: linux-lowlatency-hwe-6.2 Package: linux-lowlatency-hwe-6.5 Package: linux-lowlatency-hwe-6.8 Package: linux-nvidia Package: linux-nvidia-6.11 Package: linux-nvidia-6.2 Package: linux-nvidia-6.5 Package: linux-nvidia-6.8 Package: linux-nvidia-lowlatency Package: linux-oem Package: linux-oem-5.10 Package: linux-oem-5.13 Package: linux-oem-5.14 Package: linux-oem-5.17 Package: linux-oem-5.6 Package: linux-oem-6.0 Package: linux-oem-6.1 Package: linux-oem-6.11 Package: linux-oem-6.5 Package: linux-oem-6.8 Package: linux-oracle Package: linux-oracle-5.0 Package: linux-oracle-5.11 Package: linux-oracle-5.13 Package: linux-oracle-5.3 Package: linux-oracle-5.8 Package: linux-oracle-6.5 Package: linux-oracle-6.8 Package: linux-raspi Package: linux-raspi-realtime Package: linux-raspi2 Package: linux-realtime Package: linux-realtime-6.8 Package: linux-riscv Package: linux-riscv-5.11 Package: linux-riscv-5.19 Package: linux-riscv-5.8 Package: linux-riscv-6.5 Package: linux-riscv-6.8 Package: linux-starfive-5.19 Package: linux-starfive-6.2 Package: linux-starfive-6.5 Package: linux-vmware Package: linux-xilinx Platform: Linux Ecosystem: Debian Ecosystem: Ubuntu

Description

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

ext4: fix off by one issue in alloc_flex_gd()

Wesley reported an issue:

==================================================================
EXT4-fs (dm-5): resizing filesystem from 7168 to 786432 blocks
------------[ cut here ]------------
kernel BUG at fs/ext4/resize.c:324!
CPU: 9 UID: 0 PID: 3576 Comm: resize2fs Not tainted 6.11.0+ #27
RIP: 0010:ext4_resize_fs+0x1212/0x12d0
Call Trace:
__ext4_ioctl+0x4e0/0x1800
ext4_ioctl+0x12/0x20
__x64_sys_ioctl+0x99/0xd0
x64_sys_call+0x1206/0x20d0
do_syscall_64+0x72/0x110
entry_SYSCALL_64_after_hwframe+0x76/0x7e
==================================================================

While reviewing the patch, Honza found that when adjusting resize_bg in
alloc_flex_gd(), it was possible for flex_gd->resize_bg to be bigger than
flexbg_size.

The reproduction of the problem requires the following:

o_group = flexbg_size * 2 * n;
o_size = (o_group + 1) * group_size;
n_group: [o_group + flexbg_size, o_group + flexbg_size * 2)
o_size = (n_group + 1) * group_size;

Take n=0,flexbg_size=16 as an example:

last:15
|o---------------|--------------n-|
o_group:0 resize to n_group:30

The corresponding reproducer is:

img=test.img
rm -f $img
truncate -s 600M $img
mkfs.ext4 -F $img -b 1024 -G 16 8M
dev=`losetup -f --show $img`
mkdir -p /tmp/test
mount $dev /tmp/test
resize2fs $dev 248M

Delete the problematic plus 1 to fix the issue, and add a WARN_ON_ONCE()
to prevent the issue from happening again.

[ Note: another reproucer which this commit fixes is:

img=test.img
rm -f $img
truncate -s 25MiB $img
mkfs.ext4 -b 4096 -E nodiscard,lazy_itable_init=0,lazy_journal_init=0 $img
truncate -s 3GiB $img
dev=`losetup -f --show $img`
mkdir -p /tmp/test
mount $dev /tmp/test
resize2fs $dev 3G
umount $dev
losetup -d $dev

-- TYT ]

Affected products

VendorProductAffectedFixed
Linux Linux 6.8 6.10.14

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 linux 6.11.4-1 —
Debian 13 linux 6.11.4-1 —
ReleasePackageFixed inAdvisory
Ubuntu 24.04 LTS linux 6.8.0-54.56 USN-7301-1
Ubuntu 24.04 LTS linux-aws 6.8.0-1023.25 USN-7311-1
Ubuntu 24.04 LTS linux-azure 6.8.0-1025.30 USN-7384-1
Ubuntu 24.04 LTS linux-azure-6.11 6.11.0-1012.12~24.04.1 —
Ubuntu 24.04 LTS linux-azure-nvidia 6.8.0-1014.15 USN-7468-1
Ubuntu 24.04 LTS linux-gcp 6.8.0-1024.26 USN-7304-1
Ubuntu 24.04 LTS linux-gcp-6.11 6.11.0-1011.11~24.04.1 —
Ubuntu 24.04 LTS linux-gke +1 6.8.0-1019.23 USN-7304-1, USN-7303-3
Ubuntu 24.04 LTS linux-gkeop 6.8.0-1006.8 USN-7304-1
Ubuntu 24.04 LTS linux-ibm 6.8.0-1022.22 USN-7385-1
Ubuntu 24.04 LTS linux-lowlatency 6.8.0-54.56.1 USN-7301-1
Ubuntu 24.04 LTS linux-nvidia 6.8.0-1022.25 USN-7303-1
Ubuntu 24.04 LTS linux-nvidia-6.11 6.11.0-1007.7 —
Ubuntu 24.04 LTS linux-nvidia-lowlatency 6.8.0-1022.25.2 USN-7303-1
Ubuntu 24.04 LTS linux-oem-6.11 6.11.0-1015.15 USN-7310-1
Ubuntu 24.04 LTS linux-oem-6.8 6.8.0-1024.24 USN-7386-1
Ubuntu 24.04 LTS linux-oracle 6.8.0-1020.21 USN-7303-2
Ubuntu 24.04 LTS linux-realtime No fix yet —
Ubuntu 24.04 LTS linux-riscv 6.8.0-53.55.1 —
Ubuntu 24.04 LTS linux-xilinx 6.8.0-1017.18 —
Ubuntu 22.04 LTS linux-aws-6.8 6.8.0-1023.25~22.04.1 USN-7311-1
Ubuntu 22.04 LTS linux-azure-6.8 6.8.0-1025.30~22.04.1 USN-7384-2
Ubuntu 22.04 LTS linux-gcp-6.8 6.8.0-1024.26~22.04.1 USN-7303-3
Ubuntu 22.04 LTS linux-hwe-6.8 6.8.0-57.59~22.04.1 USN-7403-1
Ubuntu 22.04 LTS linux-ibm-6.8 6.8.0-1023.23~22.04.1 —
Ubuntu 22.04 LTS linux-lowlatency-hwe-6.8 6.8.0-54.56.1~22.04.1 USN-7301-1
Ubuntu 22.04 LTS linux-nvidia-6.8 6.8.0-1022.25~22.04.2 USN-7303-1
Ubuntu 22.04 LTS linux-oracle-6.8 6.8.0-1020.21~22.04.1 USN-7303-2
Ubuntu 22.04 LTS linux-riscv +32 No fix yet —
Ubuntu 22.04 LTS linux-riscv-6.8 6.8.0-53.55.1~22.04.1 —
Ubuntu 20.04 LTS linux-gke +28 No fix yet —
Ubuntu 18.04 LTS linux-gcp +14 No fix yet —
Ubuntu 16.04 LTS linux-hwe-edge No fix yet —
Show 3 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu Pro Realtime 24.04 LTS linux-raspi-realtime 6.8.0-2018.19 —
Ubuntu Pro Realtime 24.04 LTS linux-realtime 6.8.1-1016.17 —
Ubuntu Pro Realtime 22.04 LTS linux-realtime-6.8 6.8.1-1016.17~22.04.1 —
Ubuntu Pro FIPS-updates 24.04 LTS linux-fips 6.8.0-78.78+fips1 —
ReleasePackageFixed inAdvisory
openSUSE Tumbleweed kernel-source 6.11.8-1.1 openSUSE-SU-2024:14500-1
openSUSE Tumbleweed kernel-source-longterm 6.12.11-1.1 openSUSE-SU-2025:14705-1

Advisories 16

References