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 python-perfUpgrade kernel-headersUpgrade python-perf-debuginfoUpgrade kernel-debuginfo-common-x86_64Upgrade kernelUpgrade kernel-debuginfoUpgrade kernel-livepatch-5.15.178-120.178Upgrade bpftool-debuginfoUpgrade kernel-develUpgrade bpftoolUpgrade perfUpgrade kernel-livepatch-5.10.234-225.895Upgrade kernel-tools-debuginfoUpgrade perf-debuginfoUpgrade kernel-toolsUpgrade kernel-tools-develUpgrade kernel-debuginfo-common-aarch64 | Mar 14, 2025 | Jan 19, 2025 |
| Amazon_linux_2023 | — | Upgrade kernel-libbpfUpgrade kernel-headersUpgrade kernel-libbpf-develUpgrade kernel-debuginfo-common-x86_64Upgrade kernelUpgrade kernel-modules-extraUpgrade kernel-libbpf-staticUpgrade kernel-debuginfoUpgrade kernel-tools-develUpgrade kernel-tools-debuginfoUpgrade python3-perfUpgrade kernel-debuginfo-common-aarch64Upgrade kernel-livepatch-6.1.127-135.201Upgrade perfUpgrade bpftoolUpgrade python3-perf-debuginfoUpgrade perf-debuginfoUpgrade kernel-toolsUpgrade kernel-develUpgrade kernel-modules-extra-commonUpgrade bpftool-debuginfo | Mar 27, 2025 | Jan 19, 2025 |
| Debian | — | Upgrade linux-6.1Upgrade linux | Feb 10, 2025 | Jan 19, 2025 |
| Huawei Euleros 2_0_sp11 | — | Upgrade bpftoolUpgrade python3-perfUpgrade kernel-abi-stablelistsUpgrade kernelUpgrade kernel-tools-libsUpgrade kernel-tools | Jun 13, 2025 | Jan 19, 2025 |
| Huawei Euleros 2_0_sp12 | — | Upgrade kernel-tools-libsUpgrade kernel-toolsUpgrade bpftoolUpgrade kernelUpgrade kernel-abi-stablelistsUpgrade python3-perf | Jul 21, 2025 | Jan 19, 2025 |
| Huawei Euleros 2_0_sp13 | — | Upgrade kernel-abi-stablelistsUpgrade kernel-toolsUpgrade kernelUpgrade python3-perfUpgrade kernel-tools-libsUpgrade bpftool | Jul 1, 2025 | Jan 19, 2025 |
| Redhat_linux | — | No solution existsUpgrade kernelUpgrade kernel-rt | May 15, 2025 | Jan 19, 2025 |
| Ubuntu | — | Upgrade linux-image-6.8.0-1016-azure-nvidiaUpgrade linux-image-6.8.0-1028-raspiUpgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-6.8.0-60-genericUpgrade linux-image-oem-20.04dUpgrade linux-image-5.15.0-1074-nvidia-lowlatencyUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-lowlatencyUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-5.15.0-1077-intel-iotgUpgrade linux-image-gkeop-6.8Upgrade linux-image-6.11.0-1017-oemUpgrade linux-image-gcp-lts-24.04Upgrade linux-image-gcp-fipsUpgrade linux-image-5.4.0-1140-oracleUpgrade linux-image-lowlatency-hwe-24.04Upgrade linux-image-5.15.0-135-fipsUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-6.11.0-1012-azure-fdeUpgrade linux-image-nvidia-tegra-igxUpgrade linux-image-oem-22.04bUpgrade linux-image-raspi2Upgrade linux-image-5.15.0-136-generic-64kUpgrade linux-image-kvmUpgrade linux-image-oracle-64kUpgrade linux-image-gcpUpgrade linux-image-5.15.0-1086-azure-fdeUpgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-6.11.0-1013-oracle-64kUpgrade linux-image-5.15.0-1062-gkeopUpgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-oem-24.04aUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-oem-24.04bUpgrade linux-image-oem-22.04aUpgrade linux-image-awsUpgrade linux-image-ibm-lts-20.04Upgrade linux-image-5.15.0-136-genericUpgrade linux-image-nvidia-64kUpgrade linux-image-aws-lts-20.04Upgrade linux-image-raspi-realtimeUpgrade linux-image-azure-cvmUpgrade linux-image-6.8.0-1029-awsUpgrade linux-image-6.8.0-1028-nvidia-lowlatencyUpgrade linux-image-6.8.1-1022-realtimeUpgrade linux-image-5.4.0-1145-gcpUpgrade linux-image-5.15.0-1079-gcp-fipsUpgrade linux-image-5.15.0-135-lowlatencyUpgrade linux-image-gke-5.15Upgrade linux-image-5.15.0-135-generic-lpaeUpgrade linux-image-nvidia-tegra-igx-rtUpgrade linux-image-6.8.0-1012-gkeopUpgrade linux-image-raspi-nolpaeUpgrade linux-image-5.4.0-1048-iotUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-5.4.0-211-genericUpgrade linux-image-6.8.0-1028-oemUpgrade linux-image-realtime-hwe-24.04Upgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-azure-fdeUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-ibmUpgrade linux-image-5.4.0-1060-xilinx-zynqmpUpgrade linux-image-azureUpgrade linux-image-azure-fipsUpgrade linux-image-5.15.0-1021-nvidia-tegra-igxUpgrade linux-image-5.4.0-1101-bluefieldUpgrade linux-image-azure-fde-lts-24.04Upgrade linux-image-5.4.0-1129-raspiUpgrade linux-image-6.11.0-1007-realtimeUpgrade linux-image-5.15.0-1080-realtimeUpgrade linux-image-5.15.0-1033-nvidia-tegraUpgrade linux-image-azure-lts-24.04Upgrade linux-image-6.11.0-1012-azureUpgrade linux-image-6.8.0-1028-nvidia-64kUpgrade linux-image-5.15.0-1080-aws-fipsUpgrade linux-image-6.8.0-1026-oracle-64kUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-5.15.0-1021-nvidia-tegra-igx-rtUpgrade linux-image-5.15.0-135-generic-64kUpgrade linux-image-6.11.0-1011-gcp-64kUpgrade linux-image-raspiUpgrade linux-image-6.11.0-21-generic-64kUpgrade linux-image-6.11.0-1011-lowlatencyUpgrade linux-image-lowlatency-64k-hwe-24.04Upgrade linux-image-aws-lts-22.04Upgrade linux-image-6.11.0-1011-lowlatency-64kUpgrade linux-image-azure-nvidiaUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-aws-lts-24.04Upgrade linux-image-5.15.0-1074-ibmUpgrade linux-image-6.11.0-1013-oracleUpgrade linux-image-generic-hwe-18.04Upgrade linux-image-ibm-classicUpgrade linux-image-azure-lts-20.04Upgrade linux-image-6.8.0-1030-gcpUpgrade linux-image-nvidiaUpgrade linux-image-oemUpgrade linux-image-5.4.0-1116-fipsUpgrade linux-image-genericUpgrade linux-image-6.8.0-1025-gkeUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-5.15.0-1074-nvidiaUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-5.4.0-1088-ibmUpgrade linux-image-azure-lts-22.04Upgrade linux-image-virtual-hwe-22.04Upgrade linux-image-5.15.0-1077-gkeUpgrade linux-image-5.15.0-136-generic-lpaeUpgrade linux-image-6.8.0-2023-raspi-realtimeUpgrade linux-image-6.8.0-1029-azure-fdeUpgrade linux-image-5.15.0-1086-azureUpgrade linux-image-5.15.0-1074-raspiUpgrade linux-image-5.15.0-1033-nvidia-tegra-rtUpgrade linux-image-gcp-lts-22.04Upgrade linux-image-virtualUpgrade linux-image-realtimeUpgrade linux-image-generic-lpaeUpgrade linux-image-oem-22.04Upgrade linux-image-lowlatency-64kUpgrade linux-image-nvidia-tegraUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-5.4.0-1142-awsUpgrade linux-image-6.8.0-60-lowlatencyUpgrade linux-image-5.4.0-1147-azureUpgrade linux-image-5.4.0-211-lowlatencyUpgrade linux-image-snapdragon-hwe-18.04Upgrade linux-image-5.15.0-135-lowlatency-64kUpgrade linux-image-oracle-lts-24.04Upgrade linux-image-5.4.0-1090-ibmUpgrade linux-image-6.11.0-1011-gcpUpgrade linux-image-5.4.0-1147-azure-fipsUpgrade linux-image-5.15.0-1083-azure-fipsUpgrade linux-image-5.15.0-1076-kvmUpgrade linux-image-generic-hwe-20.04Upgrade linux-image-virtual-hwe-20.04Upgrade linux-image-6.8.0-1026-oracleUpgrade linux-image-6.8.0-1030-gcp-64kUpgrade linux-image-generic-64kUpgrade linux-image-gcp-lts-20.04Upgrade linux-image-bluefieldUpgrade linux-image-6.8.0-60-lowlatency-64kUpgrade linux-image-5.4.0-1142-aws-fipsUpgrade linux-image-5.15.0-1072-ibmUpgrade linux-image-5.15.0-1077-oracleUpgrade linux-image-5.15.0-1044-xilinx-zynqmpUpgrade linux-image-aws-fipsUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-raspi-hwe-18.04Upgrade linux-image-oracle-lts-20.04Upgrade linux-image-6.11.0-1010-raspiUpgrade linux-image-fipsUpgrade linux-image-oracleUpgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-oem-20.04bUpgrade linux-image-oracle-lts-22.04Upgrade linux-image-oem-20.04cUpgrade linux-image-gkeop-5.15Upgrade linux-image-oem-osp1Upgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-intel-iot-realtimeUpgrade linux-image-gcp-64kUpgrade linux-image-6.8.0-1028-nvidiaUpgrade linux-image-intelUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-lowlatency-hwe-18.04Upgrade linux-image-5.4.0-1129-kvmUpgrade linux-image-gkeopUpgrade linux-image-6.8.0-1028-nvidia-lowlatency-64kUpgrade linux-image-5.4.0-211-generic-lpaeUpgrade linux-image-nvidia-6.8Upgrade linux-image-5.15.0-1073-intel-iot-realtimeUpgrade linux-image-6.11.0-1011-awsUpgrade linux-image-5.15.0-1075-intel-iotgUpgrade linux-image-oem-24.04Upgrade linux-image-6.8.0-60-generic-64kUpgrade linux-image-5.4.0-1145-gcp-fipsUpgrade linux-image-5.15.0-1080-awsUpgrade linux-image-gkeUpgrade linux-image-5.15.0-1081-gcpUpgrade linux-image-virtual-hwe-18.04Upgrade linux-image-6.11.0-21-genericUpgrade linux-image-5.15.0-1079-gcpUpgrade linux-image-5.15.0-1084-azureUpgrade linux-image-5.15.0-135-genericUpgrade linux-image-oem-22.04cUpgrade linux-image-oem-22.04dUpgrade linux-image-intel-iotgUpgrade linux-image-nvidia-tegra-rtUpgrade linux-image-oem-20.04Upgrade linux-image-6.8.0-1029-azureUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-6.8.0-1026-ibm | 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