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