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

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2025-40303— btrfs: ensure no dirty metadata is written back for an fs with errors

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.8 · High EPSS 0.14% · P3

Affected Version Matrix 10

VendorProduct Version RangeStatus
Linux Linux 13e6c37b989859e70b0d73d3f2cb0aa022159b17< 066ee13f05fbd82ada01883e51f0695172f98dff affected
13e6c37b989859e70b0d73d3f2cb0aa022159b17< e2b3859067bf012d53c49b3f885fef40624a2c83 affected
13e6c37b989859e70b0d73d3f2cb0aa022159b17< 54a5b5a15588e3b0b294df31474d08a2678d4291 affected
13e6c37b989859e70b0d73d3f2cb0aa022159b17< 2618849f31e7cf51fadd4a5242458501a6d5b315 affected
3.10 affected
< 3.10 unaffected
6.6.117≤ 6.6.* unaffected
6.12.58≤ 6.12.* unaffected
… +2 more rows
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2025-40303

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: ensure no dirty metadata is written back for an fs with errors
Source: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: btrfs: ensure no dirty metadata is written back for an fs with errors [BUG] During development of a minor feature (make sure all btrfs_bio::end_io() is called in task context), I noticed a crash in generic/388, where metadata writes triggered new works after btrfs_stop_all_workers(). It turns out that it can even happen without any code modification, just using RAID5 for metadata and the same workload from generic/388 is going to trigger the use-after-free. [CAUSE] If btrfs hits an error, the fs is marked as error, no new transaction is allowed thus metadata is in a frozen state. But there are some metadata modifications before that error, and they are still in the btree inode page cache. Since there will be no real transaction commit, all those dirty folios are just kept as is in the page cache, and they can not be invalidated by invalidate_inode_pages2() call inside close_ctree(), because they are dirty. And finally after btrfs_stop_all_workers(), we call iput() on btree inode, which triggers writeback of those dirty metadata. And if the fs is using RAID56 metadata, this will trigger RMW and queue new works into rmw_workers, which is already stopped, causing warning from queue_work() and use-after-free. [FIX] Add a special handling for write_one_eb(), that if the fs is already in an error state, immediately mark the bbio as failure, instead of really submitting them. Then during close_ctree(), iput() will just discard all those dirty tree blocks without really writing them back, thus no more new jobs for already stopped-and-freed workqueues. The extra discard in write_one_eb() also acts as an extra safenet. E.g. the transaction abort is triggered by some extent/free space tree corruptions, and since extent/free space tree is already corrupted some tree blocks may be allocated where they shouldn't be (overwriting existing tree blocks). In that case writing them back will further corrupting the fs.
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/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 13e6c37b989859e70b0d73d3f2cb0aa022159b17 ~ 066ee13f05fbd82ada01883e51f0695172f98dff -
Linux Linux 3.10 -

II. Public POCs for CVE-2025-40303

# 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-40303

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

Same Patch Batch · Linux · 2025-12-08 · 82 CVEs total

CVE-2023-53751 9.8 CRITICAL cifs: fix potential use-after-free bugs in TCP_Server_Info::hostname
CVE-2025-40320 9.8 CRITICAL smb: client: fix potential cfid UAF in smb2_query_info_compound
CVE-2023-53769 9.3 CRITICAL virt/coco/sev-guest: Double-buffer messages
CVE-2023-53764 8.8 HIGH wifi: ath12k: Handle lock during peer_id find
CVE-2023-53762 8.8 HIGH Bluetooth: hci_sync: Fix UAF in hci_disconnect_all_sync
CVE-2025-40318 8.8 HIGH Bluetooth: hci_sync: fix race in hci_cmd_sync_dequeue_once
CVE-2025-40292 8.4 HIGH virtio-net: fix received length check in big packets
CVE-2025-40309 8.0 HIGH Bluetooth: SCO: Fix UAF on sco_conn_free
CVE-2025-40304 7.8 HIGH fbdev: Add bounds checking in bit_putcs to fix vmalloc-out-of-bounds
CVE-2025-40291 7.8 HIGH io_uring: fix regbuf vector size truncation
CVE-2025-40290 7.8 HIGH xsk: avoid data corruption on cq descriptor number
CVE-2023-53759 7.8 HIGH HID: hidraw: fix data race on device refcount
CVE-2025-40317 7.8 HIGH regmap: slimbus: fix bus_context pointer in regmap init calls
CVE-2025-40319 7.8 HIGH bpf: Sync pending IRQ work before freeing ring buffer
CVE-2025-40323 7.8 HIGH fbcon: Set fb_display[i]->mode to NULL when the mode is released
CVE-2023-53753 7.8 HIGH drm/amd/display: fix mapping to non-allocated address
CVE-2023-53752 7.8 HIGH net: deal with integer overflows in kmalloc_reserve()
CVE-2023-53747 7.8 HIGH vc_screen: reload load of struct vc_data pointer in vcs_write() to avoid UAF
CVE-2022-50623 7.8 HIGH fpga: prevent integer overflow in dfl_feature_ioctl_set_irq()
CVE-2022-50630 7.8 HIGH mm: hugetlb: fix UAF in hugetlb_handle_userfault

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

IV. Related Vulnerabilities

V. Comments for CVE-2025-40303

No comments yet


Leave a comment