{"id":"CVE-2026-90326","published":"2026-09-17T17:17:30.673","lastModified":"2026-09-18T18:17:54.130","description":"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->queue, blkcgA)\n  - Fails to allocate pd for blkg2 (loop0->queue, 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->pd is freed\n\nT1 (continued):\n  - Rollback path accesses blkg1->pd->online after pd is freed\n  - Triggers use-after-free\n\nIn addition, blkg_free_workfn() frees pd before removing the blkg from\nq->blkg_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.","cvssScore":7.8,"cvssSeverity":"HIGH","cvssVector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","cwes":[],"vendors":[],"products":[],"references":[{"url":"https://git.kernel.org/stable/c/083b58373463a6e5ee60ecb135269348f68ad7df","tags":[]},{"url":"https://git.kernel.org/stable/c/2cf9f50a38c1839e549a08e22aa35e8d69e2c8fd","tags":[]},{"url":"https://git.kernel.org/stable/c/5313d4d41739b0cb63000747c97bb1217ac45f3e","tags":[]},{"url":"https://git.kernel.org/stable/c/ac34e655dffa74349d885a43d098115336f53842","tags":[]},{"url":"https://git.kernel.org/stable/c/b5dae1cd0d8368b4338430ff93403df67f0b8bcc","tags":[]}],"exploitRefs":[],"hasPoc":false,"ai":null}