CVE-2024-49880: ext4: fix off by one issue in alloc_flex_gd()
In the Linux kernel, the following vulnerability has been resolved:
ext4: fix off by one issue in allocflexgd()
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:ext4resizefs+0x1212/0x12d0 Call Trace: ext4ioctl+0x4e0/0x1800 ext4ioctl+0x12/0x20 x64sysioctl+0x99/0xd0 x64syscall+0x1206/0x20d0 dosyscall64+0x72/0x110 entrySYSCALL64afterhwframe+0x76/0x7e ==================================================================
While reviewing the patch, Honza found that when adjusting resizebg in allocflexgd(), it was possible for flexgd->resizebg to be bigger than flexbgsize.
The reproduction of the problem requires the following:
ogroup = flexbgsize 2 n; osize = (ogroup + 1) groupsize; ngroup: [ogroup + flexbgsize, ogroup + flexbgsize 2) osize = (ngroup + 1) groupsize;
Take n=0,flexbgsize=16 as an example:
last:15 |o---------------|--------------n-| ogroup:0 resize to ngroup: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 WARNONONCE() 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,lazyitableinit=0,lazyjournalinit=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 ]
Other sources
This CVE was automatically created from a reference found in an email or other text. If you are reading this, then this CVE entry is probably erroneous, since this text should be replaced by the official CVE description automatically.
— Launchpad
Affected Software
Remediation
Event History
Frequently Asked Questions
What is the severity of CVE-2024-49880?
CVE-2024-49880 has a medium severity rating due to the potential for filesystem corruption.
How do I fix CVE-2024-49880?
The vulnerability can be fixed by updating the Linux kernel to versions 6.11.4 or higher, or by applying the appropriate patches.
Which versions of the Linux kernel are affected by CVE-2024-49880?
CVE-2024-49880 affects Linux kernel versions from 6.8 to 6.10.14 and 6.11, as well as 6.12-rc1.
What impact does CVE-2024-49880 have on Linux systems?
This vulnerability can lead to filesystem inconsistencies and potential data loss when resizing the ext4 filesystem.
Who reported CVE-2024-49880?
The CVE-2024-49880 vulnerability was reported by a researcher named Wesley.