Skip to content
OpenAdvisories
High · 7.8 CVE-2025-21664 EUVD-2025-2613GHSA-vp4f-mc7f-v3pc

dm thin: make get_first_thin use rcu-safe list first function

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

Vendor: Linux Product: Linux 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.4 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-aws-hwe Package: linux-azure Package: linux-azure-4.15 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.4 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.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-4.15 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.4 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.4 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-5.4 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-iot 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-lts-xenial 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.4 Package: linux-oracle-5.8 Package: linux-oracle-6.5 Package: linux-oracle-6.8 Package: linux-raspi Package: linux-raspi-5.4 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: Debian Ecosystem: Ubuntu

Description

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

dm thin: make get_first_thin use rcu-safe list first function

The documentation in rculist.h explains the absence of list_empty_rcu()
and cautions programmers against relying on a list_empty() ->
list_first() sequence in RCU safe code. This is because each of these
functions performs its own READ_ONCE() of the list head. This can lead
to a situation where the list_empty() sees a valid list entry, but the
subsequent list_first() sees a different view of list head state after a
modification.

In the case of dm-thin, this author had a production box crash from a GP
fault in the process_deferred_bios path. This function saw a valid list
head in get_first_thin() but when it subsequently dereferenced that and
turned it into a thin_c, it got the inside of the struct pool, since the
list was now empty and referring to itself. The kernel on which this
occurred printed both a warning about a refcount_t being saturated, and
a UBSAN error for an out-of-bounds cpuid access in the queued spinlock,
prior to the fault itself. When the resulting kdump was examined, it
was possible to see another thread patiently waiting in thin_dtr's
synchronize_rcu.

The thin_dtr call managed to pull the thin_c out of the active thins
list (and have it be the last entry in the active_thins list) at just
the wrong moment which lead to this crash.

Fortunately, the fix here is straight forward. Switch get_first_thin()
function to use list_first_or_null_rcu() which performs just a single
READ_ONCE() and returns NULL if the list is already empty.

This was run against the devicemapper test suite's thin-provisioning
suites for delete and suspend and no regressions were observed.

Affected products

