Skip to content
OpenAdvisories
Medium · 5.5 CVE-2025-21658 EUVD-2025-2607GHSA-phh3-rpf3-3q9p

btrfs: avoid NULL pointer dereference if no valid extent tree

Published Jan 21, 2025 · Updated Oct 30, 2026 · Assigned by Linux

Vendor: Linux Product: Linux Package: kernel Package: linux Package: linux Package: linux-allwinner-5.19 Package: linux-aws Package: linux-aws-5.0 Package: linux-aws-5.11 Package: linux-aws-5.13 Package: linux-aws-5.15 Package: linux-aws-5.19 Package: linux-aws-5.3 Package: linux-aws-5.8 Package: linux-aws-6.2 Package: linux-aws-6.5 Package: linux-aws-6.8 Package: linux-aws-fips Package: linux-azure Package: linux-azure-5.11 Package: linux-azure-5.13 Package: linux-azure-5.15 Package: linux-azure-5.19 Package: linux-azure-5.3 Package: linux-azure-5.8 Package: linux-azure-6.11 Package: linux-azure-6.2 Package: linux-azure-6.5 Package: linux-azure-6.8 Package: linux-azure-edge Package: linux-azure-fde Package: linux-azure-fde-5.15 Package: linux-azure-fde-5.19 Package: linux-azure-fde-6.2 Package: linux-azure-fips Package: linux-azure-nvidia Package: linux-bluefield Package: linux-fips Package: linux-gcp Package: linux-gcp-5.11 Package: linux-gcp-5.13 Package: linux-gcp-5.15 Package: linux-gcp-5.19 Package: linux-gcp-5.3 Package: linux-gcp-5.8 Package: linux-gcp-6.11 Package: linux-gcp-6.2 Package: linux-gcp-6.5 Package: linux-gcp-6.8 Package: linux-gcp-fips Package: linux-gke Package: linux-gke-4.15 Package: linux-gke-5.15 Package: linux-gke-5.4 Package: linux-gkeop Package: linux-gkeop-5.15 Package: linux-gkeop-5.4 Package: linux-hwe Package: linux-hwe-5.11 Package: linux-hwe-5.13 Package: linux-hwe-5.15 Package: linux-hwe-5.19 Package: linux-hwe-5.8 Package: linux-hwe-6.11 Package: linux-hwe-6.2 Package: linux-hwe-6.5 Package: linux-hwe-6.8 Package: linux-hwe-edge Package: linux-ibm Package: linux-ibm-5.15 Package: linux-ibm-6.8 Package: linux-intel-5.13 Package: linux-intel-iot-realtime Package: linux-intel-iotg Package: linux-intel-iotg-5.15 Package: linux-kvm Package: linux-lowlatency Package: linux-lowlatency-hwe-5.15 Package: linux-lowlatency-hwe-5.19 Package: linux-lowlatency-hwe-6.2 Package: linux-lowlatency-hwe-6.5 Package: linux-lowlatency-hwe-6.8 Package: linux-nvidia Package: linux-nvidia-6.11 Package: linux-nvidia-6.2 Package: linux-nvidia-6.5 Package: linux-nvidia-6.8 Package: linux-nvidia-lowlatency Package: linux-nvidia-tegra Package: linux-nvidia-tegra-5.15 Package: linux-nvidia-tegra-igx Package: linux-oem Package: linux-oem-5.10 Package: linux-oem-5.13 Package: linux-oem-5.14 Package: linux-oem-5.17 Package: linux-oem-5.6 Package: linux-oem-6.0 Package: linux-oem-6.1 Package: linux-oem-6.11 Package: linux-oem-6.5 Package: linux-oem-6.8 Package: linux-oracle Package: linux-oracle-5.0 Package: linux-oracle-5.11 Package: linux-oracle-5.13 Package: linux-oracle-5.15 Package: linux-oracle-5.3 Package: linux-oracle-5.8 Package: linux-oracle-6.5 Package: linux-oracle-6.8 Package: linux-raspi Package: linux-raspi-realtime Package: linux-raspi2 Package: linux-realtime Package: linux-realtime-6.8 Package: linux-riscv Package: linux-riscv-5.11 Package: linux-riscv-5.15 Package: linux-riscv-5.19 Package: linux-riscv-5.8 Package: linux-riscv-6.5 Package: linux-riscv-6.8 Package: linux-starfive-5.19 Package: linux-starfive-6.2 Package: linux-starfive-6.5 Package: linux-vmware Package: linux-xilinx Package: linux-xilinx-zynqmp Platform: Linux Ecosystem: Azure Linux Ecosystem: Debian Ecosystem: Ubuntu

