🔍 CVE-2024-50217

7.8
CVSS Score
HIGH
2024-11-09
2026-08-04 11:21
✅ 완료

🇰🇷 한글 설명

Linux 커널의 Btrfs 파일 시스템에서 발생하는 Use-After-Free 취약점입니다. 동일한 fsid를 가진 두 개의 이미지를 특정 순서로 마운트할 경우, 이미 해제된 블록 장치 파일 포인터를 참조하여 시스템 오류를 유발할 수 있습니다.

💡 쉬운 설명

컴퓨터가 이미 사용이 끝나서 버린 메모리 주소를 다시 사용하려고 시도할 때 발생하는 오류입니다. 특정 조건에서 파일을 마운트하면 시스템이 불안정해지거나 충돌할 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: btrfs: fix use-after-free of block device file in __btrfs_free_extra_devids() Mounting btrfs from two images (which have the same one fsid and two different dev_uuids) in certain executing order may trigger an UAF for variable 'device->bdev_file' in __btrfs_free_extra_devids(). And following are the details: 1. Attach image_1 to loop0, attach image_2 to loop1, and scan btrfs devices by ioctl(BTRFS_IOC_SCAN_DEV): / btrfs_device_1 → loop0 fs_device \ btrfs_device_2 → loop1 2. mount /dev/loop0 /mnt btrfs_open_devices btrfs_device_1->bdev_file = btrfs_get_bdev_and_sb(loop0) btrfs_device_2->bdev_file = btrfs_get_bdev_and_sb(loop1) btrfs_fill_super open_ctree fail: btrfs_close_devices // -ENOMEM btrfs_close_bdev(btrfs_device_1) fput(btrfs_device_1->bdev_file) // btrfs_device_1->bdev_file is freed btrfs_close_bdev(btrfs_device_2) fput(btrfs_device_2->bdev_file) 3. mount /dev/loop1 /mnt btrfs_open_devices btrfs_get_bdev_and_sb(&bdev_file) // EIO, btrfs_device_1->bdev_file is not assigned, // which points to a freed memory area btrfs_device_2->bdev_file = btrfs_get_bdev_and_sb(loop1) btrfs_fill_super open_ctree btrfs_free_extra_devids if (btrfs_device_1->bdev_file) fput(btrfs_device_1->bdev_file) // UAF ! Fix it by setting 'device->bdev_file' as 'NULL' after closing the btrfs_device in btrfs_close_one_device().

📍 영향받는 시스템

Linux Kernel (Btrfs 파일 시스템 사용 환경)

⚔️ 공격 벡터

동일한 fsid를 가진 두 개의 Btrfs 이미지를 특정 순서로 마운트 시도

🛡️ 대응 방법

커널 업데이트를 통해 btrfs_close_one_device() 함수에서 장치 종료 후 bdev_file을 NULL로 설정하는 패치를 적용해야 합니다.

🔧 검증 코드

현재 실행 중인 커널 버전을 확인하여 해당 취약점이 해결된 최신 보안 패치 버전인지 확인합니다.

Shell / Script
uname -r

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Linux Kernel