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

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2024-38636— f2fs: multidev: fix to recognize valid zero block address

Quick assessment

Affected
Linux Linux
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel 存在安全漏洞,该漏洞源于f2fs:multidev模块存在问题。

AI Predicted 5.5 Difficulty: Moderate EPSS 0.21% · P11

Possible ATT&CK Techniques 1 AI

T1499 · Endpoint Denial of Service

Affected Version Matrix 10

VendorProduct Version RangeStatus
Linux Linux 1517c1a7a4456f080fabc4ac9853930e4b880d14< 1a9225fdd0ec95fcf32936bcea9ceef0cf1512dc affected
1517c1a7a4456f080fabc4ac9853930e4b880d14< 2b2611a42462c6c685d40b5f3aedcd8d21c27065 affected
1517c1a7a4456f080fabc4ac9853930e4b880d14< e8b485e39b4d17afa9a2821fc778d5a67abfc03a affected
1517c1a7a4456f080fabc4ac9853930e4b880d14< 33e62cd7b4c281cd737c62e5d8c4f0e602a8c5c5 affected
5.17 affected
< 5.17 unaffected
6.1.93≤ 6.1.* unaffected
6.6.33≤ 6.6.* unaffected
… +2 more rows
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2024-38636

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
f2fs: multidev: fix to recognize valid zero block address
Source: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: f2fs: multidev: fix to recognize valid zero block address As reported by Yi Zhang in mailing list [1], kernel warning was catched during zbd/010 test as below: ./check zbd/010 zbd/010 (test gap zone support with F2FS) [failed] runtime ... 3.752s something found in dmesg: [ 4378.146781] run blktests zbd/010 at 2024-02-18 11:31:13 [ 4378.192349] null_blk: module loaded [ 4378.209860] null_blk: disk nullb0 created [ 4378.413285] scsi_debug:sdebug_driver_probe: scsi_debug: trim poll_queues to 0. poll_q/nr_hw = (0/1) [ 4378.422334] scsi host15: scsi_debug: version 0191 [20210520] dev_size_mb=1024, opts=0x0, submit_queues=1, statistics=0 [ 4378.434922] scsi 15:0:0:0: Direct-Access-ZBC Linux scsi_debug 0191 PQ: 0 ANSI: 7 [ 4378.443343] scsi 15:0:0:0: Power-on or device reset occurred [ 4378.449371] sd 15:0:0:0: Attached scsi generic sg5 type 20 [ 4378.449418] sd 15:0:0:0: [sdf] Host-managed zoned block device ... (See '/mnt/tests/gitlab.com/api/v4/projects/19168116/repository/archive.zip/storage/blktests/blk/blktests/results/nodev/zbd/010.dmesg' WARNING: CPU: 22 PID: 44011 at fs/iomap/iter.c:51 CPU: 22 PID: 44011 Comm: fio Not tainted 6.8.0-rc3+ #1 RIP: 0010:iomap_iter+0x32b/0x350 Call Trace: <TASK> __iomap_dio_rw+0x1df/0x830 f2fs_file_read_iter+0x156/0x3d0 [f2fs] aio_read+0x138/0x210 io_submit_one+0x188/0x8c0 __x64_sys_io_submit+0x8c/0x1a0 do_syscall_64+0x86/0x170 entry_SYSCALL_64_after_hwframe+0x6e/0x76 Shinichiro Kawasaki helps to analyse this issue and proposes a potential fixing patch in [2]. Quoted from reply of Shinichiro Kawasaki: "I confirmed that the trigger commit is dbf8e63f48af as Yi reported. I took a look in the commit, but it looks fine to me. So I thought the cause is not in the commit diff. I found the WARN is printed when the f2fs is set up with multiple devices, and read requests are mapped to the very first block of the second device in the direct read path. In this case, f2fs_map_blocks() and f2fs_map_blocks_cached() modify map->m_pblk as the physical block address from each block device. It becomes zero when it is mapped to the first block of the device. However, f2fs_iomap_begin() assumes that map->m_pblk is the physical block address of the whole f2fs, across the all block devices. It compares map->m_pblk against NULL_ADDR == 0, then go into the unexpected branch and sets the invalid iomap->length. The WARN catches the invalid iomap->length. This WARN is printed even for non-zoned block devices, by following steps. - Create two (non-zoned) null_blk devices memory backed with 128MB size each: nullb0 and nullb1. # mkfs.f2fs /dev/nullb0 -c /dev/nullb1 # mount -t f2fs /dev/nullb0 "${mount_dir}" # dd if=/dev/zero of="${mount_dir}/test.dat" bs=1M count=192 # dd if="${mount_dir}/test.dat" of=/dev/null bs=1M count=192 iflag=direct ..." So, the root cause of this issue is: when multi-devices feature is on, f2fs_map_blocks() may return zero blkaddr in non-primary device, which is a verified valid block address, however, f2fs_iomap_begin() treats it as an invalid block address, and then it triggers the warning in iomap framework code. Finally, as discussed, we decide to use a more simple and direct way that checking (map.m_flags & F2FS_MAP_MAPPED) condition instead of (map.m_pblk != NULL_ADDR) to fix this issue. Thanks a lot for the effort of Yi Zhang and Shinichiro Kawasaki on this issue. [1] https://lore.kernel.org/linux-f2fs-devel/CAHj4cs-kfojYC9i0G73PRkYzcxCTex=-vugRFeP40g_URGvnfQ@mail.gmail.com/ [2] https://lore.kernel.org/linux-f2fs-devel/gngdj77k4picagsfdtiaa7gpgnup6fsgwzsltx6milmhegmjff@iax2n4wvrqye/
Source: CVE Program / CVE List V5
CVSS Information
N/A
Source: CVE Program / CVE List V5
Vulnerability Type
N/A
Source: CVE Program / CVE List V5
Vulnerability Title
Linux kernel 安全漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel 存在安全漏洞,该漏洞源于f2fs:multidev模块存在问题。
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

Vendor Product Affected Versions CPE Subscribe
Linux Linux 1517c1a7a4456f080fabc4ac9853930e4b880d14 ~ 1a9225fdd0ec95fcf32936bcea9ceef0cf1512dc -
Linux Linux 5.17 -

II. Public POCs for CVE-2024-38636

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2024-38636

请登录查看更多情报信息。

Other References for CVE-2024-38636 (3)

Same Patch Batch · Linux · 2024-06-21 · 40 CVEs total

CVE-2024-36288 9.8 CRITICAL SUNRPC: Fix loop termination condition in gss_free_in_token_pages()
CVE-2024-38381 8.8 HIGH nfc: nci: Fix uninit-value in nci_rx_work
CVE-2024-38628 7.8 HIGH usb: gadget: u_audio: Fix race condition use of controls after free during gadget unbind.
CVE-2024-38626 7.8 HIGH fuse: clear FR_SENT when re-adding requests into pending list
CVE-2024-38623 7.8 HIGH fs/ntfs3: Use variable length array instead of fixed size
CVE-2024-38635 7.8 HIGH soundwire: cadence: fix invalid PDI offset
CVE-2024-38388 7.8 HIGH ALSA: hda/cs_dsp_ctl: Use private_free for control cleanup
CVE-2024-36286 7.8 HIGH netfilter: nfnetlink_queue: acquire rcu_read_lock() in instance_destroy_rcu()
CVE-2024-36477 7.8 HIGH tpm_tis_spi: Account for SPI header when allocating TPM SPI xfer buffer
CVE-2024-33619 7.8 HIGH efi: libstub: only free priv.runtime_map when allocated
CVE-2024-38659 7.3 HIGH enic: Validate length of nl attributes in enic_set_vf_port
CVE-2024-38780 dma-buf/sw-sync: don't enable IRQ from sync_print_obj()
CVE-2024-38662 bpf: Allow delete from sockmap/sockhash only if update is allowed
CVE-2024-39277 dma-mapping: benchmark: handle NUMA_NO_NODE correctly
CVE-2024-38637 greybus: lights: check return of get_channel_from_mode
CVE-2024-34777 dma-mapping: benchmark: fix node id validation
CVE-2024-38634 serial: max3100: Lock port->lock when calling uart_handle_cts_change()
CVE-2024-38633 serial: max3100: Update uart_driver_registered on driver removal
CVE-2024-38632 vfio/pci: fix potential memory leak in vfio_intx_enable()
CVE-2024-31076 genirq/cpuhotplug, x86/vector: Prevent vector leak during CPU offline

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

IV. Related Vulnerabilities

V. Comments for CVE-2024-38636

No comments yet


Leave a comment