CVE-2024-56565

f2fs: fix to drop all discards after creating snapshot on lvm device

published December 27, 2024

CVSS
—
EPSS
0%
Percentile
11.8
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

f2fs: fix to drop all discards after creating snapshot on lvm device

Piergiorgio reported a bug in bugzilla as below:

------------[ cut here ]------------

WARNING: CPU: 2 PID: 969 at fs/f2fs/segment.c:1330

RIP: 0010:__submit_discard_cmd+0x27d/0x400 [f2fs]

Call Trace:

__issue_discard_cmd+0x1ca/0x350 [f2fs]

issue_discard_thread+0x191/0x480 [f2fs]

kthread+0xcf/0x100

ret_from_fork+0x31/0x50

ret_from_fork_asm+0x1a/0x30

w/ below testcase, it can reproduce this bug quickly:

- pvcreate /dev/vdb

- vgcreate myvg1 /dev/vdb

- lvcreate -L 1024m -n mylv1 myvg1

- mount /dev/myvg1/mylv1 /mnt/f2fs

- dd if=/dev/zero of=/mnt/f2fs/file bs=1M count=20

- sync

- rm /mnt/f2fs/file

- sync

- lvcreate -L 1024m -s -n mylv1-snapshot /dev/myvg1/mylv1

- umount /mnt/f2fs

The root cause is: it will update discard_max_bytes of mounted lvm

device to zero after creating snapshot on this lvm device, then,

__submit_discard_cmd() will pass parameter @nr_sects w/ zero value

to __blkdev_issue_discard(), it returns a NULL bio pointer, result

in panic.

This patch changes as below for fixing:

1. Let's drop all remained discards in f2fs_unfreeze() if snapshot

of lvm device is created.

2. Checking discard_max_bytes before submitting discard during

__submit_discard_cmd().

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00220 · 11.8th percentile
Published
2024-12-27T14:23Z
EPSS history
Timeline
  • 27 DEC 14:23Z
    f2fs: fix to drop all discards after creating snapshot on lvm device
    cvelistv5