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