In the Linux kernel, the following vulnerability has been resolved:
f2fs: fix race in concurrent f2fs_stop_gc_thread
In my test case, concurrent calls to f2fs shutdown report the following stack trace:
Oops: general protection fault, probably for non-canonical address 0xc6cfff63bb5513fc: 0000 [#1] PREEMPT SMP PTI CPU: 0 UID: 0 PID: 678 Comm: f2fs_rep_shutdo Not tainted 6.12.0-rc5-next-20241029-g6fb2fa9805c5-dirty #85 Call Trace: <TASK> ? show_regs+0x8b/0xa0 ? __die_body+0x26/0xa0 ? die_addr+0x54/0x90 ? exc_general_protection+0x24b/0x5c0 ? asm_exc_general_protection+0x26/0x30 ? kthread_stop+0x46/0x390 f2fs_stop_gc_thread+0x6c/0x110 f2fs_do_shutdown+0x309/0x3a0 f2fs_ioc_shutdown+0x150/0x1c0 __f2fs_ioctl+0xffd/0x2ac0 f2fs_ioctl+0x76/0xe0 vfs_ioctl+0x23/0x60 __x64_sys_ioctl+0xce/0xf0 x64_sys_call+0x2b1b/0x4540 do_syscall_64+0xa7/0x240 entry_SYSCALL_64_after_hwframe+0x76/0x7e
The root cause is a race condition in f2fs_stop_gc_thread() called from different f2fs shutdown paths:
[CPU0] [CPU1] ---------------------- ----------------------- f2fs_stop_gc_thread f2fs_stop_gc_thread gc_th = sbi->gc_thread gc_th = sbi->gc_thread kfree(gc_th) sbi->gc_thread = NULL < gc_th != NULL > kthread_stop(gc_th->f2fs_gc_task) //UAF
The commit c7f114d864ac ("f2fs: fix to avoid use-after-free in f2fs_stop_gc_thread()") attempted to fix this issue by using a read semaphore to prevent races between shutdown and remount threads, but it fails to prevent all race conditions.
Fix it by converting to write lock of s_umount in f2fs_do_shutdown().
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 |
|---|---|---|---|---|
| Debian | — | Upgrade linux | May 15, 2025 | Dec 27, 2024 |
| Ubuntu | — | Upgrade linux-image-5.15.0-1093-nvidia-lowlatencyUpgrade linux-image-aws-fipsUpgrade linux-image-azure-5.15Upgrade linux-image-6.8.0-1027-awsUpgrade linux-image-gcp-5.15Upgrade linux-image-realtimeUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-gkeUpgrade linux-image-5.4.0-1151-oracleUpgrade linux-image-gcp-fips-5.15Upgrade linux-image-6.8.0-1027-azureUpgrade linux-image-azure-fips-5.15Upgrade linux-image-lowlatency-64k-5.15Upgrade linux-image-kvm-5.15Upgrade linux-image-6.8.0-1027-azure-fdeUpgrade linux-image-generic-lpae-5.4Upgrade linux-image-intelUpgrade linux-image-intel-iotg-5.15Upgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-oem-22.04dUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-awsUpgrade linux-image-virtual-hwe-20.04Upgrade linux-image-6.8.0-1026-nvidia-lowlatency-64kUpgrade linux-image-xilinx-zynqmp-5.15Upgrade linux-image-oem-24.04Upgrade linux-image-6.11.0-1010-lowlatency-64kUpgrade linux-image-gcp-lts-24.04Upgrade linux-image-nvidia-6.8Upgrade linux-image-6.8.0-1023-gkeUpgrade linux-image-5.15.0-1081-gkeopUpgrade linux-image-snapdragon-hwe-18.04Upgrade linux-image-generic-5.15Upgrade linux-image-5.15.0-1098-aws-fipsUpgrade linux-image-xilinx-zynqmp-5.4Upgrade linux-image-nvidia-tegra-igx-5.15Upgrade linux-image-oemUpgrade linux-image-gcp-64kUpgrade linux-image-oracleUpgrade linux-image-raspi-5.15Upgrade linux-image-oracle-lts-20.04Upgrade linux-image-oem-20.04Upgrade linux-image-5.4.0-1099-ibmUpgrade linux-image-virtualUpgrade linux-image-5.4.0-1156-gcp-fipsUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-6.11.0-1009-awsUpgrade linux-image-6.8.0-2023-raspi-realtimeUpgrade linux-image-genericUpgrade linux-image-6.8.0-1026-nvidia-64kUpgrade linux-image-fipsUpgrade linux-image-generic-lpae-5.15Upgrade linux-image-azure-cvmUpgrade linux-image-ibm-5.15Upgrade linux-image-aws-5.15Upgrade linux-image-nvidia-tegra-igxUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-virtual-hwe-24.04Upgrade linux-image-6.11.0-18-genericUpgrade linux-image-6.11.0-1008-raspiUpgrade linux-image-generic-hwe-20.04Upgrade linux-image-5.15.0-1093-nvidiaUpgrade linux-image-6.8.0-1026-nvidiaUpgrade linux-image-6.8.0-58-lowlatency-64kUpgrade linux-image-6.11.0-1009-gcpUpgrade linux-image-5.4.0-1071-xilinx-zynqmpUpgrade linux-image-5.15.0-164-generic-64kUpgrade linux-image-5.15.0-1039-nvidia-tegra-igxUpgrade linux-image-5.15.0-1039-nvidia-tegra-igx-rtUpgrade linux-image-lowlatency-5.15Upgrade linux-image-nvidia-tegra-igx-rt-5.15Upgrade linux-image-nvidia-lowlatency-5.15Upgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-6.8.0-1028-gcp-64kUpgrade linux-image-6.11.0-18-generic-64kUpgrade linux-image-oracle-lts-22.04Upgrade linux-image-aws-64k-lts-22.04Upgrade linux-image-5.15.0-1094-gkeUpgrade linux-image-5.15.0-1092-ibmUpgrade linux-image-5.15.0-1102-azure-fipsUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-azure-lts-22.04Upgrade linux-image-azure-fde-lts-24.04Upgrade linux-image-gcp-fipsUpgrade linux-image-lowlatency-64kUpgrade linux-image-ibmUpgrade linux-image-raspi-nolpaeUpgrade linux-image-5.4.0-1157-azure-fipsUpgrade linux-image-6.11.0-1011-oracleUpgrade linux-image-generic-hwe-18.04Upgrade linux-image-generic-5.4Upgrade linux-image-azure-nvidiaUpgrade linux-image-aws-lts-22.04Upgrade linux-image-generic-64kUpgrade linux-image-6.8.0-58-generic-64kUpgrade linux-image-6.8.0-1024-oracle-64kUpgrade linux-image-nvidia-64kUpgrade linux-image-6.8.0-1014-azure-nvidiaUpgrade linux-image-fips-5.4Upgrade linux-image-oem-22.04aUpgrade linux-image-aws-lts-20.04Upgrade linux-image-5.15.0-164-generic-lpaeUpgrade linux-image-6.11.0-1009-azureUpgrade linux-image-kvmUpgrade linux-image-6.8.1-1020-realtimeUpgrade linux-image-oem-20.04cUpgrade linux-image-aws-5.4Upgrade linux-image-nvidia-5.15Upgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-oracle-5.15Upgrade linux-image-raspi2-hwe-18.04Upgrade linux-image-5.15.0-164-genericUpgrade linux-image-raspi-realtimeUpgrade linux-image-nvidiaUpgrade linux-image-ibm-5.4Upgrade linux-image-nvidia-tegraUpgrade linux-image-6.11.0-1010-lowlatencyUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-nvidia-tegra-5.15Upgrade linux-image-virtual-hwe-18.04Upgrade linux-image-intel-iotgUpgrade linux-image-5.4.0-1153-aws-fipsUpgrade linux-image-5.15.0-164-lowlatencyUpgrade linux-image-5.15.0-1050-nvidia-tegra-rtUpgrade linux-image-5.15.0-1092-raspiUpgrade linux-image-lowlatency-5.4Upgrade linux-image-gkeop-5.15Upgrade linux-image-azure-fips-5.4Upgrade linux-image-oracle-5.4Upgrade linux-image-5.15.0-1098-awsUpgrade linux-image-gkeopUpgrade linux-image-nvidia-tegra-rtUpgrade linux-image-6.8.0-1024-ibmUpgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-intel-iot-realtimeUpgrade linux-image-virtual-5.15Upgrade linux-image-5.4.0-1127-fipsUpgrade linux-image-oem-osp1Upgrade linux-image-aws-fips-5.15Upgrade linux-image-5.15.0-164-fipsUpgrade linux-image-aws-lts-24.04Upgrade linux-image-lowlatency-hwe-18.04Upgrade linux-image-raspi-hwe-18.04Upgrade linux-image-realtime-5.15Upgrade linux-image-6.8.0-1010-gkeopUpgrade linux-image-6.8.0-1024-oracle | Feb 20, 2025 | Dec 27, 2024 |
Prioritize 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