Description

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

btrfs: avoid NULL pointer dereference if no valid extent tree

[BUG]
Syzbot reported a crash with the following call trace:

BTRFS info (device loop0): scrub: started on devid 1
BUG: kernel NULL pointer dereference, address: 0000000000000208
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
PGD 106e70067 P4D 106e70067 PUD 107143067 PMD 0
Oops: Oops: 0000 [#1] PREEMPT SMP NOPTI
CPU: 1 UID: 0 PID: 689 Comm: repro Kdump: loaded Tainted: G O 6.13.0-rc4-custom+ #206
Tainted: [O]=OOT_MODULE
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS unknown 02/02/2022
RIP: 0010:find_first_extent_item+0x26/0x1f0 [btrfs]
Call Trace:
<TASK>
scrub_find_fill_first_stripe+0x13d/0x3b0 [btrfs]
scrub_simple_mirror+0x175/0x260 [btrfs]
scrub_stripe+0x5d4/0x6c0 [btrfs]
scrub_chunk+0xbb/0x170 [btrfs]
scrub_enumerate_chunks+0x2f4/0x5f0 [btrfs]
btrfs_scrub_dev+0x240/0x600 [btrfs]
btrfs_ioctl+0x1dc8/0x2fa0 [btrfs]
? do_sys_openat2+0xa5/0xf0
__x64_sys_ioctl+0x97/0xc0
do_syscall_64+0x4f/0x120
entry_SYSCALL_64_after_hwframe+0x76/0x7e
</TASK>

[CAUSE]
The reproducer is using a corrupted image where extent tree root is
corrupted, thus forcing to use "rescue=all,ro" mount option to mount the
image.

Then it triggered a scrub, but since scrub relies on extent tree to find
where the data/metadata extents are, scrub_find_fill_first_stripe()
relies on an non-empty extent root.

But unfortunately scrub_find_fill_first_stripe() doesn't really expect
an NULL pointer for extent root, it use extent_root to grab fs_info and
triggered a NULL pointer dereference.

[FIX]
Add an extra check for a valid extent root at the beginning of
scrub_find_fill_first_stripe().

The new error path is introduced by 42437a6386ff ("btrfs: introduce
mount option rescue=ignorebadroots"), but that's pretty old, and later
commit b979547513ff ("btrfs: scrub: introduce helper to find and fill
sector info for a scrub_stripe") changed how we do scrub.

So for kernels older than 6.6, the fix will need manual backport.

Affected products

VendorProductAffectedFixed
Linux Linux 5.11 6.1.191

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.

ReleasePackageFixed inAdvisory
Debian 14 linux 6.12.10-1 —
Debian 13 linux 6.12.10-1 —
Debian 12 linux No fix yet —
ReleasePackageFixed inAdvisory
Ubuntu Nvidia-BlueField 22.04 LTS linux-bluefield No fix yet —
Ubuntu 24.04 LTS linux 6.8.0-60.63 USN-7513-1
Ubuntu 24.04 LTS linux-aws 6.8.0-1029.31 USN-7513-1
Ubuntu 24.04 LTS linux-azure 6.8.0-1029.34 USN-7513-3
Ubuntu 24.04 LTS linux-azure-6.11 6.11.0-1012.12~24.04.1 —
Ubuntu 24.04 LTS linux-azure-nvidia 6.8.0-1016.17 USN-7522-1
Ubuntu 24.04 LTS linux-gcp 6.8.0-1030.32 USN-7515-2
Ubuntu 24.04 LTS linux-gcp-6.11 6.11.0-1011.11~24.04.1 —
Ubuntu 24.04 LTS linux-gke 6.8.0-1025.29 USN-7515-1
Ubuntu 24.04 LTS linux-gkeop 6.8.0-1012.14 USN-7515-2
Ubuntu 24.04 LTS linux-hwe-6.11 6.11.0-21.21~24.04.1 USN-7379-1
Ubuntu 24.04 LTS linux-ibm 6.8.0-1026.26 USN-7513-1
Ubuntu 24.04 LTS linux-lowlatency-hwe-6.11 6.11.0-1011.12~24.04.1 USN-7381-1
Ubuntu 24.04 LTS linux-nvidia 6.8.0-1028.31 USN-7514-1
Ubuntu 24.04 LTS linux-nvidia-6.11 6.11.0-1007.7 —
Ubuntu 24.04 LTS linux-nvidia-lowlatency 6.8.0-1028.31.1 USN-7514-1
Ubuntu 24.04 LTS linux-nvidia-tegra 6.8.0-1008.8 —
Ubuntu 24.04 LTS linux-oem-6.11 6.11.0-1017.17 USN-7382-1
Ubuntu 24.04 LTS linux-oem-6.8 6.8.0-1028.28 USN-7513-3
Ubuntu 24.04 LTS linux-oracle 6.8.0-1026.27 USN-7513-1
Ubuntu 24.04 LTS linux-raspi 6.8.0-1028.32 USN-7524-1
Ubuntu 24.04 LTS linux-realtime +1 No fix yet —
Ubuntu 24.04 LTS linux-riscv +1 6.8.0-60.63.1 USN-7513-1
Ubuntu 24.04 LTS linux-xilinx 6.8.0-1017.18 —
Ubuntu 22.04 LTS linux +49 No fix yet —
Ubuntu 22.04 LTS linux-aws-6.8 6.8.0-1029.31~22.04.1 USN-7513-1
Ubuntu 22.04 LTS linux-azure-6.8 6.8.0-1029.34~22.04.1 USN-7513-3
Ubuntu 22.04 LTS linux-gcp-6.8 6.8.0-1030.32~22.04.1 USN-7515-2
Ubuntu 22.04 LTS linux-hwe-6.8 6.8.0-60.63~22.04.1 USN-7513-4
Ubuntu 22.04 LTS linux-ibm-6.8 6.8.0-1026.26~22.04.1 —
Ubuntu 22.04 LTS linux-lowlatency-hwe-6.8 6.8.0-60.63.1~22.04.1 USN-7513-1
Ubuntu 22.04 LTS linux-nvidia-6.8 6.8.0-1028.31~22.04.1 USN-7514-1
Ubuntu 22.04 LTS linux-oracle-6.8 6.8.0-1026.27~22.04.1 USN-7513-5
Ubuntu 22.04 LTS linux-riscv-6.8 6.8.0-62.65~22.04.1 —
Ubuntu 20.04 LTS linux-gke +28 No fix yet —
Ubuntu 18.04 LTS linux-gcp +14 No fix yet —
Show 7 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu 16.04 LTS linux-hwe-edge No fix yet —
Ubuntu Pro Realtime 24.04 LTS linux-raspi-realtime 6.8.0-2023.24 USN-7523-1
Ubuntu Pro Realtime 24.04 LTS linux-realtime 6.8.1-1022.23 USN-7513-2
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-1022.23~22.04.1 —
Ubuntu Pro FIPS-updates 24.04 LTS linux-fips 6.8.0-78.78+fips1 —
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 —
ReleasePackageFixed inAdvisory
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 +3 6.4.0-150600.23.60.4 SUSE-SU-2025:02538-1
SLES 15 SP6 kernel-azure +2 6.4.0-150600.8.43.1 SUSE-SU-2025:02249-1
SLES 15 SP6 kernel-coco +3 6.4.0-15061.28.coco15sp6.1 SUSE-SU-2025:02923-1
SLES 15 SP6 kernel-default 6.4.0-150600.23.60.5 SUSE-SU-2025:02538-1
SLES 15 SP6 kernel-default-base 6.4.0-150600.23.60.5.150600.12.26.4 SUSE-SU-2025:02538-1
SLES 15 SP6 kernel-docs +1 6.4.0-150600.23.60.3 SUSE-SU-2025:02538-1
SLES 15 SP5 kernel-64kb +6 5.14.21-150500.55.136.1 SUSE-SU-2026:0474-1
SLES 15 SP5 kernel-default-base 5.14.21-150500.55.136.1.150500.6.67.1 SUSE-SU-2026:0474-1
SLES 15 SP4 kernel-64kb +6 5.14.21-150400.24.194.1 SUSE-SU-2026:0617-1
SLES 15 SP4 kernel-default-base 5.14.21-150400.24.194.1.150400.24.98.3 SUSE-SU-2026:0617-1
Show 15 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
SLES for SAP 15 SP5 kernel-default-base 5.14.21-150500.55.136.1.150500.6.67.1 SUSE-SU-2026:0474-1
SLES for SAP 15 SP5 kernel-docs +4 5.14.21-150500.55.136.1 SUSE-SU-2026:0474-1
SLES for SAP 15 SP4 kernel-default-base 5.14.21-150400.24.194.1.150400.24.98.3 SUSE-SU-2026:0617-1
SLES for SAP 15 SP4 kernel-docs +4 5.14.21-150400.24.194.1 SUSE-SU-2026:0617-1
SLE Micro 6.1 kernel-default-base 6.4.0-31.1.21.9 SUSE-SU-2025:20475-1
SLE Micro 6.1 kernel-rt +1 6.4.0-34.1 SUSE-SU-2025:20483-1
SLE Micro 6.1 kernel-source +2 6.4.0-31.1 SUSE-SU-2025:20475-1
SLE Micro 6.0 kernel-default-base 6.4.0-31.1.21.9 SUSE-SU-2025:20493-1
SLE Micro 6.0 kernel-rt +1 6.4.0-34.1 SUSE-SU-2025:20498-1
SLE Micro 6.0 kernel-source +2 6.4.0-31.1 SUSE-SU-2025:20493-1
SLE Micro 5.5 kernel-default-base 5.14.21-150500.55.136.1.150500.6.67.1 SUSE-SU-2026:0474-1
SLE Micro 5.5 kernel-rt +1 5.14.21-150500.13.121.1 SUSE-SU-2026:0496-1
SLE Micro 5.5 kernel-source +1 5.14.21-150500.55.136.1 SUSE-SU-2026:0474-1
SLE Micro 5.4 kernel-default 5.14.21-150400.24.194.1 SUSE-SU-2026:0617-1
SLE Micro 5.4 kernel-default-base 5.14.21-150400.24.194.1.150400.24.98.3 SUSE-SU-2026:0617-1
SLE Micro 5.4 kernel-rt +1 5.14.21-150400.15.145.1 SUSE-SU-2026:1131-1
SLE Micro 5.3 kernel-default 5.14.21-150400.24.194.1 SUSE-SU-2026:0617-1
SLE Micro 5.3 kernel-default-base 5.14.21-150400.24.194.1.150400.24.98.3 SUSE-SU-2026:0617-1
SLE Micro 5.3 kernel-rt +1 5.14.21-150400.15.145.1 SUSE-SU-2026:1131-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.60.5 SUSE-SU-2025:02538-1
SLE Live Patching 15 SP6 kernel-livepatch-SLE15-SP6-RT_Update_13 1-150600.1.5.1 SUSE-SU-2025:02335-1
SLE Live Patching 15 SP6 kernel-livepatch-SLE15-SP6_Update_13 1-150600.13.6.4 SUSE-SU-2025:02538-1
SLE Live Patching 15 SP5 kernel-default 5.14.21-150500.55.136.1 SUSE-SU-2026:0474-1
SLE Live Patching 15 SP5 kernel-livepatch-SLE15-SP5_Update_35 1-150500.11.3.1 SUSE-SU-2026:0474-1
SLE Live Patching 15 SP4 kernel-default 5.14.21-150400.24.194.1 SUSE-SU-2026:0617-1
SLE Live Patching 15 SP4 kernel-livepatch-SLE15-SP4_Update_48 1-150400.9.7.1 SUSE-SU-2026:0617-1
SLE HPC 15 SP5 kernel-64kb +5 5.14.21-150500.55.136.1 SUSE-SU-2026:0474-1
SLE HPC 15 SP5 kernel-default-base 5.14.21-150500.55.136.1.150500.6.67.1 SUSE-SU-2026:0474-1
SLE HPC 15 SP4 kernel-64kb +5 5.14.21-150400.24.194.1 SUSE-SU-2026:0617-1
SLE HPC 15 SP4 kernel-default-base 5.14.21-150400.24.194.1.150400.24.98.3 SUSE-SU-2026:0617-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.44.1 SUSE-SU-2025:02335-1
ReleasePackageFixed inAdvisory
openSUSE Leap 15.6 dtb-aarch64 +2 6.4.0-150600.23.60.3 SUSE-SU-2025:02538-1
openSUSE Leap 15.6 kernel-64kb +5 6.4.0-150600.23.60.4 SUSE-SU-2025:02538-1
openSUSE Leap 15.6 kernel-azure +2 6.4.0-150600.8.43.1 SUSE-SU-2025:02249-1
openSUSE Leap 15.6 kernel-default 6.4.0-150600.23.60.5 SUSE-SU-2025:02538-1
openSUSE Leap 15.6 kernel-default-base 6.4.0-150600.23.60.5.150600.12.26.4 SUSE-SU-2025:02538-1
openSUSE Leap 15.6 kernel-obs-qa 6.4.0-150600.23.60.2 SUSE-SU-2025:02538-1
openSUSE Leap 15.6 kernel-rt +3 6.4.0-150600.10.44.1 SUSE-SU-2025:02335-1

Azure Linux

ReleasePackageFixed inAdvisory
Azure Linux 3 kernel 6.6.76.1-1 —
Azure Linux 2 (CBL-Mariner) kernel No fix yet —

Oracle Linux

ReleasePackageFixed inAdvisory
Oracle Linux 9 kernel-uek +34 6.12.0-101.33.4.3.el10uek ELSA-2025-20530, ELSA-2025-20480

Advisories 32

References