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

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2026-23181— btrfs: sync read disk super and set block size

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

I. Basic Information for CVE-2026-23181

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: sync read disk super and set block size
Source: NVD (National Vulnerability Database)
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: btrfs: sync read disk super and set block size When the user performs a btrfs mount, the block device is not set correctly. The user sets the block size of the block device to 0x4000 by executing the BLKBSZSET command. Since the block size change also changes the mapping->flags value, this further affects the result of the mapping_min_folio_order() calculation. Let's analyze the following two scenarios: Scenario 1: Without executing the BLKBSZSET command, the block size is 0x1000, and mapping_min_folio_order() returns 0; Scenario 2: After executing the BLKBSZSET command, the block size is 0x4000, and mapping_min_folio_order() returns 2. do_read_cache_folio() allocates a folio before the BLKBSZSET command is executed. This results in the allocated folio having an order value of 0. Later, after BLKBSZSET is executed, the block size increases to 0x4000, and the mapping_min_folio_order() calculation result becomes 2. This leads to two undesirable consequences: 1. filemap_add_folio() triggers a VM_BUG_ON_FOLIO(folio_order(folio) < mapping_min_folio_order(mapping)) assertion. 2. The syzbot report [1] shows a null pointer dereference in create_empty_buffers() due to a buffer head allocation failure. Synchronization should be established based on the inode between the BLKBSZSET command and read cache page to prevent inconsistencies in block size or mapping flags before and after folio allocation. [1] KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007] RIP: 0010:create_empty_buffers+0x4d/0x480 fs/buffer.c:1694 Call Trace: folio_create_buffers+0x109/0x150 fs/buffer.c:1802 block_read_full_folio+0x14c/0x850 fs/buffer.c:2403 filemap_read_folio+0xc8/0x2a0 mm/filemap.c:2496 do_read_cache_folio+0x266/0x5c0 mm/filemap.c:4096 do_read_cache_page mm/filemap.c:4162 [inline] read_cache_page_gfp+0x29/0x120 mm/filemap.c:4195 btrfs_read_disk_super+0x192/0x500 fs/btrfs/volumes.c:1367
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存在安全漏洞,该漏洞源于未同步读取磁盘超级块并设置块大小,可能导致映射计算错误。
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 3c20917120ce61f2a123ca0810293872f4c6b5a4 ~ ccb3c75d57039adb3170ae54a0d470e359705984 -
LinuxLinux 6.15 -

II. Public POCs for CVE-2026-23181

#POC DescriptionSource LinkShenlong Link
AI-Generated POCPremium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-23181

登录查看更多情报信息。

Same Patch Batch · Linux · 2026-02-14 · 108 CVEs total

CVE-2026-231938.8 HIGHscsi: target: iscsi: Fix use-after-free in iscsit_dec_session_usage_count()
CVE-2026-231728.4 HIGHnet: wwan: t7xx: fix potential skb->frags overflow in RX path
CVE-2026-232097.8 HIGHmacvlan: fix error recovery in macvlan_common_newlink()
CVE-2026-231697.8 HIGHmptcp: fix race in mptcp_pm_nl_flush_addrs_doit()
CVE-2026-231717.8 HIGHbonding: fix use-after-free due to enslave fail after slave array update
CVE-2026-231787.8 HIGHHID: i2c-hid: fix potential buffer overflow in i2c_hid_get_report()
CVE-2026-231847.8 HIGHbinder: fix UAF in binder_netlink_report()
CVE-2026-231857.8 HIGHwifi: iwlwifi: mld: cancel mlo_scan_start_wk
CVE-2026-231917.8 HIGHALSA: aloop: Fix racy access at PCM trigger
CVE-2026-231927.8 HIGHlinkwatch: use __dev_put() in callers to prevent UAF
CVE-2026-231987.8 HIGHKVM: Don't clobber irqfd routing type when deassigning irqfd
CVE-2026-231367.5 HIGHlibceph: reset sparse-read state in osd_fault()
CVE-2026-231487.5 HIGHnvmet: fix race in nvmet_bio_done() leading to NULL pointer dereference
CVE-2026-231397.5 HIGHnetfilter: nf_conncount: update last_gc only when GC has been performed
CVE-2026-231617.3 HIGHmm/shmem, swap: fix race of truncate and swap entry split
CVE-2026-232047.1 HIGHnet/sched: cls_u32: use skb_header_pointer_careful()
CVE-2026-231957.0 HIGHcgroup/dmem: avoid pool UAF
CVE-2026-231807.0 HIGHdpaa2-switch: add bounds check for if_id in IRQ handler
CVE-2026-231757.0 HIGHnet: cpsw: Execute ndo_set_rx_mode callback in a work queue
CVE-2026-23113io_uring/io-wq: check IO_WQ_BIT_EXIT inside work run loop

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

IV. Related Vulnerabilities

V. Comments for CVE-2026-23181

No comments yet


Leave a comment