CVE-2022-49707

Severity CVSS v4.0:
Pending analysis
Type:
CWE-476 NULL Pointer Dereference
Publication date:
26/02/2025
Last modified:
01/10/2025

Description

In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> ext4: add reserved GDT blocks check<br /> <br /> We capture a NULL pointer issue when resizing a corrupt ext4 image which<br /> is freshly clear resize_inode feature (not run e2fsck). It could be<br /> simply reproduced by following steps. The problem is because of the<br /> resize_inode feature was cleared, and it will convert the filesystem to<br /> meta_bg mode in ext4_resize_fs(), but the es-&gt;s_reserved_gdt_blocks was<br /> not reduced to zero, so could we mistakenly call reserve_backup_gdb()<br /> and passing an uninitialized resize_inode to it when adding new group<br /> descriptors.<br /> <br /> mkfs.ext4 /dev/sda 3G<br /> tune2fs -O ^resize_inode /dev/sda #forget to run requested e2fsck<br /> mount /dev/sda /mnt<br /> resize2fs /dev/sda 8G<br /> <br /> ========<br /> BUG: kernel NULL pointer dereference, address: 0000000000000028<br /> CPU: 19 PID: 3243 Comm: resize2fs Not tainted 5.18.0-rc7-00001-gfde086c5ebfd #748<br /> ...<br /> RIP: 0010:ext4_flex_group_add+0xe08/0x2570<br /> ...<br /> Call Trace:<br /> <br /> ext4_resize_fs+0xbec/0x1660<br /> __ext4_ioctl+0x1749/0x24e0<br /> ext4_ioctl+0x12/0x20<br /> __x64_sys_ioctl+0xa6/0x110<br /> do_syscall_64+0x3b/0x90<br /> entry_SYSCALL_64_after_hwframe+0x44/0xae<br /> RIP: 0033:0x7f2dd739617b<br /> ========<br /> <br /> The fix is simple, add a check in ext4_resize_begin() to make sure that<br /> the es-&gt;s_reserved_gdt_blocks is zero when the resize_inode feature is<br /> disabled.

Vulnerable products and versions

CPE From Up to
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 4.9.320 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 4.10 (including) 4.14.285 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 4.15 (including) 4.19.249 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 4.20 (including) 5.4.200 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.5 (including) 5.10.124 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.11 (including) 5.15.49 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.16 (including) 5.18.6 (excluding)
cpe:2.3:o:linux:linux_kernel:5.19:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.19:rc2:*:*:*:*:*:*