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

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2023-54121— btrfs: fix incorrect splitting in btrfs_drop_extent_map_range

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_drop_extent_map_range中不正确的分割逻辑,可能导致WARN_ON触发。

CVSS 7.8 · High EPSS 0.16% · P5

Possible ATT&CK Techniques 1 AI

T1564.008 · Email Hiding Rules

Affected Version Matrix 10

VendorProduct Version RangeStatus
Linux Linux 55ef68990029fcd8d04d42fc184aa7fb18cf309e< 9f68e2105dd96cf0fafffffafb2337fbd0fbae1f affected
55ef68990029fcd8d04d42fc184aa7fb18cf309e< b43a4c99d878cf5e59040e45c96bb0a8358bfb3b affected
55ef68990029fcd8d04d42fc184aa7fb18cf309e< c962098ca4af146f2625ed64399926a098752c9c affected
c87afd35a28b2661a2626a1b28e9fd69adcad9f9 affected
2.6.32.19< 2.6.33 affected
2.6.33 affected
< 2.6.33 unaffected
6.1.47≤ 6.1.* unaffected
… +2 more rows
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2023-54121

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: fix incorrect splitting in btrfs_drop_extent_map_range
Source: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: btrfs: fix incorrect splitting in btrfs_drop_extent_map_range In production we were seeing a variety of WARN_ON()'s in the extent_map code, specifically in btrfs_drop_extent_map_range() when we have to call add_extent_mapping() for our second split. Consider the following extent map layout PINNED [0 16K) [32K, 48K) and then we call btrfs_drop_extent_map_range for [0, 36K), with skip_pinned == true. The initial loop will have start = 0 end = 36K len = 36K we will find the [0, 16k) extent, but since we are pinned we will skip it, which has this code start = em_end; if (end != (u64)-1) len = start + len - em_end; em_end here is 16K, so now the values are start = 16K len = 16K + 36K - 16K = 36K len should instead be 20K. This is a problem when we find the next extent at [32K, 48K), we need to split this extent to leave [36K, 48k), however the code for the split looks like this split->start = start + len; split->len = em_end - (start + len); In this case we have em_end = 48K split->start = 16K + 36K // this should be 16K + 20K split->len = 48K - (16K + 36K) // this overflows as 16K + 36K is 52K and now we have an invalid extent_map in the tree that potentially overlaps other entries in the extent map. Even in the non-overlapping case we will have split->start set improperly, which will cause problems with any block related calculations. We don't actually need len in this loop, we can simply use end as our end point, and only adjust start up when we find a pinned extent we need to skip. Adjust the logic to do this, which keeps us from inserting an invalid extent map. We only skip_pinned in the relocation case, so this is relatively rare, except in the case where you are running relocation a lot, which can happen with auto relocation on.
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存在安全漏洞,该漏洞源于btrfs_drop_extent_map_range中不正确的分割逻辑,可能导致WARN_ON触发。
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 55ef68990029fcd8d04d42fc184aa7fb18cf309e ~ 9f68e2105dd96cf0fafffffafb2337fbd0fbae1f -
Linux Linux 2.6.33 -

II. Public POCs for CVE-2023-54121

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

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

Other References for CVE-2023-54121 (3)

Same Patch Batch · Linux · 2025-12-24 · 322 CVEs total

CVE-2023-54076 9.8 CRITICAL smb: client: fix missed ses refcounting
CVE-2022-50717 9.8 CRITICAL nvmet-tcp: add bounds check on Transfer Tag
CVE-2025-68745 9.8 CRITICAL scsi: qla2xxx: Clear cmds after chip reset
CVE-2025-68741 9.8 CRITICAL scsi: qla2xxx: Fix improper freeing of purex item
CVE-2023-54090 9.8 CRITICAL ixgbe: Fix panic during XDP_TX with > 64 CPUs
CVE-2023-54094 9.8 CRITICAL net: prevent skb corruption on frag list segmentation
CVE-2023-53867 9.8 CRITICAL ceph: fix potential use-after-free bug when trimming caps
CVE-2025-68359 9.8 CRITICAL btrfs: fix double free of qgroup record after failure to add delayed ref head
CVE-2025-68726 9.8 CRITICAL crypto: aead - Fix reqsize handling
CVE-2023-53996 9.3 CRITICAL x86/sev: Make enc_dec_hypercall() accept a size instead of npages
CVE-2023-54071 8.8 HIGH wifi: rtw88: use work to update rate to avoid RCU warning
CVE-2023-54060 8.8 HIGH iommufd: Set end correctly when doing batch carry
CVE-2023-54043 8.8 HIGH iommufd: Do not add the same hwpt to the ioas->hwpt_list twice
CVE-2022-50732 8.8 HIGH staging: rtl8192u: Fix use after free in ieee80211_rx()
CVE-2025-68736 8.8 HIGH landlock: Fix handling of disconnected directories
CVE-2023-54040 8.8 HIGH ice: fix wrong fallback logic for FDIR
CVE-2023-54092 8.8 HIGH KVM: s390: pv: fix index value of replaced ASCE
CVE-2023-54120 8.8 HIGH Bluetooth: Fix race condition in hidp_session_thread
CVE-2023-53986 8.6 HIGH mips: bmips: BCM6358: disable RAC flush for TP1
CVE-2022-50746 8.4 HIGH erofs: validate the extent length for uncompressed pclusters

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

IV. Related Vulnerabilities

V. Comments for CVE-2023-54121

No comments yet


Leave a comment