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

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2025-39738— btrfs: do not allow relocation of partially dropped subvolumes

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存在安全漏洞,该漏洞源于允许对部分删除的子卷进行重定位,可能导致事务中止。

CVSS 7.3 · High EPSS 0.18% · P7

Possible ATT&CK Techniques 1 AI

T1499 · Endpoint Denial of Service

Affected Version Matrix 16

VendorProduct Version RangeStatus
Linux Linux 638331fa56caeaa8b4d31cc1dfbe0ce989bcff67< fa086b1398cf7e5f7dee7241bd5f2855cb5df8dc affected
638331fa56caeaa8b4d31cc1dfbe0ce989bcff67< fcb1f77b8ed8795608ca7a1f6505e2b07236c1f3 affected
638331fa56caeaa8b4d31cc1dfbe0ce989bcff67< f83d4c81bda3b7d1813268ab77408f7a0ce691ff affected
638331fa56caeaa8b4d31cc1dfbe0ce989bcff67< 39a93e1c9dbf7e11632efeb20fcf0fc1dcf64d51 affected
638331fa56caeaa8b4d31cc1dfbe0ce989bcff67< 125e94a4b76b7b75d194f85bedd628097d2121f0 affected
638331fa56caeaa8b4d31cc1dfbe0ce989bcff67< 4e403bd8e127d40dc7c05f06ee969c1ba1537ec5 affected
638331fa56caeaa8b4d31cc1dfbe0ce989bcff67< 4289b494ac553e74e86fed1c66b2bf9530bc1082 affected
5.11 affected
… +8 more rows
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2025-39738

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: do not allow relocation of partially dropped subvolumes
Source: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: btrfs: do not allow relocation of partially dropped subvolumes [BUG] There is an internal report that balance triggered transaction abort, with the following call trace: item 85 key (594509824 169 0) itemoff 12599 itemsize 33 extent refs 1 gen 197740 flags 2 ref#0: tree block backref root 7 item 86 key (594558976 169 0) itemoff 12566 itemsize 33 extent refs 1 gen 197522 flags 2 ref#0: tree block backref root 7 ... BTRFS error (device loop0): extent item not found for insert, bytenr 594526208 num_bytes 16384 parent 449921024 root_objectid 934 owner 1 offset 0 BTRFS error (device loop0): failed to run delayed ref for logical 594526208 num_bytes 16384 type 182 action 1 ref_mod 1: -117 ------------[ cut here ]------------ BTRFS: Transaction aborted (error -117) WARNING: CPU: 1 PID: 6963 at ../fs/btrfs/extent-tree.c:2168 btrfs_run_delayed_refs+0xfa/0x110 [btrfs] And btrfs check doesn't report anything wrong related to the extent tree. [CAUSE] The cause is a little complex, firstly the extent tree indeed doesn't have the backref for 594526208. The extent tree only have the following two backrefs around that bytenr on-disk: item 65 key (594509824 METADATA_ITEM 0) itemoff 13880 itemsize 33 refs 1 gen 197740 flags TREE_BLOCK tree block skinny level 0 (176 0x7) tree block backref root CSUM_TREE item 66 key (594558976 METADATA_ITEM 0) itemoff 13847 itemsize 33 refs 1 gen 197522 flags TREE_BLOCK tree block skinny level 0 (176 0x7) tree block backref root CSUM_TREE But the such missing backref item is not an corruption on disk, as the offending delayed ref belongs to subvolume 934, and that subvolume is being dropped: item 0 key (934 ROOT_ITEM 198229) itemoff 15844 itemsize 439 generation 198229 root_dirid 256 bytenr 10741039104 byte_limit 0 bytes_used 345571328 last_snapshot 198229 flags 0x1000000000001(RDONLY) refs 0 drop_progress key (206324 EXTENT_DATA 2711650304) drop_level 2 level 2 generation_v2 198229 And that offending tree block 594526208 is inside the dropped range of that subvolume. That explains why there is no backref item for that bytenr and why btrfs check is not reporting anything wrong. But this also shows another problem, as btrfs will do all the orphan subvolume cleanup at a read-write mount. So half-dropped subvolume should not exist after an RW mount, and balance itself is also exclusive to subvolume cleanup, meaning we shouldn't hit a subvolume half-dropped during relocation. The root cause is, there is no orphan item for this subvolume. In fact there are 5 subvolumes from around 2021 that have the same problem. It looks like the original report has some older kernels running, and caused those zombie subvolumes. Thankfully upstream commit 8d488a8c7ba2 ("btrfs: fix subvolume/snapshot deletion not triggered on mount") has long fixed the bug. [ENHANCEMENT] For repairing such old fs, btrfs-progs will be enhanced. Considering how delayed the problem will show up (at run delayed ref time) and at that time we have to abort transaction already, it is too late. Instead here we reject any half-dropped subvolume for reloc tree at the earliest time, preventing confusion and extra time wasted on debugging similar bugs.
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:H
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存在安全漏洞,该漏洞源于允许对部分删除的子卷进行重定位,可能导致事务中止。
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 638331fa56caeaa8b4d31cc1dfbe0ce989bcff67 ~ fa086b1398cf7e5f7dee7241bd5f2855cb5df8dc -
Linux Linux 5.11 -

