5.5

CVE-2023-53339

btrfs: fix BUG_ON condition in btrfs_cancel_balance

In the Linux kernel, the following vulnerability has been resolved:

btrfs: fix BUG_ON condition in btrfs_cancel_balance

Pausing and canceling balance can race to interrupt balance lead to BUG_ON
panic in btrfs_cancel_balance. The BUG_ON condition in btrfs_cancel_balance
does not take this race scenario into account.

However, the race condition has no other side effects. We can fix that.

Reproducing it with panic trace like this:

  kernel BUG at fs/btrfs/volumes.c:4618!
  RIP: 0010:btrfs_cancel_balance+0x5cf/0x6a0
  Call Trace:
   <TASK>
   ? do_nanosleep+0x60/0x120
   ? hrtimer_nanosleep+0xb7/0x1a0
   ? sched_core_clone_cookie+0x70/0x70
   btrfs_ioctl_balance_ctl+0x55/0x70
   btrfs_ioctl+0xa46/0xd20
   __x64_sys_ioctl+0x7d/0xa0
   do_syscall_64+0x38/0x80
   entry_SYSCALL_64_after_hwframe+0x63/0xcd

  Race scenario as follows:
  > mutex_unlock(&fs_info->balance_mutex);
  > --------------------
  > .......issue pause and cancel req in another thread
  > --------------------
  > ret = __btrfs_balance(fs_info);
  >
  > mutex_lock(&fs_info->balance_mutex);
  > if (ret == -ECANCELED && atomic_read(&fs_info->balance_pause_req)) {
  >         btrfs_info(fs_info, "balance: paused");
  >         btrfs_exclop_balance(fs_info, BTRFS_EXCLOP_BALANCE_PAUSED);
  > }
Daten sind bereitgestellt durch National Vulnerability Database (NVD)
Linux ≫ Linux Kernel Version < 4.19.293
Linux ≫ Linux Kernel Version >= 4.20 < 5.4.255
Linux ≫ Linux Kernel Version >= 5.5 < 5.10.192
Linux ≫ Linux Kernel Version >= 5.11 < 5.15.128
Linux ≫ Linux Kernel Version >= 5.16 < 6.1.47
Linux ≫ Linux Kernel Version >= 6.2 < 6.4.12
Linux ≫ Linux Kernel Version 6.5 Update rc1
Linux ≫ Linux Kernel Version 6.5 Update rc2
Linux ≫ Linux Kernel Version 6.5 Update rc3
Linux ≫ Linux Kernel Version 6.5 Update rc4
Linux ≫ Linux Kernel Version 6.5 Update rc5
Linux ≫ Linux Kernel Version 6.5 Update rc6
VulnDex Vulnerability Enrichment
Diese Information steht angemeldeten Benutzern zur Verfügung. Login Login
Zu dieser CVE wurde keine Warnung gefunden.
EPSS Metriken
Typ Quelle Score Percentile
EPSS FIRST.org 0.2% 0.103
CVSS Metriken
Quelle Base Score Exploit Score Impact Score Vector String
NIST 5.5 1.8 3.6
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
CWE-617 Reachable Assertion

The product contains an assert() or similar statement that can be triggered by an attacker, which leads to an application exit or other behavior that is more severe than necessary.

https://git.kernel.org/stable/c/ceb9ba8e30833a4823e2dc73f80ebcdf2498d01a
Patch
https://git.kernel.org/stable/c/ae81329f7de3aa6f34ecdfa5412e72161a30e9ce
Patch
https://git.kernel.org/stable/c/29eefa6d0d07e185f7bfe9576f91e6dba98189c2
Patch