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