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

Goal: 1000 CNY · Raised: 1336 CNY

100%

CVE-2023-53247— btrfs: set_page_extent_mapped after read_folio in btrfs_cont_expand

Quick assessment

Affected
Linux Linux
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于btrfs_cont_expand函数中未正确设置页面扩展映射,可能导致断言失败和系统崩溃。

AI Predicted 5.5 Difficulty: Moderate EPSS 0.14% · P4

Possible ATT&CK Techniques 1 AI

T1499 · Endpoint Denial of Service

Affected Version Matrix 8

VendorProduct Version RangeStatus
Linux Linux 32443de3382be98c0a8b8f6f50d23da2e10c4117< 0a5e0bc8e8618e32a6ca64450867628eb0a627bf affected
32443de3382be98c0a8b8f6f50d23da2e10c4117< a5880e69cf7fe4a0bb1eabae02205352d1b59b7b affected
32443de3382be98c0a8b8f6f50d23da2e10c4117< 17b17fcd6d446b95904a6929c40012ee7f0afc0c affected
5.12 affected
< 5.12 unaffected
6.1.42≤ 6.1.* unaffected
6.4.7≤ 6.4.* unaffected
6.5≤ * unaffected
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2023-53247

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: set_page_extent_mapped after read_folio in btrfs_cont_expand
Source: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: btrfs: set_page_extent_mapped after read_folio in btrfs_cont_expand While trying to get the subpage blocksize tests running, I hit the following panic on generic/476 assertion failed: PagePrivate(page) && page->private, in fs/btrfs/subpage.c:229 kernel BUG at fs/btrfs/subpage.c:229! Internal error: Oops - BUG: 00000000f2000800 [#1] SMP CPU: 1 PID: 1453 Comm: fsstress Not tainted 6.4.0-rc7+ #12 Hardware name: QEMU KVM Virtual Machine, BIOS edk2-20230301gitf80f052277c8-26.fc38 03/01/2023 pstate: 61400005 (nZCv daif +PAN -UAO -TCO +DIT -SSBS BTYPE=--) pc : btrfs_subpage_assert+0xbc/0xf0 lr : btrfs_subpage_assert+0xbc/0xf0 Call trace: btrfs_subpage_assert+0xbc/0xf0 btrfs_subpage_clear_checked+0x38/0xc0 btrfs_page_clear_checked+0x48/0x98 btrfs_truncate_block+0x5d0/0x6a8 btrfs_cont_expand+0x5c/0x528 btrfs_write_check.isra.0+0xf8/0x150 btrfs_buffered_write+0xb4/0x760 btrfs_do_write_iter+0x2f8/0x4b0 btrfs_file_write_iter+0x1c/0x30 do_iter_readv_writev+0xc8/0x158 do_iter_write+0x9c/0x210 vfs_iter_write+0x24/0x40 iter_file_splice_write+0x224/0x390 direct_splice_actor+0x38/0x68 splice_direct_to_actor+0x12c/0x260 do_splice_direct+0x90/0xe8 generic_copy_file_range+0x50/0x90 vfs_copy_file_range+0x29c/0x470 __arm64_sys_copy_file_range+0xcc/0x498 invoke_syscall.constprop.0+0x80/0xd8 do_el0_svc+0x6c/0x168 el0_svc+0x50/0x1b0 el0t_64_sync_handler+0x114/0x120 el0t_64_sync+0x194/0x198 This happens because during btrfs_cont_expand we'll get a page, set it as mapped, and if it's not Uptodate we'll read it. However between the read and re-locking the page we could have called release_folio() on the page, but left the page in the file mapping. release_folio() can clear the page private, and thus further down we blow up when we go to modify the subpage bits. Fix this by putting the set_page_extent_mapped() after the read. This is safe because read_folio() will call set_page_extent_mapped() before it does the read, and then if we clear page private but leave it on the mapping we're completely safe re-setting set_page_extent_mapped(). With this patch I can now run generic/476 without panicing.
Source: CVE Program / CVE List V5
CVSS Information
N/A
Source: CVE Program / CVE List V5
Vulnerability Type
N/A
Source: CVE Program / CVE List V5
Vulnerability Title
Linux kernel 安全漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于btrfs_cont_expand函数中未正确设置页面扩展映射,可能导致断言失败和系统崩溃。
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

Vendor Product Affected Versions CPE Subscribe
Linux Linux 32443de3382be98c0a8b8f6f50d23da2e10c4117 ~ 0a5e0bc8e8618e32a6ca64450867628eb0a627bf -
Linux Linux 5.12 -

II. Public POCs for CVE-2023-53247

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2023-53247

登录查看更多情报信息。

Same Patch Batch · Linux · 2025-09-15 · 210 CVEs total

CVE-2022-50235 9.8 CRITICAL NFSD: Protect against send buffer overflow in NFSv2 READDIR
CVE-2022-50335 9.8 CRITICAL 9p: set req refcount to zero to avoid uninitialized usage
CVE-2023-53192 9.8 CRITICAL vxlan: Fix nexthop hash size
CVE-2023-53253 8.8 HIGH HID: nvidia-shield: Reference hid_device devm allocation of input_dev name
CVE-2023-53226 8.8 HIGH wifi: mwifiex: Fix OOB and integer underflow when rx packets
CVE-2022-50241 8.8 HIGH NFSD: fix use-after-free on source server when doing inter-server copy
CVE-2023-53194 8.4 HIGH fs/ntfs3: Add length check in indx_get_root
CVE-2023-53213 8.1 HIGH wifi: brcmfmac: slab-out-of-bounds read in brcmf_get_assoc_ies()
CVE-2023-53186 8.1 HIGH skbuff: Fix a race between coalescing and releasing SKBs
CVE-2023-53254 7.8 HIGH cacheinfo: Fix shared_cpu_map to handle shared caches at different levels
CVE-2023-53219 7.8 HIGH media: netup_unidvb: fix use-after-free at del_timer()
CVE-2023-53252 7.8 HIGH Bluetooth: use RCU for hci_conn_params and iterate safely in hci_sync
CVE-2023-53170 7.8 HIGH net: dsa: Removed unneeded of_node_put in felix_parse_ports_node
CVE-2023-53176 7.8 HIGH serial: 8250: Reinit port->pm on port specific driver unbind
CVE-2023-53178 7.8 HIGH mm: fix zswap writeback race condition
CVE-2023-53179 7.8 HIGH netfilter: ipset: add the missing IP_SET_HASH_WITH_NET0 macro for ip_set_hash_netportnet.c
CVE-2022-50315 7.8 HIGH ata: ahci: Match EM_MAX_SLOTS with SATA_PMP_MAX_PORTS
CVE-2023-53184 7.8 HIGH arm64/sme: Set new vector length before reallocating
CVE-2023-53187 7.8 HIGH btrfs: fix use-after-free of new block group that became unused
CVE-2025-39800 7.8 HIGH btrfs: abort transaction on unexpected eb generation at btrfs_copy_root()

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

IV. Related Vulnerabilities

V. Comments for CVE-2023-53247

No comments yet


Leave a comment