In the Linux kernel, the following vulnerability has been resolved:
f2fs: fix to avoid out-of-bounds access in f2fs_truncate_inode_blocks()
syzbot reports an UBSAN issue as below:
------------[ cut here ]------------ UBSAN: array-index-out-of-bounds in fs/f2fs/node.h:381:10 index 18446744073709550692 is out of range for type '__le32[5]' (aka 'unsigned int[5]') CPU: 0 UID: 0 PID: 5318 Comm: syz.0.0 Not tainted 6.14.0-rc3-syzkaller-00060-g6537cfb395f3 #0 Call Trace: <TASK> __dump_stack lib/dump_stack.c:94 [inline] dump_stack_lvl+0x241/0x360 lib/dump_stack.c:120 ubsan_epilogue lib/ubsan.c:231 [inline] __ubsan_handle_out_of_bounds+0x121/0x150 lib/ubsan.c:429 get_nid fs/f2fs/node.h:381 [inline] f2fs_truncate_inode_blocks+0xa5e/0xf60 fs/f2fs/node.c:1181 f2fs_do_truncate_blocks+0x782/0x1030 fs/f2fs/file.c:808 f2fs_truncate_blocks+0x10d/0x300 fs/f2fs/file.c:836 f2fs_truncate+0x417/0x720 fs/f2fs/file.c:886 f2fs_file_write_iter+0x1bdb/0x2550 fs/f2fs/file.c:5093 aio_write+0x56b/0x7c0 fs/aio.c:1633 io_submit_one+0x8a7/0x18a0 fs/aio.c:2052 __do_sys_io_submit fs/aio.c:2111 [inline] __se_sys_io_submit+0x171/0x2e0 fs/aio.c:2081 do_syscall_x64 arch/x86/entry/common.c:52 [inline] do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f238798cde9
index 18446744073709550692 (decimal, unsigned long long) = 0xfffffffffffffc64 (hexadecimal, unsigned long long) = -924 (decimal, long long)
In f2fs_truncate_inode_blocks(), UBSAN detects that get_nid() tries to access .i_nid[-924], it means both offset[0] and level should zero.
The possible case should be in f2fs_do_truncate_blocks(), we try to truncate inode size to zero, however, dn.ofs_in_node is zero and dn.node_page is not an inode page, so it fails to truncate inode page, and then pass zeroed free_from to f2fs_truncate_inode_blocks(), result in this issue.
if (dn.ofs_in_node || IS_INODE(dn.node_page)) { f2fs_truncate_data_blocks_range(&dn, count); free_from += count; }
I guess the reason why dn.node_page is not an inode page could be: there are multiple nat entries share the same node block address, once the node block address was reused, f2fs_get_node_page() may load a non-inode block.
Let's add a sanity check for such condition to avoid out-of-bounds access issue.
CVSS Details
- CVSS 3.1 Base Score: 7.1
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Debian | — | Upgrade linux-6.1Upgrade linux | May 5, 2025 | May 1, 2025 |
| Oracle_linux | — | Upgrade kernel-uek | Jul 17, 2025 | May 1, 2025 |
| Ubuntu | — | Upgrade linux-image-6.8.0-1046-azureUpgrade linux-image-6.8.0-100-fipsUpgrade linux-image-aws-64kUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-6.8.0-1046-nvidiaUpgrade linux-image-gkeop-5.15Upgrade linux-image-virtualUpgrade linux-image-oracle-lts-22.04Upgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-5.15.0-1030-nvidia-tegra-igxUpgrade linux-image-gcp-6.8Upgrade linux-image-5.15.0-1082-nvidiaUpgrade linux-image-azure-6.8Upgrade linux-image-fips-5.15Upgrade linux-image-gcpUpgrade linux-image-intel-iotgUpgrade linux-image-5.15.0-1085-oracleUpgrade linux-image-6.8.0-1046-nvidia-lowlatency-64kUpgrade linux-image-oracle-lts-24.04Upgrade linux-image-6.8.0-1046-aws-fipsUpgrade linux-image-oem-20.04bUpgrade linux-image-oem-22.04Upgrade linux-image-6.8.0-1047-raspiUpgrade linux-image-lowlatency-64kUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-realtime-hwe-22.04Upgrade linux-image-kvm-5.15Upgrade linux-image-6.8.0-1043-gkeUpgrade linux-image-intel-iot-realtimeUpgrade linux-image-generic-lpae-5.15Upgrade linux-image-lowlatency-5.15Upgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-6.8.0-1043-oracleUpgrade linux-image-gcp-64k-6.8Upgrade linux-image-generic-64kUpgrade linux-image-gkeopUpgrade linux-image-intelUpgrade linux-image-gcp-fips-6.8Upgrade linux-image-6.14.0-1007-azure-fdeUpgrade linux-image-oracle-64kUpgrade linux-image-virtual-5.15Upgrade linux-image-oracleUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-nvidia-tegraUpgrade linux-image-nvidia-tegra-igx-5.15Upgrade linux-image-oem-20.04cUpgrade linux-image-xilinxUpgrade linux-image-intel-iotg-5.15Upgrade linux-image-5.15.0-144-genericUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-aws-64k-lts-22.04Upgrade linux-image-azure-fips-6.8Upgrade linux-image-nvidia-64kUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-gke-6.8Upgrade linux-image-5.15.0-1094-azureUpgrade linux-image-5.15.0-1085-gkeUpgrade linux-image-6.8.0-1047-gcpUpgrade linux-image-5.15.0-1041-nvidia-tegraUpgrade linux-image-5.15.0-1070-gkeopUpgrade linux-image-nvidia-lowlatency-64k-6.8Upgrade linux-image-5.15.0-1080-ibmUpgrade linux-image-5.15.0-144-fipsUpgrade linux-image-azure-lts-22.04Upgrade linux-image-5.15.0-144-generic-lpaeUpgrade linux-image-6.8.0-2037-raspi-realtimeUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-6.8.0-1051-azureUpgrade linux-image-5.15.0-1087-gcpUpgrade linux-image-nvidia-lowlatency-6.8Upgrade linux-image-6.14.0-1007-oracleUpgrade linux-image-6.8.0-1046-azure-fipsUpgrade linux-image-azure-fips-5.15Upgrade linux-image-genericUpgrade linux-image-5.15.0-144-lowlatency-64kUpgrade linux-image-oem-20.04dUpgrade linux-image-nvidia-tegra-5.15Upgrade linux-image-6.14.0-1004-realtimeUpgrade linux-image-xilinx-zynqmp-5.15Upgrade linux-image-raspi-realtimeUpgrade linux-image-6.8.0-100-lowlatency-64kUpgrade linux-image-6.8.0-1046-aws-64kUpgrade linux-image-lowlatency-64k-5.15Upgrade linux-image-oem-22.04cUpgrade linux-image-nvidiaUpgrade linux-image-nvidia-5.15Upgrade linux-image-fips-6.8Upgrade linux-image-nvidia-tegra-igx-rtUpgrade linux-image-6.8.0-1030-gkeopUpgrade linux-image-realtimeUpgrade linux-image-aws-5.15Upgrade linux-image-6.8.0-1046-nvidia-64kUpgrade linux-image-6.14.0-22-generic-64kUpgrade linux-image-gkeUpgrade linux-image-oem-20.04Upgrade linux-image-5.15.0-1082-nvidia-lowlatencyUpgrade linux-image-realtime-5.15Upgrade linux-image-5.15.0-1083-raspiUpgrade linux-image-5.15.0-1094-azure-fipsUpgrade linux-image-6.8.0-1047-gcp-64kUpgrade linux-image-azure-fipsUpgrade linux-image-5.15.0-1087-gcp-fipsUpgrade linux-image-5.15.0-1041-nvidia-tegra-rtUpgrade linux-image-raspi-5.15Upgrade linux-image-ibm-lts-24.04Upgrade linux-image-aws-lts-24.04Upgrade linux-image-fipsUpgrade linux-image-6.8.0-1047-gcp-fipsUpgrade linux-image-6.14.0-22-genericUpgrade linux-image-azure-fdeUpgrade linux-image-6.14.0-1007-awsUpgrade linux-image-6.8.0-1043-oracle-64kUpgrade linux-image-5.15.0-144-generic-64kUpgrade linux-image-lowlatencyUpgrade linux-image-gcp-fipsUpgrade linux-image-azure-lts-24.04Upgrade linux-image-aws-lts-22.04Upgrade linux-image-aws-64k-5.15Upgrade linux-image-aws-6.8Upgrade linux-image-raspi-nolpaeUpgrade linux-image-oem-22.04bUpgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-gcp-lts-24.04Upgrade linux-image-azure-5.15Upgrade linux-image-nvidia-tegra-igxUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-gcp-fips-5.15Upgrade linux-image-aws-fips-6.8Upgrade linux-image-awsUpgrade linux-image-virtual-6.8Upgrade linux-image-nvidia-64k-6.8Upgrade linux-image-nvidia-6.8Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-nvidia-tegra-rtUpgrade linux-image-oracle-5.15Upgrade linux-image-xilinx-6.8Upgrade linux-image-oracle-64k-6.8Upgrade linux-image-6.8.0-100-genericUpgrade linux-image-generic-5.15Upgrade linux-image-nvidia-tegra-igx-rt-5.15Upgrade linux-image-ibm-5.15Upgrade linux-image-5.15.0-1083-intel-iotgUpgrade linux-image-virtual-hwe-20.04Upgrade linux-image-6.14.0-1007-oracle-64kUpgrade linux-image-aws-fips-5.15Upgrade linux-image-5.15.0-144-lowlatencyUpgrade linux-image-6.8.0-100-generic-64kUpgrade linux-image-5.15.0-1088-awsUpgrade linux-image-5.15.0-1088-aws-fipsUpgrade linux-image-5.15.0-1084-kvmUpgrade linux-image-azureUpgrade linux-image-oem-22.04dUpgrade linux-image-gcp-5.15Upgrade linux-image-6.8.1-1041-realtimeUpgrade linux-image-6.14.0-1007-raspiUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-nvidia-tegra-rt-5.15Upgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-raspiUpgrade linux-image-raspi-6.8Upgrade linux-image-oem-22.04aUpgrade linux-image-6.8.0-100-lowlatencyUpgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-gke-5.15Upgrade linux-image-5.15.0-1052-xilinx-zynqmpUpgrade linux-image-kvmUpgrade linux-image-ibmUpgrade linux-image-gke-64kUpgrade linux-image-5.15.0-1088-aws-64kUpgrade linux-image-6.14.0-1008-gcpUpgrade linux-image-aws-64k-6.8Upgrade linux-image-6.8.0-1023-xilinxUpgrade linux-image-generic-64k-6.8Upgrade linux-image-gcp-lts-22.04Upgrade linux-image-realtime-6.8.1Upgrade linux-image-generic-64k-5.15Upgrade linux-image-gkeop-6.8Upgrade linux-image-6.8.0-1046-awsUpgrade linux-image-ibm-classicUpgrade linux-image-6.14.0-1007-azureUpgrade linux-image-6.14.0-1008-gcp-64kUpgrade linux-image-6.14.0-1007-aws-64kUpgrade linux-image-5.15.0-1030-nvidia-tegra-igx-rtUpgrade linux-image-ibm-6.8Upgrade linux-image-6.8.0-1044-ibmUpgrade linux-image-aws-fipsUpgrade linux-image-6.8.0-1046-nvidia-lowlatencyUpgrade linux-image-raspi-realtime-6.8Upgrade linux-image-nvidia-lowlatency-5.15Upgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-intel-iot-realtime-5.15Upgrade linux-image-oracle-6.8Upgrade linux-image-5.15.0-1088-realtimeUpgrade linux-image-6.8.0-1043-gke-64kUpgrade linux-image-5.15.0-1081-intel-iot-realtimeUpgrade linux-image-lowlatency-6.8Upgrade linux-image-azure-cvmUpgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-gcp-64kUpgrade linux-image-generic-lpaeUpgrade linux-image-generic-6.8Upgrade linux-image-generic-hwe-20.04Upgrade linux-image-gke-64k-6.8 | Jun 26, 2025 | May 1, 2025 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Sep 22, 2025 | May 1, 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