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

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2025-40054— f2fs: fix UAF issue in f2fs_merge_page_bio()

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

I. Basic Information for CVE-2025-40054

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
f2fs: fix UAF issue in f2fs_merge_page_bio()
Source: NVD (National Vulnerability Database)
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: f2fs: fix UAF issue in f2fs_merge_page_bio() As JY reported in bugzilla [1], Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000 pc : [0xffffffe51d249484] f2fs_is_cp_guaranteed+0x70/0x98 lr : [0xffffffe51d24adbc] f2fs_merge_page_bio+0x520/0x6d4 CPU: 3 UID: 0 PID: 6790 Comm: kworker/u16:3 Tainted: P B W OE 6.12.30-android16-5-maybe-dirty-4k #1 5f7701c9cbf727d1eebe77c89bbbeb3371e895e5 Tainted: [P]=PROPRIETARY_MODULE, [B]=BAD_PAGE, [W]=WARN, [O]=OOT_MODULE, [E]=UNSIGNED_MODULE Workqueue: writeback wb_workfn (flush-254:49) Call trace: f2fs_is_cp_guaranteed+0x70/0x98 f2fs_inplace_write_data+0x174/0x2f4 f2fs_do_write_data_page+0x214/0x81c f2fs_write_single_data_page+0x28c/0x764 f2fs_write_data_pages+0x78c/0xce4 do_writepages+0xe8/0x2fc __writeback_single_inode+0x4c/0x4b4 writeback_sb_inodes+0x314/0x540 __writeback_inodes_wb+0xa4/0xf4 wb_writeback+0x160/0x448 wb_workfn+0x2f0/0x5dc process_scheduled_works+0x1c8/0x458 worker_thread+0x334/0x3f0 kthread+0x118/0x1ac ret_from_fork+0x10/0x20 [1] https://bugzilla.kernel.org/show_bug.cgi?id=220575 The panic was caused by UAF issue w/ below race condition: kworker - writepages - f2fs_write_cache_pages - f2fs_write_single_data_page - f2fs_do_write_data_page - f2fs_inplace_write_data - f2fs_merge_page_bio - add_inu_page : cache page #1 into bio & cache bio in io->bio_list - f2fs_write_single_data_page - f2fs_do_write_data_page - f2fs_inplace_write_data - f2fs_merge_page_bio - add_inu_page : cache page #2 into bio which is linked in io->bio_list write - f2fs_write_begin : write page #1 - f2fs_folio_wait_writeback - f2fs_submit_merged_ipu_write - f2fs_submit_write_bio : submit bio which inclues page #1 and #2 software IRQ - f2fs_write_end_io - fscrypt_free_bounce_page : freed bounced page which belongs to page #2 - inc_page_count( , WB_DATA_TYPE(data_folio), false) : data_folio points to fio->encrypted_page the bounced page can be freed before accessing it in f2fs_is_cp_guarantee() It can reproduce w/ below testcase: Run below script in shell #1: for ((i=1;i>0;i++)) do xfs_io -f /mnt/f2fs/enc/file \ -c "pwrite 0 32k" -c "fdatasync" Run below script in shell #2: for ((i=1;i>0;i++)) do xfs_io -f /mnt/f2fs/enc/file \ -c "pwrite 0 32k" -c "fdatasync" So, in f2fs_merge_page_bio(), let's avoid using fio->encrypted_page after commit page into internal ipu cache.
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存在安全漏洞,该漏洞源于f2fs_merge_page_bio函数中存在释放后重用问题,可能导致空指针取消引用。
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 0b20fcec8651569935a10afe03fedc0b812d044e ~ 01118321e0c8a5f3ece57d0d377bfc92d83cd210 -
LinuxLinux 5.5 -

II. Public POCs for CVE-2025-40054

#POC DescriptionSource LinkShenlong Link
AI-Generated POCPremium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2025-40054

登录查看更多情报信息。

Same Patch Batch · Linux · 2025-10-28 · 58 CVEs total

CVE-2025-40064smc: Fix use-after-free in __pnet_find_base_ndev().
CVE-2025-40075tcp_metrics: use dst_dev_net_rcu()
CVE-2025-40078bpf: Explicitly check accesses to bpf_sock_addr
CVE-2025-40079riscv, bpf: Sign extend struct ops return values properly
CVE-2025-40077f2fs: fix to avoid overflow while left shift operation
CVE-2025-40081perf: arm_spe: Prevent overflow in PERF_IDX2OFF()
CVE-2025-40068fs: ntfs3: Fix integer overflow in run_unpack()
CVE-2025-40067fs/ntfs3: reject index allocation if $BITMAP is empty but blocks exist
CVE-2025-40066wifi: mt76: mt7996: Check phy before init msta_link in mt7996_mac_sta_add_links()
CVE-2025-40065RISC-V: KVM: Write hgatp register with valid mode bits
CVE-2025-40069drm/msm: Fix obj leak in VM_BIND error path
CVE-2025-40063crypto: comp - Use same definition of context alloc and free ops
CVE-2025-40062crypto: hisilicon/qm - set NULL to qm->debug.qm_diff_regs
CVE-2025-40061RDMA/rxe: Fix race in do_task() when draining
CVE-2025-40060coresight: trbe: Return NULL pointer for allocation failures
CVE-2025-40058iommu/vt-d: Disallow dirty tracking if incoherent page walk
CVE-2025-40059coresight: Fix incorrect handling for return value of devm_kzalloc
CVE-2025-40057ptp: Add a upper bound on max_vclocks
CVE-2025-40056vhost: vringh: Fix copy_to_iter return value check
CVE-2025-40055ocfs2: fix double free in user_cluster_connect()

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

IV. Related Vulnerabilities

V. Comments for CVE-2025-40054

No comments yet


Leave a comment