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-develUpgrade kernel-debuginfo-common-aarch64Upgrade python-perf-debuginfoUpgrade kernel-headersUpgrade kernel-livepatch-5.10.234-225.895Upgrade kernel-tools-develUpgrade perfUpgrade kernel-toolsUpgrade perf-debuginfoUpgrade kernel-debuginfoUpgrade bpftool-debuginfoUpgrade kernelUpgrade bpftoolUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-tools-debuginfoUpgrade python-perfUpgrade kernel-livepatch-5.15.178-120.178 | Mar 14, 2025 | Jan 21, 2025 |
| Amazon_linux_2023 | — | Upgrade kernel-headersUpgrade python3-perfUpgrade kernel-libbpfUpgrade python3-perf-debuginfoUpgrade kernel-tools-debuginfoUpgrade kernel-livepatch-6.1.127-135.201Upgrade kernel-develUpgrade kernel-debuginfoUpgrade kernelUpgrade kernel-libbpf-staticUpgrade kernel-tools-develUpgrade kernel-libbpf-develUpgrade perf-debuginfoUpgrade kernel-modules-extraUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-toolsUpgrade bpftoolUpgrade perfUpgrade kernel-modules-extra-commonUpgrade kernel-debuginfo-common-aarch64Upgrade bpftool-debuginfo | Mar 27, 2025 | Jan 21, 2025 |
| Debian | — | Upgrade linux-6.1Upgrade linux | Feb 10, 2025 | Jan 21, 2025 |
| Huawei Euleros 2_0_sp11 | — | Upgrade kernel-toolsUpgrade kernel-abi-stablelistsUpgrade kernelUpgrade python3-perfUpgrade kernel-tools-libsUpgrade bpftool | Jun 13, 2025 | Jan 21, 2025 |
| Huawei Euleros 2_0_sp12 | — | Upgrade kernelUpgrade kernel-toolsUpgrade bpftoolUpgrade kernel-tools-libsUpgrade python3-perfUpgrade kernel-abi-stablelists | Jul 21, 2025 | Jan 21, 2025 |
| Huawei Euleros 2_0_sp13 | — | Upgrade bpftoolUpgrade kernel-tools-libsUpgrade 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 cluster-md-kmp-defaultUpgrade dlm-kmp-defaultUpgrade kernel-syms-azureUpgrade kernel-docsUpgrade kernel-macrosUpgrade cluster-md-kmp-rtUpgrade dtb-rockchipUpgrade kernel-azure-develUpgrade ocfs2-kmp-azureUpgrade kernel-devel-rtUpgrade dlm-kmp-azureUpgrade dtb-apmUpgrade kernel-64kb-extraUpgrade dtb-armUpgrade cluster-md-kmp-64kbUpgrade kernel-default-base-rebuildUpgrade kernel-default-vdsoUpgrade kselftests-kmp-rtUpgrade dtb-amlogicUpgrade reiserfs-kmp-azureUpgrade dtb-mediatekUpgrade dtb-nvidiaUpgrade kselftests-kmp-defaultUpgrade kernel-default-baseUpgrade kernel-64kb-develUpgrade kernel-default-optionalUpgrade dtb-xilinxUpgrade kernel-rt-extraUpgrade kernel-obs-qaUpgrade dtb-qcomUpgrade dlm-kmp-rtUpgrade kernel-develUpgrade kernel-default-extraUpgrade kernel-defaultUpgrade dtb-sprdUpgrade kernel-rtUpgrade kernel-obs-buildUpgrade kernel-rt_debug-vdsoUpgrade kernel-rt-develUpgrade kernel-symsUpgrade kernel-kvmsmall-vdsoUpgrade kernel-rt-vdsoUpgrade kernel-rt-livepatch-develUpgrade kernel-default-livepatch-develUpgrade kernel-azureUpgrade dtb-socionextUpgrade gfs2-kmp-azureUpgrade ocfs2-kmp-rtUpgrade dlm-kmp-64kbUpgrade dtb-alteraUpgrade kernel-64kb-optionalUpgrade cluster-md-kmp-azureUpgrade kernel-source-azureUpgrade kernel-default-manUpgrade dtb-marvellUpgrade dtb-amdUpgrade kernel-azure-extraUpgrade dtb-hisiliconUpgrade kernel-debugUpgrade ocfs2-kmp-defaultUpgrade kernel-64kbUpgrade kernel-source-vanillaUpgrade kernel-azure-optionalUpgrade gfs2-kmp-defaultUpgrade dtb-freescaleUpgrade dtb-appleUpgrade kselftests-kmp-azureUpgrade kernel-zfcpdumpUpgrade kernel-kvmsmall-develUpgrade kernel-docs-htmlUpgrade kernel-sourceUpgrade kernel-kvmsmallUpgrade gfs2-kmp-rtUpgrade dtb-renesasUpgrade dtb-lgUpgrade dtb-caviumUpgrade kernel-syms-rtUpgrade kernel-rt-optionalUpgrade kernel-devel-azureUpgrade kernel-debug-vdsoUpgrade kernel-azure-vdsoUpgrade dtb-exynosUpgrade kernel-rt_debugUpgrade dtb-amazonUpgrade reiserfs-kmp-64kbUpgrade kernel-source-rtUpgrade gfs2-kmp-64kbUpgrade reiserfs-kmp-defaultUpgrade dtb-broadcomUpgrade reiserfs-kmp-rtUpgrade dtb-allwinnerUpgrade ocfs2-kmp-64kbUpgrade kernel-default-livepatchUpgrade kernel-default-develUpgrade kernel-rt_debug-develUpgrade kselftests-kmp-64kbUpgrade kernel-debug-devel | Feb 12, 2025 | Jan 21, 2025 |
| Ubuntu | — | Upgrade linux-image-5.15.0-1033-nvidia-tegraUpgrade linux-image-gcp-lts-20.04Upgrade linux-image-5.15.0-1077-intel-iotgUpgrade linux-image-raspi-realtimeUpgrade linux-image-virtualUpgrade linux-image-5.15.0-1033-nvidia-tegra-rtUpgrade linux-image-nvidia-64kUpgrade linux-image-5.15.0-136-genericUpgrade linux-image-6.8.0-1012-gkeopUpgrade linux-image-6.11.0-21-genericUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-6.8.0-1029-azureUpgrade linux-image-5.4.0-211-lowlatencyUpgrade linux-image-6.8.0-60-lowlatencyUpgrade linux-image-6.8.0-1030-gcp-64kUpgrade linux-image-6.8.0-60-lowlatency-64kUpgrade linux-image-5.4.0-1129-kvmUpgrade linux-image-6.11.0-1011-lowlatency-64kUpgrade linux-image-6.8.0-1026-oracleUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-5.15.0-1080-awsUpgrade linux-image-6.8.0-60-generic-64kUpgrade linux-image-nvidiaUpgrade linux-image-azure-lts-22.04Upgrade linux-image-5.15.0-1073-intel-iot-realtimeUpgrade linux-image-5.15.0-1083-azure-fipsUpgrade linux-image-oemUpgrade linux-image-5.15.0-136-generic-lpaeUpgrade linux-image-oem-24.04Upgrade linux-image-oem-22.04cUpgrade linux-image-oem-24.04aUpgrade linux-image-5.4.0-1147-azureUpgrade linux-image-5.15.0-135-genericUpgrade linux-image-gkeopUpgrade linux-image-oem-22.04dUpgrade linux-image-oracle-lts-24.04Upgrade linux-image-intelUpgrade linux-image-oracle-64kUpgrade linux-image-6.8.0-1030-gcpUpgrade linux-image-oem-osp1Upgrade linux-image-5.15.0-1074-raspiUpgrade linux-image-5.15.0-1074-nvidiaUpgrade linux-image-nvidia-tegraUpgrade linux-image-5.15.0-1086-azureUpgrade linux-image-5.4.0-1147-azure-fipsUpgrade linux-image-5.4.0-1142-aws-fipsUpgrade linux-image-raspi-hwe-18.04Upgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-oem-22.04Upgrade linux-image-5.15.0-1072-ibmUpgrade linux-image-5.15.0-1086-azure-fdeUpgrade linux-image-genericUpgrade linux-image-intel-iot-realtimeUpgrade linux-image-gkeop-5.15Upgrade linux-image-6.8.0-1028-nvidia-lowlatency-64kUpgrade linux-image-5.15.0-1079-gcpUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-generic-lpaeUpgrade linux-image-oracle-lts-22.04Upgrade linux-image-raspi2Upgrade linux-image-6.11.0-1010-raspiUpgrade linux-image-5.15.0-1084-azureUpgrade linux-image-5.15.0-135-lowlatency-64kUpgrade linux-image-5.15.0-1077-oracleUpgrade linux-image-6.8.0-1029-azure-fdeUpgrade linux-image-5.15.0-1081-gcpUpgrade linux-image-5.4.0-1090-ibmUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-oem-24.04bUpgrade linux-image-5.15.0-1077-gkeUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-intel-iotgUpgrade linux-image-nvidia-tegra-igx-rtUpgrade linux-image-oem-20.04dUpgrade linux-image-generic-64kUpgrade linux-image-6.8.0-1026-ibmUpgrade linux-image-oem-20.04bUpgrade linux-image-5.15.0-1075-intel-iotgUpgrade linux-image-lowlatency-hwe-18.04Upgrade linux-image-gkeUpgrade linux-image-gcpUpgrade linux-image-6.8.0-1028-oemUpgrade linux-image-6.8.1-1022-realtimeUpgrade linux-image-virtual-hwe-18.04Upgrade linux-image-lowlatency-64kUpgrade linux-image-nvidia-6.8Upgrade linux-image-6.8.0-1028-nvidiaUpgrade linux-image-5.4.0-1145-gcp-fipsUpgrade linux-image-oem-20.04cUpgrade linux-image-bluefieldUpgrade linux-image-oracleUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-5.15.0-1076-kvmUpgrade linux-image-snapdragon-hwe-18.04Upgrade linux-image-oem-20.04Upgrade linux-image-realtimeUpgrade linux-image-oracle-lts-20.04Upgrade linux-image-5.4.0-1088-ibmUpgrade linux-image-6.11.0-1012-azureUpgrade linux-image-6.8.0-1028-nvidia-64kUpgrade linux-image-6.11.0-1011-gcpUpgrade linux-image-5.4.0-211-genericUpgrade linux-image-oem-22.04bUpgrade linux-image-azureUpgrade linux-image-azure-cvmUpgrade linux-image-nvidia-tegra-igxUpgrade linux-image-6.11.0-1017-oemUpgrade linux-image-gcp-lts-22.04Upgrade linux-image-realtime-hwe-24.04Upgrade linux-image-lowlatencyUpgrade linux-image-nvidia-tegra-rtUpgrade linux-image-5.15.0-1062-gkeopUpgrade linux-image-aws-fipsUpgrade linux-image-5.15.0-1074-ibmUpgrade linux-image-generic-hwe-20.04Upgrade linux-image-lowlatency-64k-hwe-24.04Upgrade linux-image-5.15.0-135-lowlatencyUpgrade linux-image-5.15.0-1079-gcp-fipsUpgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-6.8.0-1028-raspiUpgrade linux-image-gke-5.15Upgrade linux-image-raspiUpgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-nvidia-64k-6.8Upgrade linux-image-5.4.0-1116-fipsUpgrade linux-image-5.15.0-135-generic-lpaeUpgrade linux-image-ibm-lts-20.04Upgrade linux-image-6.11.0-1011-awsUpgrade linux-image-5.15.0-1021-nvidia-tegra-igxUpgrade linux-image-5.4.0-1048-iotUpgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-aws-lts-24.04Upgrade linux-image-6.11.0-1007-realtimeUpgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-oem-22.04aUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-6.8.0-1028-nvidia-lowlatencyUpgrade linux-image-5.4.0-1129-raspiUpgrade linux-image-5.4.0-1101-bluefieldUpgrade linux-image-5.15.0-135-fipsUpgrade linux-image-6.8.0-1026-oracle-64kUpgrade linux-image-5.15.0-1080-realtimeUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-raspi-nolpaeUpgrade linux-image-6.8.0-2023-raspi-realtimeUpgrade linux-image-5.15.0-1074-nvidia-lowlatencyUpgrade linux-image-6.11.0-1013-oracle-64kUpgrade linux-image-6.11.0-1012-azure-fdeUpgrade linux-image-6.11.0-1011-lowlatencyUpgrade linux-image-virtual-hwe-20.04Upgrade linux-image-6.8.0-60-genericUpgrade linux-image-aws-lts-22.04Upgrade linux-image-awsUpgrade linux-image-5.15.0-1080-aws-fipsUpgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-lowlatency-hwe-24.04Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-generic-hwe-18.04Upgrade linux-image-5.4.0-1140-oracleUpgrade linux-image-aws-lts-20.04Upgrade linux-image-generic-hwe-22.04Upgrade linux-image-ibmUpgrade linux-image-5.4.0-211-generic-lpaeUpgrade linux-image-5.15.0-135-generic-64kUpgrade linux-image-5.15.0-1044-xilinx-zynqmpUpgrade linux-image-azure-lts-24.04Upgrade linux-image-kvmUpgrade linux-image-azure-nvidiaUpgrade linux-image-6.11.0-1013-oracleUpgrade linux-image-6.8.0-1029-awsUpgrade linux-image-6.8.0-1016-azure-nvidiaUpgrade linux-image-azure-fde-lts-24.04Upgrade linux-image-ibm-classicUpgrade linux-image-5.4.0-1145-gcpUpgrade linux-image-6.11.0-21-generic-64kUpgrade linux-image-gcp-fipsUpgrade linux-image-6.8.0-1025-gkeUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-gcp-lts-24.04Upgrade linux-image-6.11.0-1011-gcp-64kUpgrade linux-image-5.4.0-1060-xilinx-zynqmpUpgrade linux-image-5.15.0-136-generic-64kUpgrade linux-image-5.15.0-1021-nvidia-tegra-igx-rtUpgrade linux-image-5.4.0-1142-awsUpgrade linux-image-azure-fipsUpgrade linux-image-gcp-64kUpgrade linux-image-azure-fdeUpgrade linux-image-gkeop-6.8Upgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-fipsUpgrade linux-image-azure-lts-20.04 | 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