Skip to main content

Linux Kernel EUVDEUVD-2026-81987

| CVE-2026-90326 HIGH
2026-09-17 Linux GHSA-qj9w-qwpx-8wfp
7.8
CVSS 3.1 · Vendor: Linux
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Gain local privileged shell
  2. Delivery
    Rapidly switch device IO scheduler
  3. Exploit
    Concurrently delete blkcg cgroup
  4. Execution
    Race rollback vs blkg_free_workfn
  5. Persist
    Access freed blkg->pd (UAF)
  6. Impact
    Kernel memory corruption / crash

Vulnerability Assessment

Exploitation Conditions

Exploitation requires local access with sufficient privilege to switch a block device's IO scheduler (writing /sys/block/<dev>/queue/scheduler, which invokes blkcg_activate_policy - normally root/CAP_SYS_ADMIN) AND to trigger concurrent blkcg (block cgroup) deletion. The UAF is reachable only through the ENOMEM rollback path of blkcg_activate_policy, so the attacker must induce a policy-data allocation failure for one blkg while another blkg's blkcg is being deleted - a tight timing window. Kernels must have CONFIG_BLK_CGROUP enabled (default in most distributions) and be at an affected version prior to the fix (before 6.1.17 / 6.2.4 / 6.18.52 / 7.2.6 / 7.3-rc1). Limiting factors: no remote vector, privileged local prerequisite, and a hard-to-win race under memory pressure.

Impact

