In the Linux kernel, the following vulnerability has been resolved:
f2fs: fix to don't set SB_RDONLY in f2fs_handle_critical_error()
syzbot reports a f2fs bug as below:
------------[ cut here ]------------ WARNING: CPU: 1 PID: 58 at kernel/rcu/sync.c:177 rcu_sync_dtor+0xcd/0x180 kernel/rcu/sync.c:177 CPU: 1 UID: 0 PID: 58 Comm: kworker/1:2 Not tainted 6.10.0-syzkaller-12562-g1722389b0d86 #0 Workqueue: events destroy_super_work RIP: 0010:rcu_sync_dtor+0xcd/0x180 kernel/rcu/sync.c:177 Call Trace: percpu_free_rwsem+0x41/0x80 kernel/locking/percpu-rwsem.c:42 destroy_super_work+0xec/0x130 fs/super.c:282 process_one_work kernel/workqueue.c:3231 [inline] process_scheduled_works+0xa2c/0x1830 kernel/workqueue.c:3312 worker_thread+0x86d/0xd40 kernel/workqueue.c:3390 kthread+0x2f0/0x390 kernel/kthread.c:389 ret_from_fork+0x4b/0x80 arch/x86/kernel/process.c:147 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244
As Christian Brauner pointed out [1]: the root cause is f2fs sets SB_RDONLY flag in internal function, rather than setting the flag covered w/ sb->s_umount semaphore via remount procedure, then below race condition causes this bug:
- freeze_super() - sb_wait_write(sb, SB_FREEZE_WRITE) - sb_wait_write(sb, SB_FREEZE_PAGEFAULT) - sb_wait_write(sb, SB_FREEZE_FS) - f2fs_handle_critical_error - sb->s_flags |= SB_RDONLY - thaw_super - thaw_super_locked - sb_rdonly() is true, so it skips sb_freeze_unlock(sb, SB_FREEZE_FS) - deactivate_locked_super
Since f2fs has almost the same logic as ext4 [2] when handling critical error in filesystem if it mounts w/ errors=remount-ro option: - set CP_ERROR_FLAG flag which indicates filesystem is stopped - record errors to superblock - set SB_RDONLY falg Once we set CP_ERROR_FLAG flag, all writable interfaces can detect the flag and stop any further updates on filesystem. So, it is safe to not set SB_RDONLY flag, let's remove the logic and keep in line w/ ext4 [3].
[1] https://lore.kernel.org/all/20240729-himbeeren-funknetz-96e62f9c7aee@brauner [2] https://lore.kernel.org/all/20240729132721.hxih6ehigadqf7wx@quack3 [3] https://lore.kernel.org/linux-ext4/[email protected]
CVSS Details
- CVSS 3.1 Base Score: 5.3
- CVSS 3.1 Vector: (CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Debian | — | Upgrade linux | Jul 27, 2026 | Jul 27, 2026 |
| Ubuntu | — | Upgrade linux-image-oem-22.04aUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-nvidiaUpgrade linux-image-lowlatencyUpgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-nvidia-64k-6.8Upgrade linux-image-gkeUpgrade linux-image-6.11.0-1009-azureUpgrade linux-image-6.11.0-1009-gcpUpgrade linux-image-virtualUpgrade linux-image-6.11.0-1011-oracle-64kUpgrade linux-image-oem-24.04Upgrade linux-image-gkeopUpgrade linux-image-6.8.0-1022-nvidia-lowlatencyUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-nvidia-6.8Upgrade linux-image-oracle-lts-24.04Upgrade linux-image-6.11.0-1009-azure-fdeUpgrade linux-image-6.8.0-1025-azureUpgrade linux-image-generic-lpaeUpgrade linux-image-6.8.0-1022-nvidiaUpgrade linux-image-generic-64kUpgrade linux-image-oem-24.04bUpgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-6.11.0-18-genericUpgrade linux-image-6.8.0-54-generic-64kUpgrade linux-image-6.8.0-1020-oracle-64kUpgrade linux-image-azure-nvidiaUpgrade linux-image-genericUpgrade linux-image-azureUpgrade linux-image-6.8.0-1024-oemUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-azure-lts-24.04Upgrade linux-image-realtime-hwe-24.04Upgrade linux-image-6.11.0-18-generic-64kUpgrade linux-image-ibmUpgrade linux-image-oem-22.04Upgrade linux-image-6.8.0-57-genericUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-6.11.0-1005-realtimeUpgrade linux-image-6.8.0-1006-gkeopUpgrade linux-image-6.11.0-1008-raspiUpgrade linux-image-6.8.0-54-genericUpgrade linux-image-6.8.0-57-generic-64kUpgrade linux-image-ibm-classicUpgrade linux-image-6.8.0-1025-azure-fdeUpgrade linux-image-gkeop-6.8Upgrade linux-image-lowlatency-64kUpgrade linux-image-6.8.0-1019-raspiUpgrade linux-image-oem-22.04cUpgrade linux-image-6.8.0-1023-awsUpgrade linux-image-azure-fdeUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-azure-fde-lts-24.04Upgrade linux-image-6.8.0-1024-gcp-64kUpgrade linux-image-6.8.0-1020-oracleUpgrade linux-image-realtimeUpgrade linux-image-6.11.0-1009-awsUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-oracle-64kUpgrade linux-image-6.8.0-1022-ibmUpgrade linux-image-nvidia-64kUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-oem-22.04bUpgrade linux-image-oem-24.04aUpgrade linux-image-6.8.0-1022-nvidia-64kUpgrade linux-image-oracleUpgrade linux-image-6.8.0-1014-azure-nvidiaUpgrade linux-image-kvmUpgrade linux-image-6.11.0-1010-lowlatencyUpgrade linux-image-awsUpgrade linux-image-6.11.0-1011-oracleUpgrade linux-image-gcp-lts-24.04Upgrade linux-image-generic-hwe-24.04Upgrade linux-image-gcp-64kUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-6.8.0-1022-nvidia-lowlatency-64kUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-aws-lts-24.04Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-6.11.0-1015-oemUpgrade linux-image-oem-22.04dUpgrade linux-image-6.8.0-54-lowlatencyUpgrade linux-image-6.11.0-1010-lowlatency-64kUpgrade linux-image-6.8.0-54-lowlatency-64kUpgrade linux-image-6.8.0-1024-gcpUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-gcpUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-6.8.0-1019-gkeUpgrade linux-image-raspi | Feb 20, 2025 | Oct 21, 2024 |
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