Description
In the Linux kernel, the following vulnerability has been resolved:
btrfs: adjust subpage bit start based on sectorsize
When running machines with 64k page size and a 16k nodesize we started
seeing tree log corruption in production. This turned out to be because
we were not writing out dirty blocks sometimes, so this in fact affects
all metadata writes.
When writing out a subpage EB we scan the subpage bitmap for a dirty
range. If the range isn't dirty we do
bit_start++;
to move onto the next bit. The problem is the bitmap is based on the
number of sectors that an EB has. So in this case, we have a 64k
pagesize, 16k nodesize, but a 4k sectorsize. This means our bitmap is 4
bits for every node. With a 64k page size we end up with 4 nodes per
page.
To make this easier this is how everything looks
[0 16k 32k 48k ] logical address
[0 4 8 12 ] radix tree offset
[ 64k page ] folio
[ 16k eb ][ 16k eb ][ 16k eb ][ 16k eb ] extent buffers
[ | | | | | | | | | | | | | | | | ] bitmap
Now we use all of our addressing based on fs_info->sectorsize_bits, so
as you can see the above our 16k eb->start turns into radix entry 4.
When we find a dirty range for our eb, we correctly do bit_start +=
sectors_per_node, because if we start at bit 0, the next bit for the
next eb is 4, to correspond to eb->start 16k.
However if our range is clean, we will do bit_start++, which will now
put us offset from our radix tree entries.
In our case, assume that the first time we check the bitmap the block is
not dirty, we increment bit_start so now it == 1, and then we loop
around and check again. This time it is dirty, and we go to find that
start using the following equation
start = folio_start + bit_start * fs_info->sectorsize;
so in the case above, eb->start 0 is now dirty, and we calculate start
as
0 + 1 * fs_info->sectorsize = 4096
4096 >> 12 = 1
Now we're looking up the radix tree for 1, and we won't find an eb.
What's worse is now we're using bit_start == 1, so we do bit_start +=
sectors_per_node, which is now 5. If that eb is dirty we will run into
the same thing, we will look at an offset that is not populated in the
radix tree, and now we're skipping the writeout of dirty extent buffers.
The best fix for this is to not use sectorsize_bits to address nodes,
but that's a larger change. Since this is a fs corruption problem fix
it simply by always using sectors_per_node to increment the start bit.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| Linux | Linux | 5.13 | 6.1.151 |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | linux | 6.12.29-1 | — |
| Debian 13 | linux | 6.12.29-1 | — |
| Debian 12 | linux | 6.1.153-1 | DSA-6009-1 |
| Debian 11 | linux-6.1 | 6.1.153-1~deb11u1 | DLA-4328-1 |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu Nvidia-BlueField 24.04 LTS | linux-bluefield | 6.8.0-1016.20 | — |
| Ubuntu Nvidia-BlueField 22.04 LTS | linux-bluefield | No fix yet | — |
| Ubuntu 25.10 | linux-azure-fde | No fix yet | — |
| Ubuntu 25.04 | linux | 6.14.0-24.24 | USN-7649-1 |
| Ubuntu 25.04 | linux-aws +2 | 6.14.0-1009.9 | USN-7665-1, USN-7649-2, USN-7649-1 |
| Ubuntu 25.04 | linux-azure | 6.14.0-1010.10 | USN-7721-1 |
| Ubuntu 25.04 | linux-gcp | 6.14.0-1011.11 | USN-7649-1 |
| Ubuntu 25.04 | linux-realtime | 6.14.0-1006.6 | USN-7649-1 |
| Ubuntu 24.04 LTS | linux | 6.8.0-100.100 | USN-8028-1 |
| Ubuntu 24.04 LTS | linux-aws +1 | 6.8.0-1046.49 | USN-8028-5 |
| Ubuntu 24.04 LTS | linux-aws-6.14 +1 | 6.14.0-1009.9~24.04.1 | USN-7665-2 |
| Ubuntu 24.04 LTS | linux-azure | 6.8.0-1046.52 | USN-8074-1 |
| Ubuntu 24.04 LTS | linux-azure-fde | 6.8.0-1046.53 | — |
| Ubuntu 24.04 LTS | linux-azure-nvidia | 6.8.0-1039.42 | — |
| Ubuntu 24.04 LTS | linux-gcp | 6.8.0-1047.50 | USN-8031-3 |
| Ubuntu 24.04 LTS | linux-gcp-6.14 | 6.14.0-1011.11~24.04.1 | — |
| Ubuntu 24.04 LTS | linux-gke | 6.8.0-1043.48 | USN-8031-3 |
| Ubuntu 24.04 LTS | linux-gkeop | 6.8.0-1030.33 | USN-8028-5 |
| Ubuntu 24.04 LTS | linux-ibm | 6.8.0-1044.44 | USN-8028-8 |
| Ubuntu 24.04 LTS | linux-intel +10 | No fix yet | — |
| Ubuntu 24.04 LTS | linux-lowlatency | 6.8.0-100.100.1 | USN-8052-1 |
| Ubuntu 24.04 LTS | linux-nvidia-lowlatency | 6.8.0-1046.49.1 | USN-8028-7 |
| Ubuntu 24.04 LTS | linux-nvidia-tegra | 6.8.0-1020.20 | — |
| Ubuntu 24.04 LTS | linux-oem-6.14 | 6.14.0-1007.7 | USN-7650-1 |
| Ubuntu 24.04 LTS | linux-oracle | 6.8.0-1043.44 | USN-8028-5 |
| Ubuntu 24.04 LTS | linux-raspi | 6.8.0-1047.51 | USN-8028-1 |
| Ubuntu 24.04 LTS | linux-riscv-6.14 | 6.14.0-24.24.1~24.04.1 | — |
| Ubuntu 24.04 LTS | linux-xilinx | 6.8.0-1023.24 | USN-8052-2 |
Show 10 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 22.04 LTS | linux +49 | No fix yet | — |
| Ubuntu 22.04 LTS | linux-aws-6.8 +1 | 6.8.0-1046.49~22.04.1 | USN-8028-5 |
| Ubuntu 22.04 LTS | linux-azure-6.8 | 6.8.0-1051.57~22.04.1 | USN-8126-1 |
| Ubuntu 22.04 LTS | linux-azure-fde-6.8 | 6.8.0-1046.53~22.04.1 | — |
| Ubuntu 22.04 LTS | linux-gcp-6.8 | 6.8.0-1047.50~22.04.2 | USN-8031-1 |
| Ubuntu 22.04 LTS | linux-hwe-6.8 +1 | 6.8.0-100.100~22.04.1 | USN-8028-6 |
| Ubuntu 22.04 LTS | linux-ibm-6.8 | 6.8.0-1044.44~22.04.1 | USN-8028-8 |
| Ubuntu 22.04 LTS | linux-lowlatency-hwe-6.8 | 6.8.0-100.100.1~22.04.1 | USN-8028-6 |
| Ubuntu 22.04 LTS | linux-oracle-6.8 | 6.8.0-1043.44~22.04.1 | USN-8028-5 |
| Ubuntu 20.04 LTS | linux-gke +28 | No fix yet | — |
| Ubuntu 18.04 LTS | linux-gcp +14 | No fix yet | — |
| Ubuntu 16.04 LTS | linux-hwe-edge | No fix yet | — |
| Ubuntu Pro Realtime 24.04 LTS | linux-raspi-realtime | 6.8.0-2037.38 | USN-8028-3 |
| Ubuntu Pro Realtime 24.04 LTS | linux-realtime | 6.8.1-1041.42 | USN-8028-3 |
| Ubuntu Pro Realtime 24.04 LTS | linux-realtime-6.14 | 6.14.0-1010.10~24.04.1 | — |
| Ubuntu Pro Realtime 22.04 LTS | linux-realtime +1 | No fix yet | — |
| Ubuntu Pro Realtime 22.04 LTS | linux-realtime-6.8 | 6.8.1-1041.42~22.04.1 | USN-8028-2 |
| Ubuntu Pro FIPS-updates 24.04 LTS | linux-aws-fips | 6.8.0-1046.49+fips1 | USN-8028-4 |
| Ubuntu Pro FIPS-updates 24.04 LTS | linux-azure-fips | 6.8.0-1046.52+fips1 | USN-8074-2 |
| Ubuntu Pro FIPS-updates 24.04 LTS | linux-fips | 6.8.0-100.100+fips1 | USN-8028-4 |
| Ubuntu Pro FIPS-updates 24.04 LTS | linux-gcp-fips | 6.8.0-1047.50+fips1 | USN-8031-2 |
| Ubuntu Pro FIPS-updates 22.04 LTS | linux-fips +3 | No fix yet | — |
| Ubuntu Pro FIPS-preview 22.04 LTS | linux-fips +3 | No fix yet | — |
| Ubuntu Pro 20.04 LTS | linux-aws-5.15 +10 | No fix yet | — |
SUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| SLES 15 SP7 | kernel-64kb +6 | 6.4.0-150700.53.6.1 | SUSE-SU-2025:02307-1 |
| SLES 15 SP7 | kernel-azure +2 | 6.4.0-150700.20.6.1 | SUSE-SU-2025:02254-1 |
| SLES 15 SP7 | kernel-default-base | 6.4.0-150700.53.6.1.150700.17.6.1 | SUSE-SU-2025:02307-1 |
| SLES 15 SP6 | kernel-64kb +6 | 6.4.0-150600.23.53.1 | SUSE-SU-2025:02000-1 |
| SLES 15 SP6 | kernel-azure +2 | 6.4.0-150600.8.40.1 | SUSE-SU-2025:01965-1 |
| SLES 15 SP6 | kernel-coco +3 | 6.4.0-15061.28.coco15sp6.1 | SUSE-SU-2025:02923-1 |
| SLES 15 SP6 | kernel-default-base | 6.4.0-150600.23.53.1.150600.12.24.1 | SUSE-SU-2025:02000-1 |
Show 6 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| SLE Micro 6.1 | kernel-default-base | 6.4.0-30.1.21.8 | SUSE-SU-2025:20419-1 |
| SLE Micro 6.1 | kernel-rt +1 | 6.4.0-33.1 | SUSE-SU-2025:20421-1 |
| SLE Micro 6.1 | kernel-source +2 | 6.4.0-30.1 | SUSE-SU-2025:20419-1 |
| SLE Micro 6.0 | kernel-default-base | 6.4.0-30.1.21.8 | SUSE-SU-2025:20408-1 |
| SLE Micro 6.0 | kernel-rt +1 | 6.4.0-33.1 | SUSE-SU-2025:20413-1 |
| SLE Micro 6.0 | kernel-source +2 | 6.4.0-30.1 | SUSE-SU-2025:20408-1 |
| SLE Live Patching 15 SP7 | kernel-default | 6.4.0-150700.53.6.1 | SUSE-SU-2025:02307-1 |
| SLE Live Patching 15 SP7 | kernel-livepatch-SLE15-SP7-RT_Update_2 | 1-150700.1.5.1 | SUSE-SU-2025:02333-1 |
| SLE Live Patching 15 SP7 | kernel-livepatch-SLE15-SP7_Update_2 | 1-150700.15.3.1 | SUSE-SU-2025:02307-1 |
| SLE Live Patching 15 SP6 | kernel-default | 6.4.0-150600.23.53.1 | SUSE-SU-2025:02000-1 |
| SLE Live Patching 15 SP6 | kernel-livepatch-SLE15-SP6-RT_Update_11 | 1-150600.1.3.2 | SUSE-SU-2025:01964-1 |
| SLE Live Patching 15 SP6 | kernel-livepatch-SLE15-SP6_Update_12 | 1-150600.13.3.1 | SUSE-SU-2025:02000-1 |
| SUSE Real Time Module 15 SP7 | kernel-rt +2 | 6.4.0-150700.7.8.1 | SUSE-SU-2025:02333-1 |
| SUSE Real Time Module 15 SP6 | kernel-rt +3 | 6.4.0-150600.10.39.1 | SUSE-SU-2025:01964-1 |
openSUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| openSUSE Leap 15.6 | dtb-aarch64 +10 | 6.4.0-150600.23.53.1 | SUSE-SU-2025:02000-1 |
| openSUSE Leap 15.6 | kernel-azure +2 | 6.4.0-150600.8.40.1 | SUSE-SU-2025:01965-1 |
| openSUSE Leap 15.6 | kernel-default-base | 6.4.0-150600.23.53.1.150600.12.24.1 | SUSE-SU-2025:02000-1 |
| openSUSE Leap 15.6 | kernel-rt +3 | 6.4.0-150600.10.39.1 | SUSE-SU-2025:01964-1 |
Amazon Linux
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Amazon Linux 2023 | bpftool +14 | 6.12.29-33.102.amzn2023 | ALAS2023-2025-1210, ALAS2023-2025-994 |
| Amazon Linux 2023 | kernel-livepatch-6.1.153-175.280 | 1:1.0-0.amzn2023 | ALAS2023-2025-1210 |
| Amazon Linux 2023 | kernel-livepatch-6.12.29-33.102 | 1.0-0.amzn2023 | ALAS2023-2025-994 |
| Amazon Linux 2023 | perf +5 | 1:6.1.153-175.280.amzn2023 | ALAS2023-2025-1210 |
Azure Linux
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Azure Linux 3 | kernel | 6.6.112.1-1 | — |
| Azure Linux 2 (CBL-Mariner) | kernel | No fix yet | — |
Oracle Linux
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Oracle Linux 9 | kernel-uek +34 | 6.12.0-101.33.4.3.el10uek | ELSA-2025-20530, ELSA-2025-20480 |
Advisories 43
- WID-SEC-2025-1114 Linux Kernel: Mehrere Schwachstellen BSI CERT-Bund (WID) · Nov 12, 2026
- USN-8028-5 linux-aws, linux-aws-6.8, linux-gkeop, linux-nvidia, linux-nvidia-6.8, linux-oracle, linux-oracle-6.8 vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8126-1 linux-azure-6.8 vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8028-8 linux-ibm, linux-ibm-6.8 vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8028-6 linux-hwe-6.8, linux-lowlatency-hwe-6.8 vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8052-1 linux-lowlatency vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8052-2 linux-xilinx vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8074-2 linux-azure-fips vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8074-1 linux-azure vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8031-3 linux-gcp, linux-gke vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8028-1 linux, linux-raspi vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8028-4 linux-aws-fips, linux-fips vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8028-3 linux-realtime, linux-raspi-realtime vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8028-7 linux-nvidia-lowlatency vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8028-2 linux-realtime-6.8 vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8031-2 linux-gcp-fips vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8031-1 linux-gcp-6.8 vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-7665-2 linux-aws-6.14 vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-7650-1 linux-oem-6.14 vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- ICSA-26-134-10 Siemens SIMATIC CISA ICS & IT advisories · May 14, 2026
- NCSC-2026-0147 Kwetsbaarheden verholpen in Siemens-producten NCSC-NL (Netherlands) · May 13, 2026
- SSA-032379 SSA-032379: Multiple Vulnerabilities in SIMATIC CN 4100 Before V5.0 Siemens ProductCERT · May 12, 2026
- SUSE-SU-2025:20421-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Mar 23, 2026
- SUSE-SU-2025:20413-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Mar 23, 2026
- SUSE-SU-2025:20419-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Mar 23, 2026
- SUSE-SU-2025:20408-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Mar 23, 2026
- SUSE-SU-2025:02254-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Mar 23, 2026
- SUSE-SU-2025:02000-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Mar 23, 2026
- SUSE-SU-2025:02333-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Mar 23, 2026
- SUSE-SU-2025:02307-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Mar 23, 2026
- DSA-6009-1 linux - security update Debian Security (DSA / DLA) · Mar 9, 2026
- DLA-4328-1 linux-6.1 - security update Debian Security (DSA / DLA) · Mar 9, 2026
- SUSE-SU-2025:01964-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- USN-7665-1 linux-oracle vulnerabilities Ubuntu Security Notices (USN) · Feb 4, 2026
- USN-7649-2 linux-aws vulnerabilities Ubuntu Security Notices (USN) · Feb 4, 2026
- SUSE-SU-2025:02923-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- USN-7721-1 linux-azure vulnerabilities Ubuntu Security Notices (USN) · Feb 4, 2026
- USN-7649-1 linux, linux-gcp, linux-raspi, linux-realtime vulnerabilities Ubuntu Security Notices (USN) · Feb 4, 2026
- SUSE-SU-2025:01965-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- ALAS2023-2025-1210 Important: kernel security update (Amazon Linux 2023) Amazon Linux Security Center (ALAS) · Sep 29, 2025
- ALAS2023-2025-994 Important: kernel6.12 security update (Amazon Linux 2023) Amazon Linux Security Center (ALAS) · Aug 26, 2025
- ELSA-2025-20530 Important: Unbreakable Enterprise kernel security update (Oracle Linux 9) Oracle Linux Security Advisories (ELSA) · Aug 18, 2025
- ELSA-2025-20480 Important: Unbreakable Enterprise kernel security update (Oracle Linux 9) Oracle Linux Security Advisories (ELSA) · Jul 17, 2025
References
- https://git.kernel.org/stable/c/5111b148360f50cac9abbae8fca44cc0ac4bf9bf
- https://git.kernel.org/stable/c/977849e8acd2466ac3cb49e04a3ecc73837f6b90
- https://git.kernel.org/stable/c/b80db09b614cb7edec5bada1bc7c7b0eb3b453ea
- https://git.kernel.org/stable/c/396f4002710030ea1cfd4c789ebaf0a6969ab34f
- https://git.kernel.org/stable/c/e08e49d986f82c30f42ad0ed43ebbede1e1e3739