Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2024-35807— ext4: fix corruption during on-line resize

EPSS 0.01% · P1
Get alerts for future matching vulnerabilitiesLog in to subscribe

I. Basic Information for CVE-2024-35807

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
ext4: fix corruption during on-line resize
Source: NVD (National Vulnerability Database)
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: ext4: fix corruption during on-line resize We observed a corruption during on-line resize of a file system that is larger than 16 TiB with 4k block size. With having more then 2^32 blocks resize_inode is turned off by default by mke2fs. The issue can be reproduced on a smaller file system for convenience by explicitly turning off resize_inode. An on-line resize across an 8 GiB boundary (the size of a meta block group in this setup) then leads to a corruption: dev=/dev/<some_dev> # should be >= 16 GiB mkdir -p /corruption /sbin/mke2fs -t ext4 -b 4096 -O ^resize_inode $dev $((2 * 2**21 - 2**15)) mount -t ext4 $dev /corruption dd if=/dev/zero bs=4096 of=/corruption/test count=$((2*2**21 - 4*2**15)) sha1sum /corruption/test # 79d2658b39dcfd77274e435b0934028adafaab11 /corruption/test /sbin/resize2fs $dev $((2*2**21)) # drop page cache to force reload the block from disk echo 1 > /proc/sys/vm/drop_caches sha1sum /corruption/test # 3c2abc63cbf1a94c9e6977e0fbd72cd832c4d5c3 /corruption/test 2^21 = 2^15*2^6 equals 8 GiB whereof 2^15 is the number of blocks per block group and 2^6 are the number of block groups that make a meta block group. The last checksum might be different depending on how the file is laid out across the physical blocks. The actual corruption occurs at physical block 63*2^15 = 2064384 which would be the location of the backup of the meta block group's block descriptor. During the on-line resize the file system will be converted to meta_bg starting at s_first_meta_bg which is 2 in the example - meaning all block groups after 16 GiB. However, in ext4_flex_group_add we might add block groups that are not part of the first meta block group yet. In the reproducer we achieved this by substracting the size of a whole block group from the point where the meta block group would start. This must be considered when updating the backup block group descriptors to follow the non-meta_bg layout. The fix is to add a test whether the group to add is already part of the meta block group or not.
Source: NVD (National Vulnerability Database)
CVSS Information
N/A
Source: NVD (National Vulnerability Database)
Vulnerability Type
N/A
Source: NVD (National Vulnerability Database)
Vulnerability Title
Linux kernel 安全漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于在调整文件系统大小期间发生损坏。
Source: CNNVD (China National Vulnerability Database)
CVSS Information
N/A
Source: CNNVD (China National Vulnerability Database)
Vulnerability Type
N/A
Source: CNNVD (China National Vulnerability Database)

Affected Products

VendorProductAffected VersionsCPESubscribe
LinuxLinux 01f795f9e0d67adeccc61a8b20c28acb45fa5fd8 ~ 75cc31c2e7193b69f5d25650bda5bb42ed92f8a1 -
LinuxLinux 3.7 -

II. Public POCs for CVE-2024-35807

#POC DescriptionSource LinkShenlong Link
AI-Generated POCPremium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2024-35807

登录查看更多情报信息。

Same Patch Batch · Linux · 2024-05-17 · 135 CVEs total

CVE-2024-35834xsk: recycle buffer in case Rx queue was full
CVE-2023-52686powerpc/powernv: Add a null pointer check in opal_event_init()
CVE-2023-52684firmware: qcom: qseecom: fix memory leaks in error paths
CVE-2023-52683ACPI: LPIT: Avoid u32 multiplication overflow
CVE-2023-52682f2fs: fix to wait on block writeback for post_read case
CVE-2023-52681efivarfs: Free s_fs_info on unmount
CVE-2023-52680ALSA: scarlett2: Add missing error checks to *_ctl_get()
CVE-2023-52679of: Fix double free in of_parse_phandle_with_args_map
CVE-2023-52678drm/amdkfd: Confirm list is non-empty before utilizing list_first_entry in kfd_topology.c
CVE-2023-52677riscv: Check if the code to patch lies in the exit section
CVE-2023-52676bpf: Guard stack limits against 32bit overflow
CVE-2023-52675powerpc/imc-pmu: Add a null pointer check in update_events_in_group()
CVE-2023-52674ALSA: scarlett2: Add clamp() in scarlett2_mixer_ctl_put()
CVE-2024-35838wifi: mac80211: fix potential sta-link leak
CVE-2024-35837net: mvpp2: clear BM pool before initialization
CVE-2024-35836dpll: fix pin dump crash for rebound module
CVE-2024-35835net/mlx5e: fix a double-free in arfs_create_groups
CVE-2023-52664net: atlantic: eliminate double free in error handling logic
CVE-2024-35830media: tc358743: register v4l2 async device only after successful setup
CVE-2024-35831io_uring: Fix release of pinned pages when __io_uaddr_map fails

Showing top 20 of 135 CVEs. View all on vendor page &rarr; →

IV. Related Vulnerabilities

V. Comments for CVE-2024-35807

No comments yet


Leave a comment