Vulnerability · Published Nov 9, 2024 · Assigned by Linux

CVE-2024-50217btrfs: fix use-after-free of block device file in __btrfs_free_extra_devids()

High 7.8

In plain English

A high-severity use-after-free in Linux from Linux. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 0.3% (higher than 20% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.

Severity (CVSS 3.1)7.8High
Exploit odds (30 days)0.3%top 79.6% of all CVEs
Exploited in the wildNo reportsCISA SSVC: none
Attack toolingNoneno public tooling known

Official description

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

Affected packages & fixed versions

EcosystemPackageFixed inAdvisory
Debian:12linuxno fix listedDEBIAN-CVE-2024-50217
Debian:13linux6.11.7-1DEBIAN-CVE-2024-50217
Debian:14linux6.11.7-1DEBIAN-CVE-2024-50217
Ubuntu:22.04:LTSlinuxno fix listedUBUNTU-CVE-2024-50217
Ubuntu:24.04:LTSlinuxno fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-allwinner-5.19no fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-awsno fix listedUBUNTU-CVE-2024-50217
Ubuntu:24.04:LTSlinux-awsno fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-aws-5.19no fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-aws-6.2no fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-aws-6.5no fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-aws-6.8no fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-azureno fix listedUBUNTU-CVE-2024-50217
Ubuntu:24.04:LTSlinux-azureno fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-azure-5.19no fix listedUBUNTU-CVE-2024-50217
Ubuntu:24.04:LTSlinux-azure-6.116.11.0-1012.12~24.04.1UBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-azure-6.2no fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-azure-6.5no fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-azure-6.8no fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-azure-fdeno fix listedUBUNTU-CVE-2024-50217
Ubuntu:24.04:LTSlinux-azure-fdeno fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-azure-fde-5.19no fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-azure-fde-6.2no fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-azure-fde-6.8no fix listedUBUNTU-CVE-2024-50217
Ubuntu:24.04:LTSlinux-azure-nvidiano fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-gcpno fix listedUBUNTU-CVE-2024-50217
Ubuntu:24.04:LTSlinux-gcpno fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-gcp-5.19no fix listedUBUNTU-CVE-2024-50217
Ubuntu:24.04:LTSlinux-gcp-6.116.11.0-1011.11~24.04.1UBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-gcp-6.2no fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-gcp-6.5no fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-gcp-6.8no fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-gkeno fix listedUBUNTU-CVE-2024-50217
Ubuntu:24.04:LTSlinux-gkeno fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-gkeopno fix listedUBUNTU-CVE-2024-50217
Ubuntu:24.04:LTSlinux-gkeopno fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-hwe-5.19no fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-hwe-6.2no fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-hwe-6.5no fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-hwe-6.8no fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-ibmno fix listedUBUNTU-CVE-2024-50217
Ubuntu:24.04:LTSlinux-ibmno fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-ibm-6.8no fix listedUBUNTU-CVE-2024-50217
Ubuntu:24.04:LTSlinux-intelno fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-intel-iot-realtimeno fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-intel-iotgno fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-kvmno fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-lowlatencyno fix listedUBUNTU-CVE-2024-50217
Ubuntu:24.04:LTSlinux-lowlatencyno fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-lowlatency-hwe-5.19no fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.2no fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.5no fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.8no fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-nvidiano fix listedUBUNTU-CVE-2024-50217
Ubuntu:24.04:LTSlinux-nvidiano fix listedUBUNTU-CVE-2024-50217
Ubuntu:24.04:LTSlinux-nvidia-6.116.11.0-1007.7UBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-nvidia-6.2no fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-nvidia-6.5no fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-nvidia-6.8no fix listedUBUNTU-CVE-2024-50217
Ubuntu:24.04:LTSlinux-nvidia-lowlatencyno fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-nvidia-tegrano fix listedUBUNTU-CVE-2024-50217
Ubuntu:24.04:LTSlinux-nvidia-tegra6.8.0-1035.38USN-8781-1
Ubuntu:24.04:LTSlinux-nvidia-tegra6.8.0-1035.38UBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-nvidia-tegra-igxno fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-oem-5.17no fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-oem-6.0no fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-oem-6.1no fix listedUBUNTU-CVE-2024-50217
Ubuntu:24.04:LTSlinux-oem-6.116.11.0-1015.15UBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-oem-6.5no fix listedUBUNTU-CVE-2024-50217
Ubuntu:24.04:LTSlinux-oem-6.8no fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-oracleno fix listedUBUNTU-CVE-2024-50217
Ubuntu:24.04:LTSlinux-oracleno fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-oracle-6.5no fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-oracle-6.8no fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-raspino fix listedUBUNTU-CVE-2024-50217
Ubuntu:24.04:LTSlinux-raspino fix listedUBUNTU-CVE-2024-50217
Ubuntu:24.04:LTSlinux-raspi-realtimeno fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-realtimeno fix listedUBUNTU-CVE-2024-50217
Ubuntu:24.04:LTSlinux-realtimeno fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-riscvno fix listedUBUNTU-CVE-2024-50217
Ubuntu:24.04:LTSlinux-riscvno fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-riscv-5.19no fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-riscv-6.5no fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-riscv-6.8no fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-starfive-5.19no fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-starfive-6.2no fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-starfive-6.5no fix listedUBUNTU-CVE-2024-50217
Ubuntu:24.04:LTSlinux-vmwareno fix listedUBUNTU-CVE-2024-50217
Ubuntu:24.04:LTSlinux-xilinxno fix listedUBUNTU-CVE-2024-50217
Ubuntu:22.04:LTSlinux-xilinx-zynqmpno fix listedUBUNTU-CVE-2024-50217

Affected products (as reported)

VendorProductVersions
Linux Linux 142388194191a3edc9ba01cfcfd8b691e0971fb2 – before 47a83f8df39545f3f552bb6a1b6d9c30e37621dd142388194191a3edc9ba01cfcfd8b691e0971fb2 – before aec8e6bf839101784f3ef037dcdb9432c3f32343
Linux Linux 4.8

Weakness: CWE-416 · Vector: CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H

References