VendorProductAffectedFixed
Linux Linux 3.15 5.4.290

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 6.1.128-1 DSA-5860-1
Debian 11 linux 5.10.234-1 DLA-4075-1
Debian 11 linux-6.1 6.1.128-1~deb11u1 DLA-4076-1
ReleasePackageFixed inAdvisory
Ubuntu Nvidia-BlueField 22.04 LTS linux-bluefield 5.15.0-1062.64 —
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 +1 5.15.0-135.146 USN-7387-1
Ubuntu 22.04 LTS linux-aws 5.15.0-1080.87 USN-7387-1
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 5.15.0-1084.93 USN-7387-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-azure-fde 5.15.0-1084.93.1 —
Ubuntu 22.04 LTS linux-gcp 5.15.0-1079.88 USN-7387-1
Ubuntu 22.04 LTS linux-gcp-6.8 6.8.0-1030.32~22.04.1 USN-7515-2
Ubuntu 22.04 LTS linux-gke +1 5.15.0-1077.83 USN-7387-1
Ubuntu 22.04 LTS linux-gkeop 5.15.0-1062.70 USN-7387-1
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 5.15.0-1072.75 USN-7387-1
Ubuntu 22.04 LTS linux-ibm-6.8 6.8.0-1026.26~22.04.1 —
Ubuntu 22.04 LTS linux-intel-iot-realtime 5.15.0-1073.75 —
Ubuntu 22.04 LTS linux-intel-iotg 5.15.0-1075.81 USN-7387-1
Ubuntu 22.04 LTS linux-kvm 5.15.0-1076.81 USN-7388-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 5.15.0-1074.75 USN-7387-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-nvidia-tegra 5.15.0-1033.33 USN-7389-1
Ubuntu 22.04 LTS linux-nvidia-tegra-igx 5.15.0-1021.21 USN-7389-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-raspi 5.15.0-1074.77 USN-7387-1
Ubuntu 22.04 LTS linux-riscv +31 No fix yet —
Ubuntu 22.04 LTS linux-riscv-6.8 6.8.0-62.65~22.04.1 —
Ubuntu 22.04 LTS linux-xilinx-zynqmp 5.15.0-1044.48 USN-7390-1
Ubuntu 20.04 LTS linux 5.4.0-211.231 USN-7391-1
Ubuntu 20.04 LTS linux-aws 5.4.0-1142.152 USN-7392-3
Ubuntu 20.04 LTS linux-aws-5.15 5.15.0-1080.87~20.04.1 USN-7388-1
Ubuntu 20.04 LTS linux-azure 5.4.0-1147.154 USN-7392-1
Ubuntu 20.04 LTS linux-azure-5.15 5.15.0-1086.95~20.04.1 USN-7421-1
Ubuntu 20.04 LTS linux-azure-fde-5.15 5.15.0-1086.95~20.04.1.1 USN-7421-1
Ubuntu 20.04 LTS linux-bluefield 5.4.0-1101.108 USN-7392-1
Ubuntu 20.04 LTS linux-gcp 5.4.0-1145.154 USN-7392-1
Ubuntu 20.04 LTS linux-gcp-5.15 5.15.0-1081.90~20.04.1 USN-7459-2
Ubuntu 20.04 LTS linux-gke +28 No fix yet —
Ubuntu 20.04 LTS linux-hwe-5.15 5.15.0-136.147~20.04.1 USN-7407-1
Ubuntu 20.04 LTS linux-ibm 5.4.0-1088.93 USN-7392-1
Ubuntu 20.04 LTS linux-ibm-5.15 5.15.0-1074.77~20.04.1 USN-7458-1
Ubuntu 20.04 LTS linux-iot 5.4.0-1048.51 USN-7413-1
Ubuntu 20.04 LTS linux-kvm 5.4.0-1129.138 USN-7392-1
Ubuntu 20.04 LTS linux-lowlatency-hwe-5.15 5.15.0-135.146~20.04.1 USN-7387-1
Ubuntu 20.04 LTS linux-oracle 5.4.0-1140.150 USN-7392-1
Ubuntu 20.04 LTS linux-oracle-5.15 +1 5.15.0-1077.83~20.04.1 USN-7459-1, USN-7387-1
Ubuntu 20.04 LTS linux-raspi 5.4.0-1129.142 USN-7539-1
Ubuntu 20.04 LTS linux-riscv-5.15 5.15.0-1075.79~20.04.1 —
Ubuntu 20.04 LTS linux-xilinx-zynqmp 5.4.0-1060.64 USN-7392-1
Ubuntu 18.04 LTS linux-gcp +14 No fix yet —
Show 16 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-intel-iot-realtime 5.15.0-1073.75 USN-7387-3
Ubuntu Pro Realtime 22.04 LTS linux-realtime 5.15.0-1080.88 USN-7387-3
Ubuntu Pro Realtime 22.04 LTS linux-realtime-6.8 6.8.1-1022.23~22.04.1 —
Ubuntu Pro FIPS 20.04 LTS linux-fips +3 No fix yet —
Ubuntu Pro FIPS 18.04 LTS linux-fips +3 No fix yet —
Ubuntu Pro FIPS 16.04 LTS linux-fips No fix yet —
Ubuntu Pro FIPS-updates 24.04 LTS linux-fips 6.8.0-78.78+fips1 —
Ubuntu Pro FIPS-updates 22.04 LTS linux-aws-fips 5.15.0-1080.87+fips1 USN-7387-2
Ubuntu Pro FIPS-updates 22.04 LTS linux-azure-fips 5.15.0-1083.92+fips1 USN-7387-2
Ubuntu Pro FIPS-updates 22.04 LTS linux-fips 5.15.0-135.146+fips1 USN-7387-2
Ubuntu Pro FIPS-updates 22.04 LTS linux-gcp-fips 5.15.0-1079.88+fips1 USN-7387-2
Ubuntu Pro FIPS-updates 20.04 LTS linux-aws-fips 5.4.0-1142.153+fips1 USN-7392-4
Ubuntu Pro FIPS-updates 20.04 LTS linux-azure-fips 5.4.0-1147.154+fips1 USN-7392-2
Ubuntu Pro FIPS-updates 20.04 LTS linux-fips 5.4.0-1116.126 USN-7393-1
Ubuntu Pro FIPS-updates 20.04 LTS linux-gcp-fips 5.4.0-1145.154+fips1 USN-7392-2
Ubuntu Pro FIPS-updates 18.04 LTS linux-aws-fips 4.15.0-2136.142 USN-8921-1
Ubuntu Pro FIPS-updates 18.04 LTS linux-azure-fips 4.15.0-2116.122 USN-8921-1
Ubuntu Pro FIPS-updates 18.04 LTS linux-fips 4.15.0-1153.165 USN-8921-1
Ubuntu Pro FIPS-updates 18.04 LTS linux-gcp-fips 4.15.0-2099.105 USN-8921-1
Ubuntu Pro FIPS-updates 16.04 LTS linux-fips No fix yet —
Ubuntu Pro FIPS-preview 22.04 LTS linux-fips +3 No fix yet —
Ubuntu Pro 20.04 LTS linux-nvidia-tegra-5.15 5.15.0-1039.39~20.04.1 —
Ubuntu Pro 18.04 LTS linux 4.15.0-261.273 USN-8921-1
Ubuntu Pro 18.04 LTS linux-aws 4.15.0-1198.211 USN-8921-1
Ubuntu Pro 18.04 LTS linux-aws-5.4 5.4.0-1142.152~18.04.1 USN-7401-1
Ubuntu Pro 18.04 LTS linux-azure-4.15 4.15.0-1208.223 USN-8921-1
Ubuntu Pro 18.04 LTS linux-azure-5.4 5.4.0-1147.154~18.04.1 USN-7392-1
Ubuntu Pro 18.04 LTS linux-gcp-4.15 4.15.0-1191.208 USN-8921-1
Ubuntu Pro 18.04 LTS linux-gcp-5.4 5.4.0-1145.154~18.04.1 USN-7392-1
Ubuntu Pro 18.04 LTS linux-hwe-5.4 5.4.0-211.231~18.04.1 USN-7391-1
Ubuntu Pro 18.04 LTS linux-ibm-5.4 5.4.0-1090.95~18.04.1 USN-7463-1
Ubuntu Pro 18.04 LTS linux-kvm 4.15.0-1180.185 USN-8921-1
Ubuntu Pro 18.04 LTS linux-oracle 4.15.0-1160.171 USN-8922-1
Ubuntu Pro 18.04 LTS linux-oracle-5.4 5.4.0-1140.149~18.04.1 USN-7392-1
Ubuntu Pro 18.04 LTS linux-raspi-5.4 5.4.0-1129.142~18.04.1 USN-7540-1
Ubuntu Pro 16.04 LTS linux 4.4.0-291.325 USN-9033-1
Ubuntu Pro 16.04 LTS linux-aws 4.4.0-1200.215 USN-9033-1
Ubuntu Pro 16.04 LTS linux-aws-hwe 4.15.0-1198.211~16.04.1 USN-8921-1
Ubuntu Pro 16.04 LTS linux-azure 4.15.0-1208.223~16.04.1 USN-8922-2
Ubuntu Pro 16.04 LTS linux-gcp 4.15.0-1191.208~16.04.1 USN-8921-1
Ubuntu Pro 16.04 LTS linux-hwe 4.15.0-261.273~16.04.1 USN-8921-1
Ubuntu Pro 16.04 LTS linux-kvm 4.4.0-1163.174 USN-9033-1
Ubuntu Pro 16.04 LTS linux-oracle 4.15.0-1160.171~16.04.1 USN-8922-1
Ubuntu Pro 14.04 LTS linux-aws 4.4.0-1162.168 USN-9034-1
Ubuntu Pro 14.04 LTS linux-azure 4.15.0-1208.223~14.04.1 USN-8921-1
Ubuntu Pro 14.04 LTS linux-lts-xenial 4.4.0-291.325~14.04.1 USN-9033-1
ReleasePackageFixed inAdvisory
SLES 15 SP6 kernel-64kb +6 6.4.0-150600.23.38.1 SUSE-SU-2025:0499-1
SLES 15 SP6 kernel-azure +2 6.4.0-150600.8.26.1 SUSE-SU-2025:0428-1
SLES 15 SP6 kernel-coco +3 6.4.0-15061.15.coco15sp6.1 SUSE-SU-2025:0564-1
SLES 15 SP6 kernel-default-base 6.4.0-150600.23.38.1.150600.12.16.2 SUSE-SU-2025:0499-1
SLES 12 SP5 kernel-syms +2 4.12.14-122.247.1 SUSE-SU-2025:0565-1
Show 5 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
SLE Micro 6.1 kernel-default-base 6.4.0-24.1.21.4 SUSE-SU-2025:20248-1
SLE Micro 6.1 kernel-livepatch-MICRO-6-0-RT_Update_5 1-1.1 SUSE-SU-2025:20249-1
SLE Micro 6.1 kernel-livepatch-MICRO-6-0_Update_5 1-1.2 SUSE-SU-2025:20248-1
SLE Micro 6.1 kernel-rt +4 6.4.0-25.1 SUSE-SU-2025:20249-1, SUSE-SU-2025:20248-1
SLE Micro 6.0 kernel-default-base 6.4.0-24.1.21.4 SUSE-SU-2025:20165-1
SLE Micro 6.0 kernel-livepatch-MICRO-6-0-RT_Update_5 1-1.1 SUSE-SU-2025:20166-1
SLE Micro 6.0 kernel-livepatch-MICRO-6-0_Update_5 1-1.2 SUSE-SU-2025:20165-1
SLE Micro 6.0 kernel-rt +4 6.4.0-25.1 SUSE-SU-2025:20166-1, SUSE-SU-2025:20165-1
SLE Live Patching 15 SP6 kernel-default 6.4.0-150600.23.38.1 SUSE-SU-2025:0499-1
SLE Live Patching 15 SP6 kernel-livepatch-SLE15-SP6-RT_Update_8 1-150600.1.3.1 SUSE-SU-2025:0557-1
SLE Live Patching 15 SP6 kernel-livepatch-SLE15-SP6_Update_8 1-150600.13.3.2 SUSE-SU-2025:0499-1
SLE Live Patching 12 SP5 kernel-default 4.12.14-122.247.1 SUSE-SU-2025:0565-1
SLE Live Patching 12 SP5 kgraft-patch-SLE12-SP5_Update_65 1-8.3.1 SUSE-SU-2025:0565-1
SUSE Real Time Module 15 SP6 kernel-rt +3 6.4.0-150600.10.26.1 SUSE-SU-2025:0557-1
ReleasePackageFixed inAdvisory
openSUSE Leap 15.6 dtb-aarch64 +10 6.4.0-150600.23.38.1 SUSE-SU-2025:0499-1
openSUSE Leap 15.6 kernel-azure +2 6.4.0-150600.8.26.1 SUSE-SU-2025:0428-1
openSUSE Leap 15.6 kernel-default-base 6.4.0-150600.23.38.1.150600.12.16.2 SUSE-SU-2025:0499-1
openSUSE Leap 15.6 kernel-rt +3 6.4.0-150600.10.26.1 SUSE-SU-2025:0557-1

Amazon Linux

ReleasePackageFixed inAdvisory
Amazon Linux 2023 kernel-livepatch-6.1.127-135.201 1.0-0.amzn2023 ALAS2023-2025-823
Amazon Linux 2023 perf +14 6.1.127-135.201.amzn2023 ALAS2023-2025-823

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 50

References