In the Linux kernel, the following vulnerability has been resolved:
dm array: fix releasing a faulty array block twice in dm_array_cursor_end
When dm_bm_read_lock() fails due to locking or checksum errors, it releases the faulty block implicitly while leaving an invalid output pointer behind. The caller of dm_bm_read_lock() should not operate on this invalid dm_block pointer, or it will lead to undefined result. For example, the dm_array_cursor incorrectly caches the invalid pointer on reading a faulty array block, causing a double release in dm_array_cursor_end(), then hitting the BUG_ON in dm-bufio cache_put().
Reproduce steps:
1. initialize a cache device
dmsetup create cmeta --table "0 8192 linear /dev/sdc 0" dmsetup create cdata --table "0 65536 linear /dev/sdc 8192" dmsetup create corig --table "0 524288 linear /dev/sdc $262144" dd if=/dev/zero of=/dev/mapper/cmeta bs=4k count=1 dmsetup create cache --table "0 524288 cache /dev/mapper/cmeta \ /dev/mapper/cdata /dev/mapper/corig 128 2 metadata2 writethrough smq 0"
2. wipe the second array block offline
dmsteup remove cache cmeta cdata corig mapping_root=$(dd if=/dev/sdc bs=1c count=8 skip=192 \ 2>/dev/null | hexdump -e '1/8 "%u\n"') ablock=$(dd if=/dev/sdc bs=1c count=8 skip=$((4096*mapping_root+2056)) \ 2>/dev/null | hexdump -e '1/8 "%u\n"') dd if=/dev/zero of=/dev/sdc bs=4k count=1 seek=$ablock
3. try reopen the cache device
dmsetup create cmeta --table "0 8192 linear /dev/sdc 0" dmsetup create cdata --table "0 65536 linear /dev/sdc 8192" dmsetup create corig --table "0 524288 linear /dev/sdc $262144" dmsetup create cache --table "0 524288 cache /dev/mapper/cmeta \ /dev/mapper/cdata /dev/mapper/corig 128 2 metadata2 writethrough smq 0"
Kernel logs:
(snip) device-mapper: array: array_block_check failed: blocknr 0 != wanted 10 device-mapper: block manager: array validator check failed for block 10 device-mapper: array: get_ablock failed device-mapper: cache metadata: dm_array_cursor_next for mapping failed ------------[ cut here ]------------ kernel BUG at drivers/md/dm-bufio.c:638!
Fix by setting the cached block pointer to NULL on errors.
In addition to the reproducer described above, this fix can be verified using the "array_cursor/damaged" test in dm-unit: dm-unit run /pdata/array_cursor/damaged --kernel-dir <KERNEL_DIR>
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-tools-develUpgrade kernel-debuginfo-common-aarch64Upgrade perf-debuginfoUpgrade kernel-livepatch-5.10.234-225.895Upgrade perfUpgrade kernel-develUpgrade kernel-toolsUpgrade bpftoolUpgrade kernel-tools-debuginfoUpgrade kernel-debuginfo-common-x86_64Upgrade kernelUpgrade python-perfUpgrade kernel-headersUpgrade bpftool-debuginfoUpgrade kernel-debuginfoUpgrade python-perf-debuginfoUpgrade kernel-livepatch-5.15.178-120.178 | Mar 14, 2025 | Jan 19, 2025 |
| Amazon_linux_2023 | — | Upgrade kernel-libbpf-develUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-headersUpgrade kernel-debuginfoUpgrade kernelUpgrade kernel-libbpfUpgrade kernel-tools-develUpgrade kernel-modules-extraUpgrade python3-perfUpgrade kernel-libbpf-staticUpgrade kernel-tools-debuginfoUpgrade bpftool-debuginfoUpgrade kernel-debuginfo-common-aarch64Upgrade perfUpgrade perf-debuginfoUpgrade kernel-toolsUpgrade kernel-develUpgrade kernel-livepatch-6.1.127-135.201Upgrade python3-perf-debuginfoUpgrade kernel-modules-extra-commonUpgrade bpftool | Mar 27, 2025 | Jan 19, 2025 |
| Debian | — | Upgrade linuxUpgrade linux-6.1 | Feb 10, 2025 | Jan 19, 2025 |
| Huawei Euleros 2_0_sp11 | — | Upgrade kernel-tools-libsUpgrade kernel-toolsUpgrade kernel-abi-stablelistsUpgrade kernelUpgrade python3-perfUpgrade bpftool | Jun 13, 2025 | Jan 19, 2025 |
| Huawei Euleros 2_0_sp12 | — | Upgrade python3-perfUpgrade kernel-abi-stablelistsUpgrade bpftoolUpgrade kernel-toolsUpgrade kernel-tools-libsUpgrade kernel | Jul 21, 2025 | Jan 19, 2025 |
| Huawei Euleros 2_0_sp13 | — | Upgrade kernelUpgrade kernel-tools-libsUpgrade python3-perfUpgrade kernel-toolsUpgrade bpftoolUpgrade kernel-abi-stablelists | Jul 1, 2025 | Jan 19, 2025 |
| Redhat_linux | — | Upgrade kernelNo solution existsUpgrade kernel-rt | May 15, 2025 | Jan 19, 2025 |
| Ubuntu | — | Upgrade linux-image-azureUpgrade linux-image-ibm-classicUpgrade linux-image-5.4.0-1101-bluefieldUpgrade linux-image-gkeop-6.8Upgrade linux-image-6.11.0-1011-lowlatencyUpgrade linux-image-6.8.0-1029-awsUpgrade linux-image-azure-fipsUpgrade linux-image-oem-20.04dUpgrade linux-image-5.15.0-1080-aws-fipsUpgrade linux-image-6.11.0-1013-oracleUpgrade linux-image-azure-lts-20.04Upgrade linux-image-lowlatency-64k-hwe-24.04Upgrade linux-image-5.15.0-1021-nvidia-tegra-igxUpgrade linux-image-6.8.1-1022-realtimeUpgrade linux-image-5.15.0-1033-nvidia-tegraUpgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-oem-22.04bUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-6.8.0-1028-oemUpgrade linux-image-nvidia-tegra-igxUpgrade linux-image-5.15.0-135-fipsUpgrade linux-image-6.11.0-1012-azure-fdeUpgrade linux-image-6.11.0-1013-oracle-64kUpgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-azure-cvmUpgrade linux-image-5.15.0-1077-intel-iotgUpgrade linux-image-6.8.0-1028-raspiUpgrade linux-image-6.8.0-1030-gcpUpgrade linux-image-raspi-realtimeUpgrade linux-image-oem-24.04bUpgrade linux-image-raspiUpgrade linux-image-ibm-lts-20.04Upgrade linux-image-6.11.0-21-generic-64kUpgrade linux-image-6.8.0-1026-oracle-64kUpgrade linux-image-gcpUpgrade linux-image-awsUpgrade linux-image-azure-fde-lts-24.04Upgrade linux-image-5.15.0-135-generic-64kUpgrade linux-image-oracle-64kUpgrade linux-image-5.15.0-1021-nvidia-tegra-igx-rtUpgrade linux-image-kvmUpgrade linux-image-6.11.0-1011-gcp-64kUpgrade linux-image-realtime-hwe-24.04Upgrade linux-image-5.15.0-1079-gcp-fipsUpgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-6.11.0-1007-realtimeUpgrade linux-image-gcp-fipsUpgrade linux-image-6.11.0-1017-oemUpgrade linux-image-6.8.0-60-genericUpgrade linux-image-lowlatencyUpgrade linux-image-6.8.0-1016-azure-nvidiaUpgrade linux-image-gcp-lts-24.04Upgrade linux-image-5.15.0-1074-nvidia-lowlatencyUpgrade linux-image-aws-lts-22.04Upgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-5.15.0-1086-azure-fdeUpgrade linux-image-gke-5.15Upgrade linux-image-nvidia-tegra-igx-rtUpgrade linux-image-5.4.0-1048-iotUpgrade linux-image-oem-24.04aUpgrade linux-image-5.15.0-135-generic-lpaeUpgrade linux-image-5.4.0-1060-xilinx-zynqmpUpgrade linux-image-5.15.0-135-lowlatencyUpgrade linux-image-aws-lts-20.04Upgrade linux-image-6.8.0-1028-nvidia-lowlatencyUpgrade linux-image-raspi-nolpaeUpgrade linux-image-ibmUpgrade linux-image-5.15.0-136-genericUpgrade linux-image-5.4.0-1145-gcpUpgrade linux-image-5.4.0-211-genericUpgrade linux-image-5.15.0-1062-gkeopUpgrade linux-image-azure-fdeUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-6.8.0-1012-gkeopUpgrade linux-image-nvidia-64kUpgrade linux-image-lowlatency-hwe-24.04Upgrade linux-image-raspi2Upgrade linux-image-5.4.0-1129-raspiUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-5.15.0-1074-ibmUpgrade linux-image-6.11.0-1011-lowlatency-64kUpgrade linux-image-5.4.0-1140-oracleUpgrade linux-image-6.11.0-1012-azureUpgrade linux-image-aws-lts-24.04Upgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-generic-hwe-18.04Upgrade linux-image-5.15.0-1080-realtimeUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-azure-nvidiaUpgrade linux-image-6.8.0-1028-nvidia-64kUpgrade linux-image-azure-lts-24.04Upgrade linux-image-oem-22.04aUpgrade linux-image-5.15.0-136-generic-64kUpgrade linux-image-lowlatency-hwe-18.04Upgrade linux-image-5.4.0-211-generic-lpaeUpgrade linux-image-6.8.0-1025-gkeUpgrade linux-image-5.4.0-1088-ibmUpgrade linux-image-5.15.0-136-generic-lpaeUpgrade linux-image-5.4.0-211-lowlatencyUpgrade linux-image-generic-hwe-20.04Upgrade linux-image-6.11.0-1011-gcpUpgrade linux-image-oem-22.04Upgrade linux-image-5.4.0-1147-azure-fipsUpgrade linux-image-6.11.0-21-genericUpgrade linux-image-oem-osp1Upgrade linux-image-virtual-hwe-22.04Upgrade linux-image-nvidiaUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-5.4.0-1142-awsUpgrade linux-image-6.8.0-60-generic-64kUpgrade linux-image-6.8.0-1028-nvidiaUpgrade linux-image-nvidia-6.8Upgrade linux-image-5.15.0-1075-intel-iotgUpgrade linux-image-5.4.0-1090-ibmUpgrade linux-image-oem-22.04cUpgrade linux-image-5.15.0-1083-azure-fipsUpgrade linux-image-5.15.0-1076-kvmUpgrade linux-image-oracle-lts-24.04Upgrade linux-image-5.15.0-135-genericUpgrade linux-image-oem-24.04Upgrade linux-image-intelUpgrade linux-image-5.4.0-1129-kvmUpgrade linux-image-azure-lts-22.04Upgrade linux-image-6.8.0-60-lowlatencyUpgrade linux-image-gkeopUpgrade linux-image-6.8.0-1028-nvidia-lowlatency-64kUpgrade linux-image-5.15.0-1081-gcpUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-nvidia-tegraUpgrade linux-image-oem-20.04cUpgrade linux-image-oracleUpgrade linux-image-intel-iot-realtimeUpgrade linux-image-oracle-lts-22.04Upgrade linux-image-genericUpgrade linux-image-5.4.0-1116-fipsUpgrade linux-image-gcp-64kUpgrade linux-image-gcp-lts-22.04Upgrade linux-image-5.4.0-1145-gcp-fipsUpgrade linux-image-oemUpgrade linux-image-lowlatency-64kUpgrade linux-image-5.15.0-1033-nvidia-tegra-rtUpgrade linux-image-virtual-hwe-18.04Upgrade linux-image-generic-lpaeUpgrade linux-image-6.8.0-2023-raspi-realtimeUpgrade linux-image-5.15.0-1074-raspiUpgrade linux-image-5.15.0-1086-azureUpgrade linux-image-virtualUpgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-gkeop-5.15Upgrade linux-image-realtimeUpgrade linux-image-5.15.0-1077-gkeUpgrade linux-image-6.8.0-1029-azure-fdeUpgrade linux-image-6.11.0-1010-raspiUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-5.15.0-1079-gcpUpgrade linux-image-6.8.0-60-lowlatency-64kUpgrade linux-image-5.15.0-1084-azureUpgrade linux-image-5.15.0-1080-awsUpgrade linux-image-5.15.0-1077-oracleUpgrade linux-image-intel-iotgUpgrade linux-image-bluefieldUpgrade linux-image-generic-64kUpgrade linux-image-5.15.0-1072-ibmUpgrade linux-image-5.4.0-1142-aws-fipsUpgrade linux-image-6.8.0-1029-azureUpgrade linux-image-5.15.0-1044-xilinx-zynqmpUpgrade linux-image-6.8.0-1026-oracleUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-fipsUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-6.8.0-1026-ibmUpgrade linux-image-oem-20.04Upgrade linux-image-oem-20.04bUpgrade linux-image-raspi-hwe-18.04Upgrade linux-image-5.15.0-1074-nvidiaUpgrade linux-image-6.8.0-1030-gcp-64kUpgrade linux-image-aws-fipsUpgrade linux-image-oracle-lts-20.04Upgrade linux-image-nvidia-tegra-rtUpgrade linux-image-gcp-lts-20.04Upgrade linux-image-gkeUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-6.11.0-1011-awsUpgrade linux-image-5.15.0-1073-intel-iot-realtimeUpgrade linux-image-oem-22.04dUpgrade linux-image-5.4.0-1147-azureUpgrade linux-image-5.15.0-135-lowlatency-64kUpgrade linux-image-virtual-hwe-20.04Upgrade linux-image-snapdragon-hwe-18.04 | Mar 28, 2025 | Jan 19, 2025 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Jul 2, 2025 | Jan 19, 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