Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

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

EPSS 0.03% · P7
Get alerts for future matching vulnerabilitiesLog in to subscribe

I. Basic Information for CVE-2024-50217

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
btrfs: fix use-after-free of block device file in __btrfs_free_extra_devids()
Source: NVD (National Vulnerability Database)
Vulnerability 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().
Source: NVD (National Vulnerability Database)
CVSS Information
N/A
Source: NVD (National Vulnerability Database)
Vulnerability Type
N/A
Source: NVD (National Vulnerability Database)
Vulnerability Title
Linux kernel 安全漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于内存释放后重用。
Source: CNNVD (China National Vulnerability Database)
CVSS Information
N/A
Source: CNNVD (China National Vulnerability Database)
Vulnerability Type
N/A
Source: CNNVD (China National Vulnerability Database)

Affected Products

VendorProductAffected VersionsCPESubscribe
LinuxLinux 142388194191a3edc9ba01cfcfd8b691e0971fb2 ~ 47a83f8df39545f3f552bb6a1b6d9c30e37621dd -
LinuxLinux 4.8 -

II. Public POCs for CVE-2024-50217

#POC DescriptionSource LinkShenlong Link
AI-Generated POCPremium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2024-50217

登录查看更多情报信息。

Same Patch Batch · Linux · 2024-11-09 · 49 CVEs total

CVE-2024-50249ACPI: CPPC: Make rmw_lock a raw_spin_lock
CVE-2024-50252mlxsw: spectrum_ipip: Fix memory leak when changing remote IPv6 address
CVE-2024-50254bpf: Free dynamically allocated bits in bpf_iter_bits_destroy()
CVE-2024-50258net: fix crash when config small gso_max_size/gso_ipv4_max_size
CVE-2024-50259netdevsim: Add trailing zero to terminate the string in nsim_nexthop_bucket_activity_write
CVE-2024-50260sock_map: fix a NULL pointer dereference in sock_map_link_update_prog()
CVE-2024-50261macsec: Fix use-after-free while sending the offloading packet
CVE-2024-50262bpf: Fix out-of-bounds write in trie_get_next_key()
CVE-2024-50257netfilter: Fix use-after-free in get_info()
CVE-2024-50250fsdax: dax_unshare_iter needs to copy entire blocks
CVE-2024-50251netfilter: nft_payload: sanitize offset and length before calling skb_checksum()
CVE-2024-50248ntfs3: Add bounds checking to mi_enum_attr()
CVE-2024-50247fs/ntfs3: Check if more than chunk-size bytes are written
CVE-2024-50246fs/ntfs3: Add rough attr alloc_size check
CVE-2024-50244fs/ntfs3: Additional check in ni_clear()
CVE-2024-50245fs/ntfs3: Fix possible deadlock in mi_read
CVE-2024-50243fs/ntfs3: Fix general protection fault in run_is_mapped_full
CVE-2024-50242fs/ntfs3: Additional check in ntfs_file_release
CVE-2024-50241NFSD: Initialize struct nfsd4_copy earlier
CVE-2024-50240phy: qcom: qmp-usb: fix NULL-deref on runtime suspend

Showing top 20 of 49 CVEs. View all on vendor page → →

IV. Related Vulnerabilities

V. Comments for CVE-2024-50217

No comments yet


Leave a comment