ZeroHour

CVE-2026-89494

niche

Heap out-of-bounds write in Linux kernel ocfs2 DLM lock migration handler

CVSS 3.1
9.8 critical
EPSS
Published
()
Modified
AI analysis

The Linux kernel's ocfs2 distributed lock manager fails to validate the peer-supplied dlm_migratable_lockres structure when handling a DLM_MIG_LOCKRES message during lock-resource migration. A malicious node in an OCFS2 cluster domain can send a message with an oversized lockname_len or num_locks, causing dlm_init_lockres() to copy up to attacker-chosen lengths into a fixed 32-byte slab object (a heap out-of-bounds write with potential for kernel memory corruption or code execution), and dlm_process_recovery_data() to read past the allocated message copy (triggering a BUG_ON kernel panic). Exploitation requires the attacker to be a node in the cluster domain or able to inject traffic into the cluster's lock-management network, and it affects any Linux system using the ocfs2 clustered filesystem with the unpatched kernel. There is no public proof of concept and no indication of exploitation in the wild. Conforming recovery and migration messages continue to work after the fix, which validates lockname_len, num_locks, and the payload size immediately after dlm_grab().

What to do: Apply a kernel update containing the ocfs2 DLM validation fix as soon as your distribution ships it. If patching is delayed, restrict cluster lock-management and heartbeat traffic so only trusted cluster nodes can reach it (firewall the DLM communication ports from non-cluster hosts), and verify that unneeded systems are not running ocfs2 at all. Check whether the ocfs2/dlm modules are loaded or the filesystem is mounted on internet-reachable or multi-tenant hosts.

Affected
Linux kernel (ocfs2/dlm cluster stack)
Estimated exposure
nicheLikely low thousands of deployments worldwide (exact count unknown) — OCFS2 is an opt-in clustered filesystem used mainly in specialized HA/Oracle-style setups rather than general servers, and there is no public census of ocfs2 cluster deployments, so precise counts are unknown.

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

In the Linux kernel, the following vulnerability has been resolved: ocfs2: validate lengths in dlm_mig_lockres_handler A node receiving a DLM_MIG_LOCKRES message trusts several fields of the peer-supplied dlm_migratable_lockres without validation. num_locks and lockname_len are bounded only on the sending side, and the message is never checked to actually carry num_locks migratable_lock entries. As a result dlm_process_recovery_data() walks mres->ml[0..num_locks) past the kmalloc(data_len) copy of the message (an out-of-bounds read that ends in a BUG_ON panic), and dlm_init_lockres() copies lockname_len bytes into the fixed 32-byte o2dlm_lockname slab object (a heap out-of-bounds write). Both are reachable by any node in the domain. Validate these fields right after dlm_grab(), before anything uses them -- including the not-joined error path, which already prints mres->lockname with the unbounded lockname_len as a %.*s precision. Reject the message unless lockname_len <= DLM_LOCKID_NAME_MAX, num_locks <= DLM_MAX_MIGRATABLE_LOCKS (the bound the sender already asserts), and the payload is large enough to hold the claimed locks. Conforming recovery and migration messages are unaffected.

Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

In the news

No ingested article mentions this CVE yet.