First published: Sat Nov 09 2024(Updated: )
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().
Credit: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Affected Software | Affected Version | How to fix |
---|---|---|
Linux Kernel | >=4.8<6.11.7 | |
Linux Kernel | =6.12-rc1 | |
Linux Kernel | =6.12-rc2 | |
Linux Kernel | =6.12-rc3 | |
Linux Kernel | =6.12-rc4 | |
Linux Kernel | =6.12-rc5 |
Sign up to SecAlerts for real-time vulnerability data matched to your software, aggregated from hundreds of sources.
CVE-2024-50217 has a high severity rating due to potential use-after-free vulnerabilities in the Linux kernel's btrfs file system.
To fix CVE-2024-50217, update the Linux kernel to version 6.12 or later, or apply the specific patches provided by your distribution.
CVE-2024-50217 affects Linux kernel versions from 4.8 up to 6.11.7, as well as specific 6.12 release candidates.
A use-after-free vulnerability allows an attacker to exploit memory management issues, potentially leading to crashes or arbitrary code execution.
Yes, patches for CVE-2024-50217 have been made available in the Linux kernel's repositories for affected versions.