Skip to main content

Linux Kernel CVE-2026-90301

| EUVDEUVD-2026-81894 HIGH
2026-09-17 Linux GHSA-q5wj-37wf-cq7c
8.1
CVSS 3.1 · Vendor: Linux
View

Attack ChainAIDerived

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

  1. Access
    Gain cluster-admin/configfs access on OCFS2 node
  2. Delivery
    Register heartbeat region via make_item()
  3. Exploit
    Trigger failed-start or rmdir teardown
  4. Execution
    Peer o2net negotiate callback races region free
  5. Persist
    Stale timer writes freed region in __run_timers
  6. Impact
    Kernel memory corruption and node crash (DoS)

Vulnerability Assessment

Exploitation Conditions

Requires a running OCFS2 cluster node with the o2cb/o2net stack and heartbeat regions managed via configfs (make_item/dev_store), which needs cluster-admin/CAP_SYS_ADMIN privileges to configure. The UAF is triggered by racing a heartbeat region's failed-start or teardown (rmdir) path against an in-flight o2net NEGO_APPROVE/NEGO_TIMEOUT handler callback from a peer node that arms or queues the region's delayed timeout work. Limiting factors: the race window is narrow (AC:H) and depends on precise timing between local region lifecycle transitions and remote negotiate callbacks; it is not reachable against a default single-host system without OCFS2 clustering configured, and only cluster peers can drive the network side of the race.

Impact

This is a Linux kernel ocfs2 o2hb (cluster heartbeat) use-after-free driven by a lifetime/race bug (CWE-416 + CWE-362): struct o2hb_region is published as private data for the o2net NEGO_TIMEOUT/NEGO_APPROVE handlers by make_item() before dev_store() finishes building the runtime, and region_release() fails to drain in-flight o2net rx work before freeing reg - reproduced as a KASAN slab-use-after-free WRITE of size 8 in __run_timers (a dangling timer UAF). The vendor scores this 8.1 (High) with AV:N/AC:H/PR:N/UI:N/C:H/I:H/A:H, but several signals conflict with that magnitude. First, the crash artifact is a stale-timer write leading to memory corruption/oops - this is crash-primary, so C:H and I:H are overstated; realistic impact is availability (A:H). Second, AV:N/PR:N understates prerequisites: the race window is opened by local configfs region lifecycle operations (make_item/rmdir/failed start), which require cluster-admin/CAP_SYS_ADMIN, so PR should be H and the practical vector is local, with the o2net peer callback merely acting as the concurrent racer. There is no EPSS, no CISA KEV entry, and no public exploit - this is 'no public exploit identified at time of analysis.' Combined with a hard-to-win teardown/startup race (AC:H is the one vendor metric that fits) and a niche affected component, real-world priority is LOW despite the High CVSS. My independent estimate is ~4.4.

Exploit ScenarioDerived

On an OCFS2 cluster node, a local administrator (or automation) tears down or fails to start a heartbeat region via configfs (rmdir/failed dev_store) at the same moment a peer node's NEGO_APPROVE/NEGO_TIMEOUT o2net callback arms or queues the region's delayed timeout work. The freed o2hb_region is then written to by an expiring timer (__run_timers), corrupting kernel memory and crashing the node. No public exploit code exists; the timing window is narrow (AC:H) and setup requires cluster-admin control of heartbeat regions.

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

Use-after-free in the Linux kernel's OCFS2 o2hb heartbeat-region handling can crash or destabilize a clustered OCFS2 node when a failed region start or teardown races with in-flight o2net NEGO_APPROVE or NEGO_TIMEOUT callbacks from a peer. The independent assessment rates this as local access with high privileges (PR:H) and high attack complexity (AC:H), affecting availability only, because the attacker must already control OCFS2 configfs heartbeat configuration on a running cluster node. No public exploit is identified at time of analysis, and vendor fixes are available via upstream stable commits.

RemediationAI

Vendor-released patch: Linux 7.2.6 and 7.3-rc1 per EUVD, with upstream stable commits b5a2907bdeced0949bcddc84b95ba7d4cb93841b and 011291b70ba4832e136b7b581825b2bc0f525bf6 addressing the ocfs2 o2hb lifetime and teardown race. Apply the corresponding kernel update from your distribution or stable tree. If immediate patching is not possible, restrict OCFS2 cluster membership and configfs access to trusted cluster administrators with CAP_SYS_ADMIN, avoid failed heartbeat-region starts or rmdir operations while peers are active, and temporarily disable OCFS2 heartbeat regions or unmount OCFS2 if clustering is not required; these compensating controls trade away cluster availability or functionality. Monitor kernel logs for KASAN use-after-free reports involving __run_timers. See https://git.kernel.org/stable/c/b5a2907bdeced0949bcddc84b95ba7d4cb93841b, https://git.kernel.org/stable/c/011291b70ba4832e136b7b581825b2bc0f525bf6, and https://nvd.nist.gov/vuln/detail/CVE-2026-90301.

Affected VersionsENISA

Linux 34069b886f95356d68bf8315fa648c4ab3193cdd <011291b70ba4832e136b7b581825b2bc0f525bf6
Linux 4.7
Linux patch: 7.3-rc1
Linux 34069b886f95356d68bf8315fa648c4ab3193cdd <b5a2907bdeced0949bcddc84b95ba7d4cb93841b
Linux patch: 7.2.6
Linux patch: 0

