CVE-2026-23181: btrfs: sync read disk super and set block size
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
Security readout for executives and security teams
Plain-English summary
CVE-2026-23181 is a Linux kernel Btrfs bug that can crash or fault during mount-related block-size handling. The sources describe inconsistent block-device state causing a kernel assertion or NULL pointer dereference. No CVSS score or active exploitation evidence is provided.
Executive priority
Treat this as a kernel stability risk, not a confirmed internet-scale emergency. Patch through normal kernel maintenance, faster for Btrfs-heavy servers, multi-user systems, and environments where untrusted users can access mount or block-device operations.
Technical view
During a Btrfs mount, BLKBSZSET can change block size and mapping flags after a cache folio is allocated. That can make folio order smaller than mapping_min_folio_order() or trigger buffer-head allocation failure, leading to VM_BUG_ON_FOLIO or NULL pointer dereference. The fix synchronizes disk-super reads and block-size setting by inode.
Likely exposure
Exposure is most relevant to Linux systems using affected kernels with Btrfs support where a local user or service can perform Btrfs mount activity and manipulate block device block size. Exact privilege requirements are not stated in the sources.
Exploitation context
The bundle does not show active exploitation, KEV listing, public exploit code, or remote attack evidence. The described impact is a kernel crash/assertion or NULL pointer dereference found by syzbot during a local kernel filesystem path.
Researcher notes
The evidence supports a local filesystem/block-layer race or ordering flaw. The source does not provide CVSS, CWE, complete version ranges, privilege requirements, or confidentiality/integrity impact. Avoid overstating exploitability beyond crash/assertion behavior described in the kernel record.
Mitigation direction
Apply a vendor kernel update containing the referenced stable fixes.
Prioritize systems using Btrfs or allowing local block-device access.
Check distribution advisories for backported kernel fixes.
Restrict unnecessary local access to block devices and mount operations.
Avoid assuming fixed version numbers unless confirmed by your kernel vendor.
Validation and detection
Inventory Linux hosts running affected or vendor-backported kernels.
Identify systems with Btrfs enabled or Btrfs filesystems mounted.
Confirm kernel source or package includes the referenced stable commits.
Review kernel logs for related Btrfs, folio, buffer, or NULL dereference crashes.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2026-23181 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
0CVSS vectors
3Timeline events
0ADP providers
3Source links
Vulnerability timeline
Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.
CVE reservedCVE Program
The CVE ID was reserved by the assigning CNA.
CVE publishedCVE Program
The CVE record was published.
Feb 14, 2026, 16:27 UTC (UTC+00:00)
CVE updatedCVE Program
The CVE record metadata indicates this as the latest update time.