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

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2021-47508— btrfs: free exchange changeset on failures

EPSS 0.02% · P4

Affected Version Matrix 6

VendorProductVersion RangeStatus
LinuxLinux364ecf3651e0862152c8b340d7cb3021dc0122c7< ca06c5cb1b6dbfe67655b33c02fc394d65824519affected
364ecf3651e0862152c8b340d7cb3021dc0122c7< da5e817d9d75422eaaa05490d0b9a5e328fc1a51affected
4.13affected
< 4.13unaffected
5.15.8≤ 5.15.*unaffected
5.16≤ *unaffected
Get alerts for future matching vulnerabilitiesLog in to subscribe

I. Basic Information for CVE-2021-47508

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: free exchange changeset on failures
Source: NVD (National Vulnerability Database)
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: btrfs: free exchange changeset on failures Fstests runs on my VMs have show several kmemleak reports like the following. unreferenced object 0xffff88811ae59080 (size 64): comm "xfs_io", pid 12124, jiffies 4294987392 (age 6.368s) hex dump (first 32 bytes): 00 c0 1c 00 00 00 00 00 ff cf 1c 00 00 00 00 00 ................ 90 97 e5 1a 81 88 ff ff 90 97 e5 1a 81 88 ff ff ................ backtrace: [<00000000ac0176d2>] ulist_add_merge+0x60/0x150 [btrfs] [<0000000076e9f312>] set_state_bits+0x86/0xc0 [btrfs] [<0000000014fe73d6>] set_extent_bit+0x270/0x690 [btrfs] [<000000004f675208>] set_record_extent_bits+0x19/0x20 [btrfs] [<00000000b96137b1>] qgroup_reserve_data+0x274/0x310 [btrfs] [<0000000057e9dcbb>] btrfs_check_data_free_space+0x5c/0xa0 [btrfs] [<0000000019c4511d>] btrfs_delalloc_reserve_space+0x1b/0xa0 [btrfs] [<000000006d37e007>] btrfs_dio_iomap_begin+0x415/0x970 [btrfs] [<00000000fb8a74b8>] iomap_iter+0x161/0x1e0 [<0000000071dff6ff>] __iomap_dio_rw+0x1df/0x700 [<000000002567ba53>] iomap_dio_rw+0x5/0x20 [<0000000072e555f8>] btrfs_file_write_iter+0x290/0x530 [btrfs] [<000000005eb3d845>] new_sync_write+0x106/0x180 [<000000003fb505bf>] vfs_write+0x24d/0x2f0 [<000000009bb57d37>] __x64_sys_pwrite64+0x69/0xa0 [<000000003eba3fdf>] do_syscall_64+0x43/0x90 In case brtfs_qgroup_reserve_data() or btrfs_delalloc_reserve_metadata() fail the allocated extent_changeset will not be freed. So in btrfs_check_data_free_space() and btrfs_delalloc_reserve_space() free the allocated extent_changeset to get rid of the allocated memory. The issue currently only happens in the direct IO write path, but only after 65b3c08606e5 ("btrfs: fix ENOSPC failure when attempting direct IO write into NOCOW range"), and also at defrag_one_locked_target(). Every other place is always calling extent_changeset_free() even if its call to btrfs_delalloc_reserve_space() or btrfs_check_data_free_space() has failed.
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 存在安全漏洞,该漏洞源于 btrfs 模块存在漏洞。
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 364ecf3651e0862152c8b340d7cb3021dc0122c7 ~ ca06c5cb1b6dbfe67655b33c02fc394d65824519 -
LinuxLinux 4.13 -

II. Public POCs for CVE-2021-47508

#POC DescriptionSource LinkShenlong Link
AI-Generated POCPremium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2021-47508

登录查看更多情报信息。

Same Patch Batch · Linux · 2024-05-24 · 73 CVEs total

CVE-2021-47549sata_fsl: fix UAF in sata_fsl_port_stop when rmmod sata_fsl
CVE-2021-47569io_uring: fail cancellation for EXITING tasks
CVE-2021-47567powerpc/32: Fix hardlockup on vmap stack overflow
CVE-2021-47554vdpa_sim: avoid putting an uninitialized iova_domain
CVE-2021-47555net: vlan: fix underflow for the real_dev refcnt
CVE-2021-47553sched/scs: Reset task stack state in bringup_cpu()
CVE-2021-47551drm/amd/amdkfd: Fix kernel panic when reset failed and been triggered again
CVE-2021-47552blk-mq: cancel blk-mq dispatch work in both blk_cleanup_queue and disk_release()
CVE-2021-47550drm/amd/amdgpu: fix potential memleak
CVE-2021-47548ethernet: hisilicon: hns: hns_dsaf_misc: fix a possible array overflow in hns_dsaf_ge_srst
CVE-2021-47556ethtool: ioctl: fix potential NULL deref in ethtool_set_coalesce()
CVE-2021-47547net: tulip: de4x5: fix the problem that the array 'lp->phy[8]' may be out of bound
CVE-2021-47546ipv6: fix memory leak in fib6_rule_suppress
CVE-2021-47544tcp: fix page frag corruption on page fault
CVE-2021-47542net: qlogic: qlcnic: Fix a NULL pointer dereference in qlcnic_83xx_add_rings()
CVE-2021-47541net/mlx4_en: Fix an use-after-free bug in mlx4_en_try_alloc_resources()
CVE-2021-47540mt76: mt7915: fix NULL pointer dereference in mt7915_get_phy_mode
CVE-2021-47539rxrpc: Fix rxrpc_peer leak in rxrpc_look_up_bundle()
CVE-2021-47538rxrpc: Fix rxrpc_local leak in rxrpc_lookup_peer()
CVE-2021-47536net/smc: fix wrong list_del in smc_lgr_cleanup_early

Showing top 20 of 73 CVEs. View all on vendor page &rarr; →

IV. Related Vulnerabilities

V. Comments for CVE-2021-47508

No comments yet


Leave a comment