CVE-2026-89495: ocfs2: bound namelen in dlm_migrate_request_handler

Published Sep 11, 2026
·
Updated

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

ocfs2: bound namelen in dlmmigraterequesthandler

Patch series "ocfs2/dlm: bound peer-controlled lengths in the o2dlm".

The o2dlm receive handlers trust u8 length and count fields from the wire without bounding them, so a node in a DLM domain can corrupt or panic any other node with a malformed message. Three defects:

- dlmmigraterequesthandler() passes migrate->namelen unchecked to dlminitmle(), which memcpy()s it into the 32-byte mname[] of an o2dlmmle slab object: a heap out-of-bounds write of up to ~215 attacker-controlled bytes.

- dlmmiglockreshandler() passes mres->locknamelen unchecked to dlminitlockres(), which memcpy()s it into the 32-byte o2dlmlockname slab object: a heap out-of-bounds write of up to ~223 bytes.

- the same handler trusts mres->numlocks without checking that the message is large enough to hold that many entries, so dlmprocessrecoverydata() walks mres->ml[] past the kmalloc(datalen) copy and trips a BUGON (an out-of-bounds read ending in a panic).

The other o2dlm receive handlers already reject an oversized name; the migration and recovery handlers have omitted it since the DLM was added (see the Fixes tags). Patch 1 bounds namelen; patch 2 validates locknamelen, numlocks, and the payload size. Conforming recovery and migration traffic is unaffected.

o2net authenticates peers only by the DLM domain key, so any node that has joined the domain -- including a compromised or malicious member -- can send these messages. There is no local trigger; the attacker must already be a member of the cluster.

Each sink was confirmed under KASAN with an out-of-tree module mirroring it exactly -- a kmemcache/kmalloc of the real destination size, then the same unclamped memcpy/loop: slab-out-of-bounds Write for the two writes, Read for the recovery walk, and a panic. A userspace AddressSanitizer build faults identically under -m32 and -m64. Scrubbed logs are available on request.

I reported this privately to security@kernel.org and the ocfs2 maintainers on 2026-06-20; with no response after the standard embargo period I am posting the fix publicly. I have no embargo requirement.

This patch (of 2):

A node receiving a DLMMIGRATEREQUEST message trusts the peer-supplied name length (migrate->namelen) without bounding it. dlminitmle() then copies that many bytes into the fixed DLMLOCKIDNAMEMAX-byte mname[] array of an o2dlmmle slab object, so a malformed message from a cluster peer overflows the slab object by up to ~215 bytes: a heap out-of-bounds write of attacker-controlled data, reachable by any node in the domain.

Reject an oversized name, the way dlmmasterrequesthandler() and the other o2dlm receive handlers already do; the migration handler omits the check entirely. Conforming messages are unaffected.

Affected Software

1 affected component
The Linux Kernel Project Linux kernel (ocfs2 o2dlm)

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade ocfs2/dlm to a version that resolves this vulnerability.

    Patch Patch 1 bounds namelen; patch 2 validates
  2. Upgrade

    Upgrade ocfs2/dlm: bound peer-controlled lengths in the o2dlm to a version that resolves this vulnerability.

    Patch ocfs2/dlm: bound peer-controlled lengths in the o2dlm
  3. Compensating control

    Mitigate by ensuring only trusted cluster members (nodes) that can legitimately participate in the DLM domain key exchange are allowed to send/receive DLM_MIGRATE_REQUEST messages, since a node receiving these peer-supplied messages trusts attacker-controlled lengths/counts and can corrupt/panic.

Event History

Sep 11, 2026
CVE Published
via MITRE·07:43 PM
Data Sourced
via MITRE·07:43 PM
Description

Frequently Asked Questions

1

Which systems are exposed to this issue?

Systems participating in an OCFS2/o2dlm DLM domain are exposed, because the affected handlers process messages received from peer nodes in that domain. A malformed message from one domain member can target other nodes.

2

What access does an attacker need to exploit it?

The attacker needs to be able to send malformed o2dlm migration or recovery messages as a node in the relevant DLM domain. The described attack path is peer-to-peer protocol input, not local application input.

3

What impact can a malicious DLM peer cause?

Unchecked name lengths can cause heap out-of-bounds writes with attacker-controlled data, and an unchecked lock count can lead to an out-of-bounds read that triggers a kernel panic. This can corrupt or panic other nodes in the DLM domain.

4

How can I determine whether a system is affected?

Determine whether the system uses OCFS2 and participates in an o2dlm DLM domain, then verify whether the kernel includes the referenced fixes. The affected code paths are dlm_migrate_request_handler() and dlm_mig_lockres_handler().

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203