CVE-2022-50379

btrfs: fix race between quota enable and quota rescan ioctl

Medium · published September 18, 2025

CVSS v3.1
4.7
EPSS
0%
Percentile
1.3
In the wild
Unconfirmed
What it is

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

btrfs: fix race between quota enable and quota rescan ioctl

When enabling quotas, at btrfs_quota_enable(), after committing the

transaction, we change fs_info->quota_root to point to the quota root we

created and set BTRFS_FS_QUOTA_ENABLED at fs_info->flags. Then we try

to start the qgroup rescan worker, first by initializing it with a call

to qgroup_rescan_init() - however if that fails we end up freeing the

quota root but we leave fs_info->quota_root still pointing to it, this

can later result in a use-after-free somewhere else.

We have previously set the flags BTRFS_FS_QUOTA_ENABLED and

BTRFS_QGROUP_STATUS_FLAG_ON, so we can only fail with -EINPROGRESS at

btrfs_quota_enable(), which is possible if someone already called the

quota rescan ioctl, and therefore started the rescan worker.

So fix this by ignoring an -EINPROGRESS and asserting we can't get any

other error.

The record
Technical detail
CVSS v3.1
4.7 · MEDIUM
Vector
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H
CVSS v4.0
Not supplied
EPSS
0.00111 · 1.3th percentile
Published
2025-09-18T13:33Z
EPSS history
Timeline
  • 18 SEP 13:33Z
    btrfs: fix race between quota enable and quota rescan ioctl
    cvelistv5