CVE-2026-68442: btrfs: don't propagate EXTENT_FLAG_LOGGING to split extent maps
Greg Kroah-Hartman <[email protected]>
| Newsgroups | org.kernel.vger.linux-cve-announce |
|---|---|
| Message-ID | <2026081256-CVE-2026-68442-db7a@gregkh> |
From: Greg Kroah-Hartman <[email protected]> Description =========== In the Linux kernel, the following vulnerability has been resolved: btrfs: don't propagate EXTENT_FLAG_LOGGING to split extent maps When btrfs_drop_extent_map_range() splits an extent map, the new split maps inherit the original map's flags through a local 'flags' variable. Commit f86f7a75e2fb ("btrfs: use the flags of an extent map to identify the compression type") changed the EXTENT_FLAG_LOGGING clearing to operate on em->flags instead of that local 'flags' copy, so a split of an extent map that is currently being logged wrongly inherits EXTENT_FLAG_LOGGING. The flag is then never cleared on the split, and when it is freed while still on the inode's modified_extents list (for example by the extent map shrinker) it trips the WARN_ON(!list_empty(&em->list)) in btrfs_free_extent_map() and leads to a use-after-free. Clear EXTENT_FLAG_LOGGING from the local 'flags' copy used for the splits and only clear EXTENT_FLAG_PINNED from em->flags, restoring the behaviour prior to f86f7a75e2fb. The Linux kernel CVE team has assigned CVE-2026-68442 to this issue. Affected and fixed versions =========================== Issue introduced in 6.8 with commit f86f7a75e2fb5fd7d31d00eab8a392f97ba42ce9 and fixed in 6.12.101 with commit 2a9246a424f45f33a1b8367052611ebe874868ad Issue introduced in 6.8 with commit f86f7a75e2fb5fd7d31d00eab8a392f97ba42ce9 and fixed in 6.18.42 with commit 9304713b70e7e1450e3a76e758836fe5391bfa95 Issue introduced in 6.8 with commit f86f7a75e2fb5fd7d31d00eab8a392f97ba42ce9 and fixed in 7.1.6 with commit 0e465c63f103a5ce6849614d6bda048d70eebec8 Issue introduced in 6.8 with commit f86f7a75e2fb5fd7d31d00eab8a392f97ba42ce9 and fixed in 7.2-rc5 with commit 5eff4d5b17fa1950e80bfd1ba43dc0699e61a644 Please see https://www.kernel.org for a full list of currently supported kernel versions by the kernel community. Unaffected versions might change over time as fixes are backported to older supported kernel versions. The official CVE entry at https://cve.org/CVERecord/?id=CVE-2026-68442 will be updated if fixes are backported, please check that for the most up to date information about this issue. Affected files ============== The file(s) affected by this issue are: fs/btrfs/extent_map.c Mitigation ========== The Linux kernel CVE team recommends that you update to the latest stable kernel version for this, and many other bugfixes. Individual changes are never tested alone, but rather are part of a larger kernel release. Cherry-picking individual commits is not recommended or supported by the Linux kernel community at all. If however, updating to the latest release is impossible, the individual changes to resolve this issue can be found at these commits: https://git.kernel.org/stable/c/2a9246a424f45f33a1b8367052611ebe874868ad https://git.kernel.org/stable/c/9304713b70e7e1450e3a76e758836fe5391bfa95 https://git.kernel.org/stable/c/0e465c63f103a5ce6849614d6bda048d70eebec8 https://git.kernel.org/stable/c/5eff4d5b17fa1950e80bfd1ba43dc0699e61a644