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 linuxUpgrade linux-6.1 | May 5, 2025 | May 1, 2025 |
| Oracle_linux | — | Upgrade kernel-uek | Jul 17, 2025 | May 1, 2025 |
| Ubuntu | — | Upgrade linux-image-oem-22.04bUpgrade linux-image-oracle-6.8Upgrade linux-image-raspi-nolpaeUpgrade linux-image-azure-lts-24.04Upgrade linux-image-gcp-fipsUpgrade linux-image-azure-cvmUpgrade linux-image-gcp-lts-24.04Upgrade linux-image-5.15.0-1088-realtimeUpgrade linux-image-aws-lts-22.04Upgrade linux-image-aws-64k-5.15Upgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-6.14.0-1007-raspiUpgrade linux-image-aws-64k-6.8Upgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-oem-22.04aUpgrade linux-image-azure-5.15Upgrade linux-image-6.8.0-100-lowlatencyUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-6.14.0-1008-gcp-64kUpgrade linux-image-nvidia-lowlatency-5.15Upgrade linux-image-6.8.0-1044-ibmUpgrade linux-image-6.14.0-1007-azureUpgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-intel-iot-realtime-5.15Upgrade linux-image-6.8.0-1046-nvidia-lowlatencyUpgrade linux-image-azureUpgrade linux-image-6.14.0-22-genericUpgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-6.8.0-1043-oracle-64kUpgrade linux-image-gke-64k-6.8Upgrade linux-image-5.15.0-1081-intel-iot-realtimeUpgrade linux-image-ibm-classicUpgrade linux-image-5.15.0-1030-nvidia-tegra-igx-rtUpgrade linux-image-generic-6.8Upgrade linux-image-xilinx-6.8Upgrade linux-image-6.8.0-1047-gcp-64kUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-generic-64k-6.8Upgrade linux-image-fipsUpgrade linux-image-nvidia-6.8Upgrade linux-image-5.15.0-1084-kvmUpgrade linux-image-aws-fipsUpgrade linux-image-6.8.1-1041-realtimeUpgrade linux-image-6.14.0-1008-gcpUpgrade linux-image-gcp-5.15Upgrade linux-image-5.15.0-1088-aws-64kUpgrade linux-image-generic-lpaeUpgrade linux-image-6.14.0-1007-aws-64kUpgrade linux-image-oem-22.04dUpgrade linux-image-gke-5.15Upgrade linux-image-virtual-hwe-20.04Upgrade linux-image-oracle-64k-6.8Upgrade linux-image-5.15.0-1083-intel-iotgUpgrade linux-image-azure-fipsUpgrade linux-image-generic-hwe-20.04Upgrade linux-image-5.15.0-1052-xilinx-zynqmpUpgrade linux-image-generic-64k-5.15Upgrade linux-image-6.14.0-1007-oracle-64kUpgrade linux-image-azure-fdeUpgrade linux-image-6.8.0-1023-xilinxUpgrade linux-image-gcp-lts-22.04Upgrade linux-image-nvidia-tegra-rtUpgrade linux-image-realtime-6.8.1Upgrade linux-image-kvmUpgrade linux-image-nvidia-tegra-rt-5.15Upgrade linux-image-5.15.0-144-generic-64kUpgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-6.8.0-100-generic-64kUpgrade linux-image-gcp-64kUpgrade linux-image-gke-64kUpgrade linux-image-ibmUpgrade linux-image-6.8.0-1047-gcp-fipsUpgrade linux-image-5.15.0-1088-awsUpgrade linux-image-5.15.0-1088-aws-fipsUpgrade linux-image-6.8.0-100-genericUpgrade linux-image-aws-lts-24.04Upgrade linux-image-6.8.0-1043-gke-64kUpgrade linux-image-ibm-6.8Upgrade linux-image-aws-6.8Upgrade linux-image-lowlatency-6.8Upgrade linux-image-ibm-5.15Upgrade linux-image-5.15.0-144-lowlatencyUpgrade linux-image-6.14.0-1007-awsUpgrade linux-image-6.8.0-1046-awsUpgrade linux-image-lowlatencyUpgrade linux-image-generic-5.15Upgrade linux-image-nvidia-tegra-igxUpgrade linux-image-raspi-6.8Upgrade linux-image-raspiUpgrade linux-image-nvidia-tegra-igx-rt-5.15Upgrade linux-image-aws-fips-6.8Upgrade linux-image-raspi-5.15Upgrade linux-image-nvidia-64k-6.8Upgrade linux-image-awsUpgrade linux-image-5.15.0-1087-gcp-fipsUpgrade linux-image-gkeop-6.8Upgrade linux-image-raspi-realtime-6.8Upgrade linux-image-ibm-lts-24.04Upgrade linux-image-oracle-5.15Upgrade linux-image-gcp-fips-5.15Upgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-aws-fips-5.15Upgrade linux-image-5.15.0-1041-nvidia-tegra-rtUpgrade linux-image-virtual-6.8Upgrade linux-image-6.8.0-1043-oracleUpgrade linux-image-realtime-5.15Upgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-5.15.0-144-fipsUpgrade linux-image-oracleUpgrade linux-image-gkeopUpgrade linux-image-gcp-64k-6.8Upgrade linux-image-xilinx-zynqmp-5.15Upgrade linux-image-intel-iot-realtimeUpgrade linux-image-generic-lpae-5.15Upgrade linux-image-generic-64kUpgrade linux-image-lowlatency-5.15Upgrade linux-image-aws-64k-lts-22.04Upgrade linux-image-nvidia-lowlatency-64k-6.8Upgrade linux-image-nvidia-64kUpgrade linux-image-kvm-5.15Upgrade linux-image-6.8.0-1043-gkeUpgrade linux-image-intel-iotg-5.15Upgrade linux-image-6.8.0-1046-azure-fipsUpgrade linux-image-azure-fips-5.15Upgrade linux-image-5.15.0-1070-gkeopUpgrade linux-image-azure-lts-22.04Upgrade linux-image-realtimeUpgrade linux-image-oem-22.04cUpgrade linux-image-nvidia-tegra-igx-rtUpgrade linux-image-nvidia-5.15Upgrade linux-image-nvidiaUpgrade linux-image-lowlatency-64k-5.15Upgrade linux-image-fips-6.8Upgrade linux-image-6.8.0-1030-gkeopUpgrade linux-image-5.15.0-1094-azure-fipsUpgrade linux-image-5.15.0-1083-raspiUpgrade linux-image-5.15.0-1085-oracleUpgrade linux-image-gcpUpgrade linux-image-oracle-lts-24.04Upgrade linux-image-oem-22.04Upgrade linux-image-gcp-6.8Upgrade linux-image-fips-5.15Upgrade linux-image-azure-6.8Upgrade linux-image-6.8.0-1047-raspiUpgrade linux-image-6.8.0-1046-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-1046-aws-fipsUpgrade linux-image-oem-20.04bUpgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-intelUpgrade linux-image-5.15.0-1041-nvidia-tegraUpgrade linux-image-6.8.0-2037-raspi-realtimeUpgrade linux-image-6.8.0-1046-nvidiaUpgrade linux-image-5.15.0-144-generic-lpaeUpgrade linux-image-5.15.0-1085-gkeUpgrade linux-image-virtualUpgrade linux-image-oracle-lts-22.04Upgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-oem-20.04dUpgrade linux-image-azure-fips-6.8Upgrade linux-image-6.8.0-1051-azureUpgrade linux-image-5.15.0-1087-gcpUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-nvidia-tegra-igx-5.15Upgrade linux-image-nvidia-tegraUpgrade linux-image-nvidia-lowlatency-6.8Upgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-6.8.0-1046-aws-64kUpgrade linux-image-6.14.0-1007-azure-fdeUpgrade linux-image-nvidia-tegra-5.15Upgrade linux-image-genericUpgrade linux-image-oem-20.04cUpgrade linux-image-5.15.0-144-genericUpgrade linux-image-virtual-5.15Upgrade linux-image-oracle-64kUpgrade linux-image-xilinxUpgrade linux-image-5.15.0-144-lowlatency-64kUpgrade linux-image-gkeUpgrade linux-image-6.8.0-1046-nvidia-64kUpgrade linux-image-6.8.0-100-lowlatency-64kUpgrade linux-image-5.15.0-1094-azureUpgrade linux-image-5.15.0-1082-nvidia-lowlatencyUpgrade linux-image-6.14.0-22-generic-64kUpgrade linux-image-realtime-hwe-22.04Upgrade linux-image-oem-20.04Upgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-gke-6.8Upgrade linux-image-lowlatency-64kUpgrade linux-image-6.8.0-100-fipsUpgrade linux-image-intel-iotgUpgrade linux-image-gkeop-5.15Upgrade linux-image-aws-64kUpgrade linux-image-5.15.0-1082-nvidiaUpgrade linux-image-5.15.0-1030-nvidia-tegra-igxUpgrade linux-image-6.8.0-1046-azureUpgrade linux-image-6.8.0-1047-gcpUpgrade linux-image-aws-5.15Upgrade linux-image-gcp-fips-6.8Upgrade linux-image-generic-hwe-22.04Upgrade linux-image-6.14.0-1007-oracleUpgrade linux-image-6.14.0-1004-realtimeUpgrade linux-image-5.15.0-1080-ibmUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-raspi-realtime | 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