II. Public POCs for CVE-2025-39738

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

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2025-39738

请登录查看更多情报信息。

Same Patch Batch · Linux · 2025-09-11 · 54 CVEs total

CVE-2025-39758 9.8 CRITICAL RDMA/siw: Fix the sendmsg byte count in siw_tcp_sendpages
CVE-2025-39761 8.8 HIGH wifi: ath12k: Decrement TID on RX peer frag setup error handling
CVE-2025-39750 8.8 HIGH wifi: ath12k: Correct tid cleanup when tid setup fails
CVE-2025-39790 8.4 HIGH bus: mhi: host: Detect events pointing to unexpected TREs
CVE-2025-39740 7.8 HIGH drm/xe/migrate: prevent potential UAF
CVE-2025-39791 7.8 HIGH dm: dm-crypt: Do not partially accept write BIOs with zoned targets
CVE-2025-39779 7.8 HIGH btrfs: subpage: keep TOWRITE tag until folio is cleaned
CVE-2025-39780 7.8 HIGH sched/ext: Fix invalid task state transitions on class switch
CVE-2025-39785 7.8 HIGH drm/hisilicon/hibmc: fix irq_request()'s irq name variable is local
CVE-2025-39786 7.8 HIGH iio: adc: ad7173: fix channels index for syscalib_mode
CVE-2025-39787 7.8 HIGH soc: qcom: mdt_loader: Ensure we don't read past the ELF header
CVE-2025-39770 7.5 HIGH net: gso: Forbid IPv6 TSO with extensions on devices with only IPV6_CSUM
CVE-2025-39789 7.3 HIGH crypto: x86/aegis - Add missing error checks
CVE-2025-39776 7.0 HIGH mm/debug_vm_pgtable: clear page table entries at destroy_args()
CVE-2025-39771 regulator: pca9450: Use devm_register_sys_off_handler
CVE-2025-39788 scsi: ufs: exynos: Fix programming of HCI_UTRL_NEXUS_TYPE
CVE-2025-39768 net/mlx5: HWS, fix complex rules rehash error flow
CVE-2025-39764 netfilter: ctnetlink: remove refcounting in expectation dumpers
CVE-2025-39772 drm/hisilicon/hibmc: fix the hibmc loaded failed bug
CVE-2025-39766 net/sched: Make cake_enqueue return NET_XMIT_CN when past buffer_limit

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

IV. Related Vulnerabilities

V. Comments for CVE-2025-39738

No comments yet


Leave a comment