CVE-2026-43338: btrfs: reserve enough transaction items for qgroup ioctls

Published May 8, 2026
·
Updated

In the Linux kernel, the following vulnerability has been resolved:

btrfs: reserve enough transaction items for qgroup ioctls

Currently our qgroup ioctls don't reserve any space, they just do a transaction join, which does not reserve any space, neither for the quota tree updates nor for the delayed refs generated when updating the quota tree. The quota root uses the global block reserve, which is fine most of the time since we don't expect a lot of updates to the quota root, or to be too close to -ENOSPC such that other critical metadata updates need to resort to the global reserve.

However this is not optimal, as not reserving proper space may result in a transaction abort due to not reserving space for delayed refs and then abusing the use of the global block reserve.

For example, the following reproducer (which is unlikely to model any real world use case, but just to illustrate the problem), triggers such a transaction abort due to -ENOSPC when running delayed refs:

$ cat test.sh #!/bin/bash

DEV=/dev/nullb0 MNT=/mnt/nullb0

umount $DEV &> /dev/null # Limit device to 1G so that it's much faster to reproduce the issue. mkfs.btrfs -f -b 1G $DEV mount -o commit=600 $DEV $MNT

fallocate -l 800M $MNT/filler btrfs quota enable $MNT

for ((i = 1; i <= 400000; i++)); do btrfs qgroup create 1/$i $MNT done

umount $MNT

When running this, we can see in dmesg/syslog that a transaction abort happened:

[436.490] BTRFS error (device nullb0): failed to run delayed ref for logical 30408704 numbytes 16384 type 176 action 1 refmod 1: -28 [436.493] ------------[ cut here ]------------ [436.494] BTRFS: Transaction aborted (error -28) [436.495] WARNING: fs/btrfs/extent-tree.c:2247 at btrfsrundelayedrefs+0xd9/0x110 [btrfs], CPU#4: umount/2495372 [436.497] Modules linked in: btrfs loop (...) [436.508] CPU: 4 UID: 0 PID: 2495372 Comm: umount Tainted: G W 6.19.0-rc8-btrfs-next-225+ #1 PREEMPT(full) [436.510] Tainted: [W]=WARN [436.511] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.2-0-gea1b7a073390-prebuilt.qemu.org 04/01/2014 [436.513] RIP: 0010:btrfsrundelayedrefs+0xdf/0x110 [btrfs] [436.514] Code: 0f 82 ea (...) [436.518] RSP: 0018:ffffd511850b7d78 EFLAGS: 00010292 [436.519] RAX: 00000000ffffffe4 RBX: ffff8f120dad37e0 RCX: 0000000002040001 [436.520] RDX: 0000000000000002 RSI: 00000000ffffffe4 RDI: ffffffffc090fd80 [436.522] RBP: 0000000000000000 R08: 0000000000000001 R09: ffffffffc04d1867 [436.523] R10: ffff8f18dc1fffa8 R11: 0000000000000003 R12: ffff8f173aa89400 [436.524] R13: 0000000000000000 R14: ffff8f173aa89400 R15: 0000000000000000 [436.526] FS: 00007fe59045d840(0000) GS:ffff8f192e22e000(0000) knlGS:0000000000000000 [436.527] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [436.528] CR2: 00007fe5905ff2b0 CR3: 000000060710a002 CR4: 0000000000370ef0 [436.530] Call Trace: [436.530] <TASK> [436.530] btrfscommittransaction+0x73/0xc00 [btrfs] [436.531] ? btrfsattachtransactionbarrier+0x1e/0x70 [btrfs] [436.532] syncfilesystem+0x7a/0x90 [436.533] genericshutdownsuper+0x28/0x180 [436.533] killanonsuper+0x12/0x40 [436.534] btrfskillsuper+0x12/0x20 [btrfs] [436.534] deactivatelockedsuper+0x2f/0xb0 [436.534] cleanupmnt+0xea/0x180 [436.535] taskworkrun+0x58/0xa0 [436.535] exittousermodeloop+0xed/0x480 [436.536] ? x64sysumount+0x68/0x80 [436.536] dosyscall64+0x2a5/0xf20 [436.537] entrySYSCALL64afterhwframe+0x76/0x7e [436.537] RIP: 0033:0x7fe5906b6217 [436.538] Code: 0d 00 f7 (...) [436.540] RSP: 002b:00007ffcd87a61f8 EFLAGS: 00000246 ORIGRAX: 00000000000000a6 [436.541] RAX: 0000000000000000 RBX: 00005618b9ecadc8 RCX: 00007fe5906b6217 [436.541] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 00005618b9ecb100 [436.542] RBP: 0000000000000000 R08: 00007ffcd87a4fe0 R09: 00000000ffffffff [436.544] R10: 0000000000000103 R11: ---truncated---

Affected Software

8 affected components
Linux Linux kernel (btrfs)
Linux Linux kernel>=3.6<6.12.81
Linux Linux kernel>=6.13<6.18.22
Linux Linux kernel>=6.19<6.19.12
Linux Linux kernel=7.0-rc1
Linux Linux kernel=7.0-rc2
Linux Linux kernel=7.0-rc3
Linux Linux kernel=7.0-rc4

Event History

May 8, 2026
CVE Published
via MITRE·01:31 PM
Data Sourced
via MITRE·01:31 PM
Description
Data Sourced
via NVD·02:16 PM
RemedyDescriptionSeverityAffected Software
Free Weekly Intel

Don't miss critical vulnerabilities

Join thousands of security professionals who receive our weekly digest of trending CVEs, zero-days, and exploited vulnerabilities.

No spam. Unsubscribe anytime.

Frequently Asked Questions

1

What is the severity of CVE-2026-43338?

CVE-2026-43338 has been categorized as a moderate severity vulnerability affecting the btrfs file system in the Linux kernel.

2

How do I fix CVE-2026-43338?

To fix CVE-2026-43338, you should update the Linux kernel to the latest version that includes the patch for this vulnerability.

3

What systems are affected by CVE-2026-43338?

CVE-2026-43338 affects systems running the btrfs file system in various versions of the Linux kernel.

4

What are the potential impacts of CVE-2026-43338?

The potential impacts of CVE-2026-43338 include filesystem corruption or data loss due to inadequate space reservation for transaction items.

5

Is CVE-2026-43338 being actively exploited?

As of now, there are no public reports indicating active exploitation of CVE-2026-43338.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203