cve/2024/CVE-2024-56565.md
2025-09-29 21:09:30 +02:00

1.9 KiB

CVE-2024-56565

Description

In the Linux kernel, the following vulnerability has been resolved:f2fs: fix to drop all discards after creating snapshot on lvm devicePiergiorgio reported a bug in bugzilla as below:------------[ cut here ]------------WARNING: CPU: 2 PID: 969 at fs/f2fs/segment.c:1330RIP: 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/0x30w/ 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/f2fsThe root cause is: it will update discard_max_bytes of mounted lvmdevice to zero after creating snapshot on this lvm device, then,__submit_discard_cmd() will pass parameter @nr_sects w/ zero valueto __blkdev_issue_discard(), it returns a NULL bio pointer, resultin panic.This patch changes as below for fixing:1. Let's drop all remained discards in f2fs_unfreeze() if snapshotof lvm device is created.2. Checking discard_max_bytes before submitting discard during__submit_discard_cmd().

POC

Reference

No PoCs from references.

Github