This is a locally-triggered use-after-free plus memory leak in the Linux kernel block-cgroup (blk-cgroup) layer, not a remotely exploitable flaw. The vendor CVSS 3.1 vector (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H = 7.8) overstates real-world risk on two axes. First, the flaw is a race between blkcg_activate_policy() rollback and concurrent blkg destruction - races are inherently harder to win reliably than the AC:L rating implies (AC:H is more defensible). Second, the primary observable effect is a KASAN use-after-free access to blkg1->pd->online after the pd is freed, plus an unreachable-pd memory leak; both manifest as a kernel crash/resource exhaustion (denial of service), so the C:H/I:H confidentiality/integrity claims are not well supported - a DoS-primary C:N/I:N/A:H impact fits the description far better. There is no EPSS score, no CISA KEV listing, and no public exploit code in the provided data, so exploitation status is 'no public exploit identified.' Triggering requires local privilege to switch the IO scheduler (writing /sys/block/*/queue/scheduler, typically root) while concurrently driving blkcg deletion, further limiting practical risk. Net: a legitimate reliability/security bug worth patching, but a mid-severity local DoS in practice rather than the high-CVSS 7.8 the vendor score suggests. Note the 'Information Disclosure' tag conflicts with the actual UAF/DoS nature of the flaw.

Exploit ScenarioDerived

A local user or container with the ability to change a block device's IO scheduler and manage blkcg cgroups repeatedly switches the scheduler (invoking blkcg_activate_policy) while concurrently deleting a blkcg, forcing the ENOMEM rollback path to dereference a blkg_policy_data structure that the deletion path has already freed. Winning the race yields a use-after-free that corrupts kernel memory and crashes the host, or leaks policy-data memory over repeated attempts. No public proof-of-concept is identified in the available data, and reliable exploitation depends on hitting the allocation-failure rollback window.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 18, 2026

A local use-after-free combined with a memory leak in the Linux kernel's blk-cgroup (block cgroup) subsystem allows a privileged local actor to crash or destabilize the kernel by racing IO-scheduler activation against concurrent block-cgroup deletion. Exploitation requires writing to /sys/block/<dev>/queue/scheduler (normally root/CAP_SYS_ADMIN) while simultaneously triggering blkcg teardown for a different blkg, and the corrupting path is only reachable through the ENOMEM rollback branch of blkcg_activate_policy(), so the attacker must also induce a policy-data allocation failure for one blkg during the window. Impact is limited to availability (kernel panic/UAF); there is no remote vector, no confidentiality or integrity loss, no public exploit identified at time of analysis, and no confirmed active exploitation.

RemediationAI

Apply the upstream kernel fix. Vendor-released patch: Linux 6.1.17, Linux 6.2.4, Linux 6.18.52, Linux 7.2.6, and Linux 7.3-rc1; the corresponding stable backports are referenced at https://git.kernel.org/stable/c/083b58373463a6e5ee60ecb135269348f68ad7df, https://git.kernel.org/stable/c/b5dae1cd0d8368b4338430ff93403df67f0b8bcc, https://git.kernel.org/stable/c/5313d4d41739b0cb63000747c97bb1217ac45f3e, https://git.kernel.org/stable/c/ac34e655dffa74349d885a43d098115336f53842, and https://git.kernel.org/stable/c/2cf9f50a38c1839e549a08e22aa35e8d69e2c8fd. If patching must be deferred, the practical compensating controls are to restrict write access to /sys/block/*/queue/scheduler so that only trusted, non-concurrent administrative contexts can change IO schedulers (this removes the normal trigger primitive but does not protect a privileged attacker); avoid concurrent block-cgroup creation/deletion during scheduler changes by serializing cgroup lifecycle operations in orchestration tooling (reduces the race window but cannot eliminate it under memory pressure); and, on systems that do not need cgroup-based IO control (for example, kernels built without container or systemd IO-accounting requirements), building the kernel without CONFIG_BLK_CGROUP removes the vulnerable code entirely at the cost of losing blkio cgroup controllers, IO throttling, and some container/storage QoS functionality. Avoid memory-pressure conditions during scheduler switches where feasible, since an induced pd allocation failure is required to reach the vulnerable rollback path. Monitor https://nvd.nist.gov/vuln/detail/CVE-2026-90326 for updated vendor guidance.

Affected VersionsENISA

Linux patch: 7.3-rc1
Linux f1c006f1c6850c14040f8337753a63119bba39b9 <2cf9f50a38c1839e549a08e22aa35e8d69e2c8fd
Linux bfe46d2efe46c5c952f982e2ca94fe2ec5e58e2a <083b58373463a6e5ee60ecb135269348f68ad7df
Linux 81c1188905f88b77743d1fdeeedfc8cb7b67787d <b5dae1cd0d8368b4338430ff93403df67f0b8bcc
Linux patch: 0
Linux 6.2.3 <6.2.4
Linux f1c006f1c6850c14040f8337753a63119bba39b9 <5313d4d41739b0cb63000747c97bb1217ac45f3e
Linux patch: 6.18.52
Linux patch: 7.2.6
Linux patch: 6.1.17
Linux 6.3
Linux f1c006f1c6850c14040f8337753a63119bba39b9 <ac34e655dffa74349d885a43d098115336f53842
Linux patch: 6.2.4
Linux 6.1.16 <6.1.17

Affected Packages

euvd linux fix: 6.1.17, 6.2.4

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The blk-cgroup layer attaches per-cgroup policy data (blkg_policy_data, 'pd') to block-cgroup objects ('blkg') that belong to a request queue. When an IO scheduler is switched on a block device, blkcg_activate_policy() walks all blkgs on the queue and allocates a pd for each; if any allocation fails, it enters an enomem rollback path that frees the pd objects it already allocated. That rollback is not serialized against blkg destruction: blkg_free_workfn() can free a blkg and its pd concurrently, so the rollback path's dereference of blkg1->pd->online becomes a use-after-free. A second ordering defect compounds this - blkg_free_workfn() releases the pd before unlinking the blkg from q->blkg_list, so blkcg_activate_policy() can allocate a fresh pd for a blkg that is already being destroyed, and that pd becomes unreachable when the blkg is finally freed (memory leak). The upstream fix extends blkcg_mutex coverage so that policy activation/rollback and blkg destruction are serialized and pd lifetime is synchronized with blkg list visibility. The disclosed CWE field is unset, but the root-cause class is a concurrency use-after-free (CWE-416) with an accompanying resource leak (CWE-401) in code gated by CONFIG_BLK_CGROUP, which most mainstream distributions enable by default.

Know when the next one hits your stack

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (Linux) PRIMARY 7.8 HIGH
AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 4.7 MEDIUM

Local-only race (AC:H) needing privilege to switch IO scheduler and manage cgroups (PR:L); crash/leak DoS-primary so C:N/I:N and A:H.

3.1 AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H
4.0 AV:L/AC:H/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE HIGH
Red Hat 7.0 MEDIUM

Primary rating from Vendor (Linux).

CVSS VectorVendor: Linux

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

4
CVSS changed
Sep 18, 2026 - 18:22 NVD
7.8 (HIGH)
Patch available
Sep 17, 2026 - 17:19 EUVD
CVE Published
Sep 17, 2026 - 16:08 cve.org
HIGH 7.8
CVE Published
Sep 17, 2026 - 16:08 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

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

blk-cgroup: fix race between policy activation and blkg destruction

When switching an IO scheduler on a block device, blkcg_activate_policy() allocates blkg_policy_data (pd) for all blkgs attached to the queue. However, blkcg_activate_policy() may race with concurrent blkcg deletion, leading to use-after-free and memory leak issues.

The use-after-free occurs in the following race:

T1 (blkcg_activate_policy):

  • Successfully allocates pd for blkg1 (loop0->queue, blkcgA)
  • Fails to allocate pd for blkg2 (loop0->queue, blkcgB)
  • Enters the enomem rollback path to release blkg1 resources

T2 (blkcg deletion):

  • blkcgA is deleted concurrently
  • blkg1 is freed via blkg_free_workfn()
  • blkg1->pd is freed

T1 (continued):

  • Rollback path accesses blkg1->pd->online after pd is freed
  • Triggers use-after-free

In addition, blkg_free_workfn() frees pd before removing the blkg from q->blkg_list. This allows blkcg_activate_policy() to allocate a new pd for a blkg that is being destroyed, leaving the newly allocated pd unreachable when the blkg is finally freed.

Fix these races by extending blkcg_mutex coverage to serialize blkcg_activate_policy() rollback and blkg destruction, ensuring pd lifecycle is synchronized with blkg list visibility.

Executive ViewAI

Why It Matters

A use-after-free vulnerability in the Linux kernel's block cgroup subsystem (CVE-2026-90326) can allow a privileged local user to crash the kernel, causing a denial of service. While exploitation requires root or CAP_SYS_ADMIN privileges and no public exploit code exists, the impact is limited to availability and could disrupt critical systems if an attacker gains elevated access. A vendor patch is available and should be applied promptly to mitigate the risk.

Business Impact: Medium
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 90% exploitable
Prevalence
Medium
blk-cgroup ships in most Linux kernels but IO-scheduler-switch vs blkg-delete race is niche
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact
Medium

Priority Score

39
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +39
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Vendor StatusVendor

SUSE

Severity: Important
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 16.0 Affected

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy