ghsa-ffg2-pg2r-fw6w
Vulnerability from github
Published
2025-09-18 15:30
Modified
2025-09-18 15:30
Details

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.

Show details on source website


{
  "affected": [],
  "aliases": [
    "CVE-2022-50379"
  ],
  "database_specific": {
    "cwe_ids": [],
    "github_reviewed": false,
    "github_reviewed_at": null,
    "nvd_published_at": "2025-09-18T14:15:36Z",
    "severity": null
  },
  "details": "In the Linux kernel, the following vulnerability has been resolved:\n\nbtrfs: fix race between quota enable and quota rescan ioctl\n\nWhen enabling quotas, at btrfs_quota_enable(), after committing the\ntransaction, we change fs_info-\u003equota_root to point to the quota root we\ncreated and set BTRFS_FS_QUOTA_ENABLED at fs_info-\u003eflags. Then we try\nto start the qgroup rescan worker, first by initializing it with a call\nto qgroup_rescan_init() - however if that fails we end up freeing the\nquota root but we leave fs_info-\u003equota_root still pointing to it, this\ncan later result in a use-after-free somewhere else.\n\nWe have previously set the flags BTRFS_FS_QUOTA_ENABLED and\nBTRFS_QGROUP_STATUS_FLAG_ON, so we can only fail with -EINPROGRESS at\nbtrfs_quota_enable(), which is possible if someone already called the\nquota rescan ioctl, and therefore started the rescan worker.\n\nSo fix this by ignoring an -EINPROGRESS and asserting we can\u0027t get any\nother error.",
  "id": "GHSA-ffg2-pg2r-fw6w",
  "modified": "2025-09-18T15:30:32Z",
  "published": "2025-09-18T15:30:32Z",
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2022-50379"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/0efd9dfc00d677a1d0929319a6103cb2dfc41c22"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/26b7c0ac49a3eea15559c9d84863736a6d1164b4"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/331cd9461412e103d07595a10289de90004ac890"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/47b5ffe86332af95f0f52be0a63d4da7c2b37b55"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/4b996a3014ef014af8f97b60c35f5289210a4720"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/6c22f86dd221eba0c7af645b1af73dcbc04ee27b"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/c97f6d528c3f1c83a6b792a8a7928c236c80b8fe"
    }
  ],
  "schema_version": "1.4.0",
  "severity": []
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…