{
  "affected": [
    {
      "ranges": [
        {
          "events": [
            {
              "introduced": "81c1188905f88b77743d1fdeeedfc8cb7b67787d"
            },
            {
              "fixed": "b5dae1cd0d8368b4338430ff93403df67f0b8bcc"
            }
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "type": "GIT"
        },
        {
          "events": [
            {
              "introduced": "bfe46d2efe46c5c952f982e2ca94fe2ec5e58e2a"
            },
            {
              "fixed": "083b58373463a6e5ee60ecb135269348f68ad7df"
            }
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "type": "GIT"
        },
        {
          "events": [
            {
              "introduced": "f1c006f1c6850c14040f8337753a63119bba39b9"
            },
            {
              "fixed": "ac34e655dffa74349d885a43d098115336f53842"
            },
            {
              "fixed": "2cf9f50a38c1839e549a08e22aa35e8d69e2c8fd"
            },
            {
              "fixed": "5313d4d41739b0cb63000747c97bb1217ac45f3e"
            }
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "type": "GIT"
        },
        {
          "events": [
            {
              "introduced": "6.1.16"
            },
            {
              "fixed": "6.1.17"
            }
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "type": "GIT"
        },
        {
          "events": [
            {
              "introduced": "6.2.3"
            },
            {
              "fixed": "6.2.4"
            }
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "type": "GIT"
        }
      ]
    },
    {
      "package": {
        "ecosystem": "Linux",
        "name": "Kernel"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "6.1.17"
            }
          ],
          "type": "ECOSYSTEM"
        },
        {
          "events": [
            {
              "introduced": "6.2.0"
            },
            {
              "fixed": "6.2.4"
            }
          ],
          "type": "ECOSYSTEM"
        },
        {
          "events": [
            {
              "introduced": "6.3.0"
            },
            {
              "fixed": "6.18.52"
            },
            {
              "fixed": "7.2.6"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    }
  ],
  "database_specific": {
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/90xxx/CVE-2026-90326.json"
  },
  "details": "In the Linux kernel, the following vulnerability has been resolved:\n\nblk-cgroup: fix race between policy activation and blkg destruction\n\nWhen switching an IO scheduler on a block device, blkcg_activate_policy()\nallocates blkg_policy_data (pd) for all blkgs attached to the queue.\nHowever, blkcg_activate_policy() may race with concurrent blkcg deletion,\nleading to use-after-free and memory leak issues.\n\nThe use-after-free occurs in the following race:\n\nT1 (blkcg_activate_policy):\n  - Successfully allocates pd for blkg1 (loop0-\u003equeue, blkcgA)\n  - Fails to allocate pd for blkg2 (loop0-\u003equeue, blkcgB)\n  - Enters the enomem rollback path to release blkg1 resources\n\nT2 (blkcg deletion):\n  - blkcgA is deleted concurrently\n  - blkg1 is freed via blkg_free_workfn()\n  - blkg1-\u003epd is freed\n\nT1 (continued):\n  - Rollback path accesses blkg1-\u003epd-\u003eonline after pd is freed\n  - Triggers use-after-free\n\nIn addition, blkg_free_workfn() frees pd before removing the blkg from\nq-\u003eblkg_list. This allows blkcg_activate_policy() to allocate a new pd\nfor a blkg that is being destroyed, leaving the newly allocated pd\nunreachable when the blkg is finally freed.\n\nFix these races by extending blkcg_mutex coverage to serialize\nblkcg_activate_policy() rollback and blkg destruction, ensuring pd\nlifecycle is synchronized with blkg list visibility.",
  "id": "CVE-2026-90326",
  "modified": "2026-09-19T03:30:39.586472884Z",
  "published": "2026-09-17T16:08:41.374Z",
  "references": [
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/083b58373463a6e5ee60ecb135269348f68ad7df"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/2cf9f50a38c1839e549a08e22aa35e8d69e2c8fd"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/5313d4d41739b0cb63000747c97bb1217ac45f3e"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/ac34e655dffa74349d885a43d098115336f53842"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/b5dae1cd0d8368b4338430ff93403df67f0b8bcc"
    },
    {
      "type": "ADVISORY",
      "url": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/90xxx/CVE-2026-90326.json"
    },
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-90326"
    },
    {
      "type": "PACKAGE",
      "url": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
    }
  ],
  "schema_version": "1.9.0",
  "severity": [
    {
      "score": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
      "type": "CVSS_V3"
    }
  ],
  "summary": "blk-cgroup: fix race between policy activation and blkg destruction"
}