CVE-2024-47680

MEDIUM

Linux Kernel 6.10-6.10.12, 6.11-6.11.1, 6.12 - NULL Pointer Dereference in F2FS Discard Handling

Title source: llm
STIX 2.1

Description

In the Linux kernel, the following vulnerability has been resolved: f2fs: check discard support for conventional zones As the helper function f2fs_bdev_support_discard() shows, f2fs checks if the target block devices support discard by calling bdev_max_discard_sectors() and bdev_is_zoned(). This check works well for most cases, but it does not work for conventional zones on zoned block devices. F2fs assumes that zoned block devices support discard, and calls __submit_discard_cmd(). When __submit_discard_cmd() is called for sequential write required zones, it works fine since __submit_discard_cmd() issues zone reset commands instead of discard commands. However, when __submit_discard_cmd() is called for conventional zones, __blkdev_issue_discard() is called even when the devices do not support discard. The inappropriate __blkdev_issue_discard() call was not a problem before the commit 30f1e7241422 ("block: move discard checks into the ioctl handler") because __blkdev_issue_discard() checked if the target devices support discard or not. If not, it returned EOPNOTSUPP. After the commit, __blkdev_issue_discard() no longer checks it. It always returns zero and sets NULL to the given bio pointer. This NULL pointer triggers f2fs_bug_on() in __submit_discard_cmd(). The BUG is recreated with the commands below at the umount step, where /dev/nullb0 is a zoned null_blk with 5GB total size, 128MB zone size and 10 conventional zones. $ mkfs.f2fs -f -m /dev/nullb0 $ mount /dev/nullb0 /mnt $ for ((i=0;i<5;i++)); do dd if=/dev/zero of=/mnt/test bs=65536 count=1600 conv=fsync; done $ umount /mnt To fix the BUG, avoid the inappropriate __blkdev_issue_discard() call. When discard is requested for conventional zones, check if the device supports discard or not. If not, return EOPNOTSUPP.

Scores

CVSS v3 5.5
EPSS 0.0023
EPSS Percentile 13.7%
Attack Vector LOCAL
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

CISA SSVC

Vulnrichment
Exploitation none
Automatable no
Technical Impact partial

Details

CWE
CWE-476
Status published
Products (11)
linux/Kernel 6.10.0 - 6.10.13linux
linux/Kernel 6.11.0 - 6.11.2linux
Linux/Linux < 6.10
Linux/Linux 30f1e724142242a453f92d90b33e030014900bf0 - 43aec4d01bd2ce961817a777b3846f8318f398e4
Linux/Linux 30f1e724142242a453f92d90b33e030014900bf0 - 7bd7ce68ddad5a28565e42ef21cacaff113773a9
Linux/Linux 30f1e724142242a453f92d90b33e030014900bf0 - d2352b57897f6a3349666fc318dcbec99092c6a5
Linux/Linux 6.10
Linux/Linux 6.10.13 - 6.10.*
Linux/Linux 6.11.2 - 6.11.*
Linux/Linux 6.12
... and 1 more
Published Oct 21, 2024
Tracked Since Feb 18, 2026