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.
CVSS Details
- CVSS 3.1 Base Score: 7.8
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Amazon Linux Ami 2 | — | Upgrade kernel-toolsUpgrade python-perf-debuginfoUpgrade kernel-debuginfo-common-aarch64Upgrade kernel-headersUpgrade perfUpgrade perf-debuginfoUpgrade kernel-develUpgrade kernel-tools-develUpgrade kernel-livepatch-5.10.234-225.895Upgrade bpftoolUpgrade kernelUpgrade kernel-livepatch-5.15.178-120.178Upgrade bpftool-debuginfoUpgrade kernel-debuginfoUpgrade kernel-debuginfo-common-x86_64Upgrade python-perfUpgrade kernel-tools-debuginfo | Mar 14, 2025 | Jan 21, 2025 |
| Amazon_linux_2023 | — | Upgrade kernel-modules-extraUpgrade python3-perf-debuginfoUpgrade kernel-develUpgrade python3-perfUpgrade kernel-libbpfUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-libbpf-develUpgrade kernel-tools-develUpgrade perf-debuginfoUpgrade kernel-libbpf-staticUpgrade kernel-livepatch-6.1.127-135.201Upgrade kernelUpgrade kernel-debuginfoUpgrade kernel-tools-debuginfoUpgrade kernel-headersUpgrade kernel-debuginfo-common-aarch64Upgrade kernel-toolsUpgrade kernel-modules-extra-commonUpgrade bpftoolUpgrade bpftool-debuginfoUpgrade perf | Mar 27, 2025 | Jan 21, 2025 |
| Debian | — | Upgrade linuxUpgrade linux-6.1 | Feb 10, 2025 | Jan 21, 2025 |
| Huawei Euleros 2_0_sp11 | — | Upgrade kernel-toolsUpgrade kernel-tools-libsUpgrade python3-perfUpgrade kernel-abi-stablelistsUpgrade kernelUpgrade bpftool | Jun 13, 2025 | Jan 21, 2025 |
| Huawei Euleros 2_0_sp12 | — | Upgrade kernel-abi-stablelistsUpgrade python3-perfUpgrade bpftoolUpgrade kernel-toolsUpgrade kernelUpgrade kernel-tools-libs | Jul 21, 2025 | Jan 21, 2025 |
| Huawei Euleros 2_0_sp13 | — | Upgrade kernel-tools-libsUpgrade bpftoolUpgrade kernelUpgrade kernel-abi-stablelistsUpgrade python3-perfUpgrade kernel-tools | Jul 1, 2025 | Jan 21, 2025 |
| Redhat_linux | — | No solution exists | Jul 9, 2025 | Jan 21, 2025 |
| Suse | — | Upgrade dlm-kmp-defaultUpgrade dtb-armUpgrade kernel-default-base-rebuildUpgrade kernel-docsUpgrade dtb-nvidiaUpgrade dtb-qcomUpgrade dtb-mediatekUpgrade kernel-rt-extraUpgrade kernel-obs-qaUpgrade dlm-kmp-rtUpgrade kernel-64kb-develUpgrade kernel-default-optionalUpgrade kernel-develUpgrade reiserfs-kmp-azureUpgrade kernel-rt-develUpgrade kernel-default-baseUpgrade kernel-rt_debug-vdsoUpgrade dtb-xilinxUpgrade kernel-macrosUpgrade kernel-devel-rtUpgrade dtb-rockchipUpgrade kernel-azure-develUpgrade kernel-64kb-extraUpgrade dlm-kmp-azureUpgrade dtb-apmUpgrade kernel-symsUpgrade ocfs2-kmp-azureUpgrade cluster-md-kmp-64kbUpgrade kernel-obs-buildUpgrade kernel-syms-azureUpgrade kernel-defaultUpgrade kernel-default-extraUpgrade kselftests-kmp-rtUpgrade dtb-amlogicUpgrade kselftests-kmp-defaultUpgrade kernel-rtUpgrade cluster-md-kmp-rtUpgrade kernel-default-vdsoUpgrade dtb-sprdUpgrade cluster-md-kmp-defaultUpgrade kernel-debugUpgrade kselftests-kmp-64kbUpgrade dtb-exynosUpgrade dtb-amdUpgrade dtb-hisiliconUpgrade kselftests-kmp-azureUpgrade kernel-zfcpdumpUpgrade kernel-kvmsmall-develUpgrade kernel-debug-develUpgrade kernel-azure-optionalUpgrade gfs2-kmp-defaultUpgrade dtb-freescaleUpgrade dtb-appleUpgrade dtb-allwinnerUpgrade kernel-source-rtUpgrade kernel-rt_debug-develUpgrade kernel-rt_debugUpgrade kernel-rt-vdsoUpgrade kernel-rt-livepatch-develUpgrade kernel-default-develUpgrade gfs2-kmp-64kbUpgrade dtb-amazonUpgrade reiserfs-kmp-64kbUpgrade kernel-debug-vdsoUpgrade kernel-azure-vdsoUpgrade kernel-default-livepatchUpgrade kernel-syms-rtUpgrade kernel-source-vanillaUpgrade kernel-kvmsmallUpgrade dtb-caviumUpgrade ocfs2-kmp-defaultUpgrade kernel-sourceUpgrade kernel-docs-htmlUpgrade kernel-64kbUpgrade dtb-renesasUpgrade dtb-lgUpgrade ocfs2-kmp-64kbUpgrade gfs2-kmp-rtUpgrade kernel-rt-optionalUpgrade kernel-devel-azureUpgrade reiserfs-kmp-rtUpgrade reiserfs-kmp-defaultUpgrade dtb-broadcomUpgrade kernel-default-livepatch-develUpgrade kernel-azureUpgrade kernel-64kb-optionalUpgrade gfs2-kmp-azureUpgrade dtb-socionextUpgrade kernel-default-manUpgrade dtb-alteraUpgrade dlm-kmp-64kbUpgrade cluster-md-kmp-azureUpgrade ocfs2-kmp-rtUpgrade kernel-source-azureUpgrade kernel-kvmsmall-vdsoUpgrade kernel-azure-extraUpgrade dtb-marvell | Feb 12, 2025 | Jan 21, 2025 |
| Ubuntu | — | Upgrade linux-image-5.4.0-1147-azureUpgrade linux-image-5.15.0-136-generic-lpaeUpgrade linux-image-5.15.0-136-genericUpgrade linux-image-5.4.0-1142-aws-fipsUpgrade linux-image-raspi-realtimeUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-6.8.0-1012-gkeopUpgrade linux-image-oem-24.04Upgrade linux-image-5.15.0-1083-azure-fipsUpgrade linux-image-5.15.0-1081-gcpUpgrade linux-image-5.15.0-1079-gcpUpgrade linux-image-oracle-lts-22.04Upgrade linux-image-generic-lpaeUpgrade linux-image-5.4.0-1090-ibmUpgrade linux-image-5.15.0-135-lowlatency-64kUpgrade linux-image-gkeop-5.15Upgrade linux-image-raspi2Upgrade linux-image-6.8.0-1029-azure-fdeUpgrade linux-image-5.15.0-1084-azureUpgrade linux-image-virtualUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-5.15.0-1077-oracleUpgrade linux-image-5.15.0-1077-intel-iotgUpgrade linux-image-oem-20.04bUpgrade linux-image-5.4.0-1147-azure-fipsUpgrade linux-image-6.11.0-1010-raspiUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-virtual-hwe-18.04Upgrade linux-image-bluefieldUpgrade linux-image-6.8.0-1030-gcp-64kUpgrade linux-image-lowlatency-64kUpgrade linux-image-nvidia-64kUpgrade linux-image-6.8.0-60-lowlatencyUpgrade linux-image-6.8.0-60-lowlatency-64kUpgrade linux-image-6.8.0-1030-gcpUpgrade linux-image-gkeopUpgrade linux-image-6.8.0-1026-oracleUpgrade linux-image-6.8.0-1029-azureUpgrade linux-image-oem-22.04dUpgrade linux-image-5.15.0-1033-nvidia-tegra-rtUpgrade linux-image-5.15.0-1074-raspiUpgrade linux-image-6.11.0-1011-lowlatency-64kUpgrade linux-image-5.15.0-1086-azureUpgrade linux-image-oracle-64kUpgrade linux-image-6.8.0-1028-nvidiaUpgrade linux-image-intelUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-oracle-lts-24.04Upgrade linux-image-nvidiaUpgrade linux-image-5.4.0-1145-gcp-fipsUpgrade linux-image-5.15.0-135-genericUpgrade linux-image-gcp-lts-20.04Upgrade linux-image-5.15.0-1077-gkeUpgrade linux-image-nvidia-tegra-igx-rtUpgrade linux-image-generic-64kUpgrade linux-image-intel-iot-realtimeUpgrade linux-image-azure-lts-22.04Upgrade linux-image-lowlatency-hwe-18.04Upgrade linux-image-5.15.0-1033-nvidia-tegraUpgrade linux-image-5.15.0-1075-intel-iotgUpgrade linux-image-5.4.0-1129-kvmUpgrade linux-image-gkeUpgrade linux-image-oracle-lts-20.04Upgrade linux-image-realtimeUpgrade linux-image-nvidia-6.8Upgrade linux-image-xilinx-zynqmpUpgrade linux-image-6.8.0-1028-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-1028-oemUpgrade linux-image-oem-20.04dUpgrade linux-image-5.4.0-211-lowlatencyUpgrade linux-image-gcpUpgrade linux-image-oem-20.04Upgrade linux-image-5.15.0-1086-azure-fdeUpgrade linux-image-oem-24.04bUpgrade linux-image-6.8.0-60-generic-64kUpgrade linux-image-6.11.0-21-genericUpgrade linux-image-genericUpgrade linux-image-6.8.1-1022-realtimeUpgrade linux-image-nvidia-tegraUpgrade linux-image-5.15.0-1074-nvidiaUpgrade linux-image-oem-24.04aUpgrade linux-image-oem-22.04cUpgrade linux-image-oemUpgrade linux-image-5.15.0-1080-awsUpgrade linux-image-5.15.0-1076-kvmUpgrade linux-image-snapdragon-hwe-18.04Upgrade linux-image-oem-22.04Upgrade linux-image-oracleUpgrade linux-image-5.4.0-1088-ibmUpgrade linux-image-intel-iotgUpgrade linux-image-oem-20.04cUpgrade linux-image-5.15.0-1073-intel-iot-realtimeUpgrade linux-image-5.15.0-1072-ibmUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-oem-osp1Upgrade linux-image-6.8.0-1026-ibmUpgrade linux-image-raspi-hwe-18.04Upgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-kvmUpgrade linux-image-5.4.0-211-generic-lpaeUpgrade linux-image-5.15.0-135-generic-64kUpgrade linux-image-5.4.0-1142-awsUpgrade linux-image-azureUpgrade linux-image-gcp-fipsUpgrade linux-image-5.15.0-1021-nvidia-tegra-igxUpgrade linux-image-oem-22.04aUpgrade linux-image-azure-lts-24.04Upgrade linux-image-azure-nvidiaUpgrade linux-image-6.8.0-1029-awsUpgrade linux-image-5.15.0-1044-xilinx-zynqmpUpgrade linux-image-6.11.0-1013-oracleUpgrade linux-image-ibmUpgrade linux-image-5.4.0-1140-oracleUpgrade linux-image-fipsUpgrade linux-image-5.15.0-1074-ibmUpgrade linux-image-realtime-hwe-24.04Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-lowlatency-hwe-24.04Upgrade linux-image-lowlatency-64k-hwe-24.04Upgrade linux-image-generic-hwe-18.04Upgrade linux-image-nvidia-tegra-rtUpgrade linux-image-6.8.0-1026-oracle-64kUpgrade linux-image-5.15.0-1080-realtimeUpgrade linux-image-lowlatencyUpgrade linux-image-generic-hwe-20.04Upgrade linux-image-6.8.0-2023-raspi-realtimeUpgrade linux-image-6.11.0-1017-oemUpgrade linux-image-5.15.0-135-fipsUpgrade linux-image-6.11.0-1007-realtimeUpgrade linux-image-5.15.0-1062-gkeopUpgrade linux-image-5.4.0-1116-fipsUpgrade linux-image-5.4.0-1101-bluefieldUpgrade linux-image-5.4.0-1048-iotUpgrade linux-image-5.15.0-135-generic-lpaeUpgrade linux-image-5.4.0-1129-raspiUpgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-6.8.0-1016-azure-nvidiaUpgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-ibm-lts-20.04Upgrade linux-image-aws-lts-24.04Upgrade linux-image-aws-lts-20.04Upgrade linux-image-6.8.0-1028-nvidia-lowlatencyUpgrade linux-image-6.11.0-1011-awsUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-generic-hwe-24.04Upgrade linux-image-6.11.0-21-generic-64kUpgrade linux-image-raspi-nolpaeUpgrade linux-image-5.15.0-1074-nvidia-lowlatencyUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-aws-fipsUpgrade linux-image-5.15.0-1021-nvidia-tegra-igx-rtUpgrade linux-image-6.11.0-1011-gcp-64kUpgrade linux-image-nvidia-tegra-igxUpgrade linux-image-gcp-lts-24.04Upgrade linux-image-gcp-64kUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-5.15.0-1079-gcp-fipsUpgrade linux-image-6.8.0-1028-raspiUpgrade linux-image-azure-fipsUpgrade linux-image-raspiUpgrade linux-image-ibm-classicUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-gke-5.15Upgrade linux-image-azure-fdeUpgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-5.15.0-136-generic-64kUpgrade linux-image-6.8.0-1028-nvidia-64kUpgrade linux-image-6.11.0-1011-gcpUpgrade linux-image-5.15.0-135-lowlatencyUpgrade linux-image-5.4.0-1060-xilinx-zynqmpUpgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-awsUpgrade linux-image-virtual-hwe-20.04Upgrade linux-image-azure-lts-20.04Upgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-gcp-lts-22.04Upgrade linux-image-gkeop-6.8Upgrade linux-image-6.11.0-1011-lowlatencyUpgrade linux-image-azure-cvmUpgrade linux-image-azure-fde-lts-24.04Upgrade linux-image-aws-lts-22.04Upgrade linux-image-6.8.0-60-genericUpgrade linux-image-5.15.0-1080-aws-fipsUpgrade linux-image-6.11.0-1013-oracle-64kUpgrade linux-image-6.11.0-1012-azure-fdeUpgrade linux-image-6.11.0-1012-azureUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-6.8.0-1025-gkeUpgrade linux-image-5.4.0-1145-gcpUpgrade linux-image-5.4.0-211-genericUpgrade linux-image-oem-22.04bUpgrade linux-image-nvidia-lowlatency-64k | Mar 28, 2025 | Jan 21, 2025 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Jul 2, 2025 | Jan 21, 2025 |
Prioritise with Active Threat Intelligence
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub