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