Vulnerability · Published Oct 21, 2024 · Assigned by Linux

CVE-2024-47689f2fs: fix to don't set SB_RDONLY in f2fs_handle_critical_error()

Medium 5.3

In plain English

A medium-severity security flaw in Linux from Linux. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 0.6% (higher than 50% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.

Severity (CVSS NVD)5.3Medium
Exploit odds (30 days)0.6%top 50.0% of all CVEs
Exploited in the wildNo reportsCISA SSVC: none
Attack toolingNoneno public tooling known

Official description

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/20240805201241.27286-1-jack@suse.cz

Affected packages & fixed versions

EcosystemPackageFixed inAdvisory
Debian:13linux6.11.2-1DEBIAN-CVE-2024-47689
Debian:14linux6.11.2-1DEBIAN-CVE-2024-47689
Ubuntu:24.04:LTSlinux6.8.0-54.56UBUNTU-CVE-2024-47689
Ubuntu:24.04:LTSlinux6.8.0-54.56USN-7301-1
Ubuntu:22.04:LTSlinux-allwinner-5.19no fix listedUBUNTU-CVE-2024-47689
Ubuntu:24.04:LTSlinux-aws6.8.0-1023.25UBUNTU-CVE-2024-47689
Ubuntu:24.04:LTSlinux-aws6.8.0-1023.25USN-7311-1
Ubuntu:22.04:LTSlinux-aws-5.19no fix listedUBUNTU-CVE-2024-47689
Ubuntu:22.04:LTSlinux-aws-6.2no fix listedUBUNTU-CVE-2024-47689
Ubuntu:22.04:LTSlinux-aws-6.5no fix listedUBUNTU-CVE-2024-47689
Ubuntu:22.04:LTSlinux-aws-6.86.8.0-1023.25~22.04.1USN-7311-1
Ubuntu:22.04:LTSlinux-aws-6.86.8.0-1023.25~22.04.1UBUNTU-CVE-2024-47689
Ubuntu:24.04:LTSlinux-azure6.8.0-1025.30UBUNTU-CVE-2024-47689
Ubuntu:24.04:LTSlinux-azure6.8.0-1025.30USN-7384-1
Ubuntu:22.04:LTSlinux-azure-5.19no fix listedUBUNTU-CVE-2024-47689
Ubuntu:24.04:LTSlinux-azure-6.116.11.0-1012.12~24.04.1UBUNTU-CVE-2024-47689
Ubuntu:22.04:LTSlinux-azure-6.2no fix listedUBUNTU-CVE-2024-47689
Ubuntu:22.04:LTSlinux-azure-6.5no fix listedUBUNTU-CVE-2024-47689
Ubuntu:22.04:LTSlinux-azure-6.86.8.0-1025.30~22.04.1USN-7384-2
Ubuntu:22.04:LTSlinux-azure-6.86.8.0-1025.30~22.04.1UBUNTU-CVE-2024-47689
Ubuntu:22.04:LTSlinux-azure-fde-5.19no fix listedUBUNTU-CVE-2024-47689
Ubuntu:22.04:LTSlinux-azure-fde-6.2no fix listedUBUNTU-CVE-2024-47689
Ubuntu:24.04:LTSlinux-azure-nvidia6.8.0-1014.15USN-7468-1
Ubuntu:24.04:LTSlinux-azure-nvidia6.8.0-1014.15UBUNTU-CVE-2024-47689
Ubuntu:24.04:LTSlinux-gcp6.8.0-1024.26USN-7304-1
Ubuntu:24.04:LTSlinux-gcp6.8.0-1024.26UBUNTU-CVE-2024-47689
Ubuntu:22.04:LTSlinux-gcp-5.19no fix listedUBUNTU-CVE-2024-47689
Ubuntu:24.04:LTSlinux-gcp-6.116.11.0-1011.11~24.04.1UBUNTU-CVE-2024-47689
Ubuntu:22.04:LTSlinux-gcp-6.2no fix listedUBUNTU-CVE-2024-47689
Ubuntu:22.04:LTSlinux-gcp-6.5no fix listedUBUNTU-CVE-2024-47689
Ubuntu:22.04:LTSlinux-gcp-6.86.8.0-1024.26~22.04.1UBUNTU-CVE-2024-47689
Ubuntu:22.04:LTSlinux-gcp-6.86.8.0-1024.26~22.04.1USN-7303-3
Ubuntu:24.04:LTSlinux-gke6.8.0-1019.23USN-7304-1
Ubuntu:24.04:LTSlinux-gke6.8.0-1019.23UBUNTU-CVE-2024-47689
Ubuntu:24.04:LTSlinux-gkeop6.8.0-1006.8UBUNTU-CVE-2024-47689
Ubuntu:24.04:LTSlinux-gkeop6.8.0-1006.8USN-7304-1
Ubuntu:22.04:LTSlinux-hwe-5.19no fix listedUBUNTU-CVE-2024-47689
Ubuntu:22.04:LTSlinux-hwe-6.2no fix listedUBUNTU-CVE-2024-47689
Ubuntu:22.04:LTSlinux-hwe-6.5no fix listedUBUNTU-CVE-2024-47689
Ubuntu:22.04:LTSlinux-hwe-6.86.8.0-57.59~22.04.1USN-7403-1
Ubuntu:22.04:LTSlinux-hwe-6.86.8.0-57.59~22.04.1UBUNTU-CVE-2024-47689
Ubuntu:24.04:LTSlinux-ibm6.8.0-1022.22USN-7385-1
Ubuntu:24.04:LTSlinux-ibm6.8.0-1022.22UBUNTU-CVE-2024-47689
Ubuntu:22.04:LTSlinux-ibm-6.86.8.0-1023.23~22.04.1UBUNTU-CVE-2024-47689
Ubuntu:22.04:LTSlinux-intel-iot-realtimeno fix listedUBUNTU-CVE-2024-47689
Ubuntu:24.04:LTSlinux-lowlatency6.8.0-54.56.1UBUNTU-CVE-2024-47689
Ubuntu:24.04:LTSlinux-lowlatency6.8.0-54.56.1USN-7301-1
Ubuntu:22.04:LTSlinux-lowlatency-hwe-5.19no fix listedUBUNTU-CVE-2024-47689
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.2no fix listedUBUNTU-CVE-2024-47689
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.5no fix listedUBUNTU-CVE-2024-47689
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.86.8.0-54.56.1~22.04.1UBUNTU-CVE-2024-47689
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.86.8.0-54.56.1~22.04.1USN-7301-1
Ubuntu:24.04:LTSlinux-nvidia6.8.0-1022.25UBUNTU-CVE-2024-47689
Ubuntu:24.04:LTSlinux-nvidia6.8.0-1022.25USN-7303-1
Ubuntu:24.04:LTSlinux-nvidia-6.116.11.0-1007.7UBUNTU-CVE-2024-47689
Ubuntu:22.04:LTSlinux-nvidia-6.2no fix listedUBUNTU-CVE-2024-47689
Ubuntu:22.04:LTSlinux-nvidia-6.5no fix listedUBUNTU-CVE-2024-47689
Ubuntu:22.04:LTSlinux-nvidia-6.86.8.0-1022.25~22.04.2USN-7303-1
Ubuntu:22.04:LTSlinux-nvidia-6.86.8.0-1022.25~22.04.2UBUNTU-CVE-2024-47689
Ubuntu:24.04:LTSlinux-nvidia-lowlatency6.8.0-1022.25.2USN-7303-1
Ubuntu:24.04:LTSlinux-nvidia-lowlatency6.8.0-1022.25.2UBUNTU-CVE-2024-47689
Ubuntu:22.04:LTSlinux-oem-5.17no fix listedUBUNTU-CVE-2024-47689
Ubuntu:22.04:LTSlinux-oem-6.0no fix listedUBUNTU-CVE-2024-47689
Ubuntu:22.04:LTSlinux-oem-6.1no fix listedUBUNTU-CVE-2024-47689
Ubuntu:24.04:LTSlinux-oem-6.116.11.0-1015.15UBUNTU-CVE-2024-47689
Ubuntu:24.04:LTSlinux-oem-6.116.11.0-1015.15USN-7310-1
Ubuntu:22.04:LTSlinux-oem-6.5no fix listedUBUNTU-CVE-2024-47689
Ubuntu:24.04:LTSlinux-oem-6.86.8.0-1024.24UBUNTU-CVE-2024-47689
Ubuntu:24.04:LTSlinux-oem-6.86.8.0-1024.24USN-7386-1
Ubuntu:24.04:LTSlinux-oracle6.8.0-1020.21USN-7303-2
Ubuntu:24.04:LTSlinux-oracle6.8.0-1020.21UBUNTU-CVE-2024-47689
Ubuntu:22.04:LTSlinux-oracle-6.5no fix listedUBUNTU-CVE-2024-47689
Ubuntu:22.04:LTSlinux-oracle-6.86.8.0-1020.21~22.04.1USN-7303-2
Ubuntu:22.04:LTSlinux-oracle-6.86.8.0-1020.21~22.04.1UBUNTU-CVE-2024-47689
Ubuntu:24.04:LTSlinux-raspi6.8.0-1019.23USN-7303-3
Ubuntu:24.04:LTSlinux-raspi6.8.0-1019.23UBUNTU-CVE-2024-47689
Ubuntu:22.04:LTSlinux-realtimeno fix listedUBUNTU-CVE-2024-47689
Ubuntu:24.04:LTSlinux-realtimeno fix listedUBUNTU-CVE-2024-47689
Ubuntu:22.04:LTSlinux-riscvno fix listedUBUNTU-CVE-2024-47689
Ubuntu:24.04:LTSlinux-riscv6.8.0-53.55.1UBUNTU-CVE-2024-47689
Ubuntu:22.04:LTSlinux-riscv-5.19no fix listedUBUNTU-CVE-2024-47689
Ubuntu:22.04:LTSlinux-riscv-6.5no fix listedUBUNTU-CVE-2024-47689
Ubuntu:22.04:LTSlinux-riscv-6.86.8.0-53.55.1~22.04.1UBUNTU-CVE-2024-47689
Ubuntu:22.04:LTSlinux-starfive-5.19no fix listedUBUNTU-CVE-2024-47689
Ubuntu:22.04:LTSlinux-starfive-6.2no fix listedUBUNTU-CVE-2024-47689
Ubuntu:22.04:LTSlinux-starfive-6.5no fix listedUBUNTU-CVE-2024-47689
Ubuntu:24.04:LTSlinux-xilinx6.8.0-1017.18UBUNTU-CVE-2024-47689

Affected products (as reported)

VendorProductVersions
Linux Linux b62e71be2110d8b52bf5faf3c3ed7ca1a0c113a5 – before 649ec8b30df113042588bd3d3cd4e98bcb1091e0b62e71be2110d8b52bf5faf3c3ed7ca1a0c113a5 – before de43021c72993877a8f86f9fddfa0687609da5a4b62e71be2110d8b52bf5faf3c3ed7ca1a0c113a5 – before 1f63f405c1a1a64b9c310388aad7055fb86b245cb62e71be2110d8b52bf5faf3c3ed7ca1a0c113a5 – before 930c6ab93492c4b15436524e704950b364b2930ced1d478bf838820201f3fb67a1748fdf15954ea46.4.4 – before 6.5
Linux Linux 6.5

References