Affected Packages

euvd linux no fix

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 OCFS2 o2hb subsystem manages heartbeat regions for clustered OCFS2, with regions created and configured through configfs. make_item() publishes struct o2hb_region as private data for the o2net NEGO_TIMEOUT and NEGO_APPROVE handlers before dev_store() has finished building the heartbeat runtime. If a region start fails or a region is removed via rmdir while a remote peer's negotiate callback is already in flight, the callback can queue or arm the region's delayed timeout work after teardown has begun, or even after the final configfs reference is dropped. o2net_unregister_handler_list() blocks future handler lookups but does not drain sc_rx_work that already obtained a handler reference, and local listener teardown can occur while the o2net ordered workqueue is inside destroy_workqueue(). This is a race condition (CWE-362) that leads to use-after-free (CWE-416) of the region or timer. Validation reproduced a KASAN slab-use-after-free WRITE of size 8 in __run_timers via a dangling timer. CPE data identifies affected Linux kernel packages under cpe:2.3:a:linux:linux:*:*:*:*:*:*:*:*.

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 8.1 HIGH
AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 4.1 MEDIUM

Race window opened by local cluster-admin configfs region lifecycle (AV:L, PR:H, AC:H); crash-primary timer UAF yields availability impact only (C:N/I:N/A:H).

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

Primary rating from Vendor (Linux).

CVSS VectorVendor: Linux

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

Lifecycle Timeline

4
CVSS changed
Sep 18, 2026 - 18:22 NVD
8.1 (HIGH)
Patch available
Sep 17, 2026 - 17:19 EUVD
CVE Published
Sep 17, 2026 - 16:08 cve.org
HIGH 8.1
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:

ocfs2: o2hb: quiesce negotiate handlers and timeout work

Heartbeat regions publish struct o2hb_region as the private data for the NEGO_TIMEOUT and NEGO_APPROVE o2net handlers as soon as make_item() creates the configfs region. The approve handler can call o2hb_arm_timeout(), so a peer can touch the region timeout work before dev_store() has finished building the heartbeat runtime, or after teardown has started to shut that runtime back down.

The final configfs put also has to keep reg alive until the last in-flight o2net callback drops its handler reference. o2net_unregister_handler_list() blocks future handler lookups, but it does not wait for sc_rx_work that already passed o2net_handler_get(). That drain needs to cover local listener teardown as well, where the o2net ordered workqueue may already be inside destroy_workqueue().

Fix the lifetime rule in both directions. Initialize the region delayed works before publishing reg through the o2net handler table, keep new or stopping regions non-armable with hr_stopping, and quiesce both delayed works on failed-start and teardown paths even when no heartbeat thread is left to call o2hb_disarm_timeout(). Then unregister handlers before tearing down handler-visible region state and make the drain wait for the active or destroying o2net ordered workqueue before release frees reg.

The buggy scenario involves two paths, with each column showing the order within that path:

region lifecycle: late negotiate callback:

  1. make_item() registers the 1. o2net_process_message() gets a

region handlers before heartbeat handler for reg. dev_store() has built a 2. The callback runs after the lookup runnable heartbeat context. lock is dropped and dereferences reg.

  1. A failed start or rmdir 3. An approve or timeout path tries to

stops the heartbeat thread, queue reg's delayed work, or release quiesces existing work, and races the callback body after handler drops the final configfs ref. unregister.

  1. region_release() must drain 4. The callback or delayed work can

handler-visible o2net rx work outlive reg unless lifecycle code before freeing reg. keeps the region non-armable and drains the active-or-destroying o2net workqueue.

Validation reproduced this kernel report: KASAN slab-use-after-free in __run_timers+0x22c/0x5b0 Write of size 8 Call trace: dump_stack_lvl+0x66/0xa0 print_report+0xce/0x630 __run_timers+0x22c/0x5b0 kasan_report+0xe0/0x110 _raw_spin_unlock_irqrestore+0x27/0x60 try_to_wake_up+0x191/0xf70 timer_expire_remote+0xae/0xf0 run_timer_softirq+0x19b/0x1a0 handle_softirqs+0x156/0x660 __irq_exit_rcu+0xc4/0x160 irq_exit_rcu+0xe/0x20 sysvec_apic_timer_interrupt+0x6c/0x80 asm_sysvec_apic_timer_interrupt+0x1a/0x20

Allocated by task stack: kasan_save_stack+0x33/0x60 kasan_save_track+0x14/0x30 __kasan_kmalloc+0xaa/0xb0 o2hb_heartbeat_group_make_item+0x3c/0x600

Executive ViewAI

Why It Matters

Organizations operating Linux clusters with OCFS2 shared storage face a high-severity availability risk: a memory corruption flaw in the kernel's OCFS2 heartbeat handling can crash or destabilize a clustered node. Exploitation requires an attacker to already have high privileges and control heartbeat configuration on a running node, and no public exploit has been identified. Leadership should prioritize patching to prevent potential cluster downtime, while recognizing that the high privilege and complexity requirements limit the attack surface.

Business Impact: Medium
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 91% exploitable
Prevalence
Low
OCFS2 is a niche clustered filesystem, rare outside specific enterprise HA deployments
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
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
Medium

Priority Score

40
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +40
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