🔍 CVE-2024-56565

5.5
CVSS Score
MEDIUM
2024-12-27
2026-10-30 13:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 f2fs 파일시스템에서, LVM 장치에 스냅샷을 생성하면 장치의 discard_max_bytes가 0으로 바뀌어 __submit_discard_cmd()가 NULL bio 포인터를 받아 커널 패닉(WARNING/BUG)이 발생하는 문제가 수정되었습니다. 수정 내용은 스냅샷 생성 후 남은 discard 요청을 모두 제거하고, discard 제출 전에 discard_max_bytes를 확인하는 것입니다.

💡 쉬운 설명

LVM 장치에서 스냅샷을 만들면 파일시스템이 쓰레기 공간 정리 작업을 잘못 시도해 시스템이 멈출 수 있었습니다. 이번 패치는 스냅샷 생성 후 대기 중인 정리 작업을 취소하고, 실행 전에 장치 설정을 먼저 확인하도록 고칩니다.

🇺🇸 원문 (English)

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().

📍 영향받는 시스템

f2fs 파일시스템을 LVM 장치에서 사용하는 Linux 커널 (수정된 커널 버전 이전의 여러 stable 브랜치)

⚔️ 공격 벡터

로컬 사용자 또는 관리자가 f2fs가 마운트된 LVM 논리 볼륨에 스냅샷을 생성하면 커널 패닉을 유발할 수 있음 (서비스 거부)

🛡️ 대응 방법

패치된 리눅스 커널 버전으로 업데이트하고 배포판의 보안 업데이트를 적용하십시오.

🔧 검증 코드

출력된 커널 버전을 배포판 보안 공지 또는 kernel.org의 stable 패치 목록과 비교하여, CVE-2024-56565 수정이 포함된 버전인지 확인합니다. 수정 전 버전이면 업데이트가 필요합니다.

Shell / Script
uname -r

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

💻 영향받는 소프트웨어

Linux Kernel