{
  "threat_severity" : "Moderate",
  "public_date" : "2026-09-11T00:00:00Z",
  "bugzilla" : {
    "description" : "kernel: ocfs2: bound namelen in dlm_migrate_request_handler",
    "id" : "2532097",
    "url" : "https://bugzilla.redhat.com/show_bug.cgi?id=2532097"
  },
  "cvss3" : {
    "cvss3_base_score" : "5.5",
    "cvss3_scoring_vector" : "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H",
    "status" : "draft"
  },
  "cwe" : "CWE-120",
  "details" : [ "In the Linux kernel, the following vulnerability has been resolved:\nocfs2: bound namelen in dlm_migrate_request_handler\nPatch series \"ocfs2/dlm: bound peer-controlled lengths in the o2dlm\".\nThe o2dlm receive handlers trust u8 length and count fields from the wire\nwithout bounding them, so a node in a DLM domain can corrupt or panic any\nother node with a malformed message.  Three defects:\n- dlm_migrate_request_handler() passes migrate->namelen unchecked to\ndlm_init_mle(), which memcpy()s it into the 32-byte mname[] of an\no2dlm_mle slab object: a heap out-of-bounds write of up to ~215\nattacker-controlled bytes.\n- dlm_mig_lockres_handler() passes mres->lockname_len unchecked to\ndlm_init_lockres(), which memcpy()s it into the 32-byte o2dlm_lockname\nslab object: a heap out-of-bounds write of up to ~223 bytes.\n- the same handler trusts mres->num_locks without checking that the\nmessage is large enough to hold that many entries, so\ndlm_process_recovery_data() walks mres->ml[] past the kmalloc(data_len)\ncopy and trips a BUG_ON (an out-of-bounds read ending in a panic).\nThe other o2dlm receive handlers already reject an oversized name; the\nmigration and recovery handlers have omitted it since the DLM was added\n(see the Fixes tags).  Patch 1 bounds namelen; patch 2 validates\nlockname_len, num_locks, and the payload size.  Conforming recovery and\nmigration traffic is unaffected.\no2net authenticates peers only by the DLM domain key, so any node that has\njoined the domain -- including a compromised or malicious member -- can\nsend these messages.  There is no local trigger; the attacker must already\nbe a member of the cluster.\nEach sink was confirmed under KASAN with an out-of-tree module mirroring\nit exactly -- a kmem_cache/kmalloc of the real destination size, then the\nsame unclamped memcpy/loop: slab-out-of-bounds Write for the two writes,\nRead for the recovery walk, and a panic.  A userspace AddressSanitizer\nbuild faults identically under -m32 and -m64.  Scrubbed logs are available\non request.\nI reported this privately to security@kernel.org and the ocfs2 maintainers\non 2026-06-20; with no response after the standard embargo period I am\nposting the fix publicly.  I have no embargo requirement.\nThis patch (of 2):\nA node receiving a DLM_MIGRATE_REQUEST message trusts the peer-supplied\nname length (migrate->namelen) without bounding it.  dlm_init_mle() then\ncopies that many bytes into the fixed DLM_LOCKID_NAME_MAX-byte mname[]\narray of an o2dlm_mle slab object, so a malformed message from a cluster\npeer overflows the slab object by up to ~215 bytes: a heap out-of-bounds\nwrite of attacker-controlled data, reachable by any node in the domain.\nReject an oversized name, the way dlm_master_request_handler() and the\nother o2dlm receive handlers already do; the migration handler omits the\ncheck entirely.  Conforming messages are unaffected.", "A flaw was found in ocfs2 in the Linux kernel. A malicious or compromised node within a Distributed Lock Manager (DLM) cluster can send specially crafted messages with unchecked length fields. This can lead to a heap out-of-bounds write, potentially allowing for arbitrary code execution, or an out-of-bounds read, which can cause a kernel panic and result in a Denial of Service (DoS)." ],
  "package_state" : [ {
    "product_name" : "Red Hat Enterprise Linux 10",
    "fix_state" : "Not affected",
    "package_name" : "kernel",
    "cpe" : "cpe:/o:redhat:enterprise_linux:10"
  }, {
    "product_name" : "Red Hat Enterprise Linux 10",
    "fix_state" : "Not affected",
    "package_name" : "kernel-rt",
    "cpe" : "cpe:/o:redhat:enterprise_linux:10"
  }, {
    "product_name" : "Red Hat Enterprise Linux 6",
    "fix_state" : "Not affected",
    "package_name" : "kernel",
    "cpe" : "cpe:/o:redhat:enterprise_linux:6"
  }, {
    "product_name" : "Red Hat Enterprise Linux 7",
    "fix_state" : "Not affected",
    "package_name" : "kernel",
    "cpe" : "cpe:/o:redhat:enterprise_linux:7"
  }, {
    "product_name" : "Red Hat Enterprise Linux 7",
    "fix_state" : "Not affected",
    "package_name" : "kernel-rt",
    "cpe" : "cpe:/o:redhat:enterprise_linux:7"
  }, {
    "product_name" : "Red Hat Enterprise Linux 8",
    "fix_state" : "Not affected",
    "package_name" : "kernel",
    "cpe" : "cpe:/o:redhat:enterprise_linux:8"
  }, {
    "product_name" : "Red Hat Enterprise Linux 8",
    "fix_state" : "Not affected",
    "package_name" : "kernel-rt",
    "cpe" : "cpe:/o:redhat:enterprise_linux:8"
  }, {
    "product_name" : "Red Hat Enterprise Linux 9",
    "fix_state" : "Not affected",
    "package_name" : "kernel",
    "cpe" : "cpe:/o:redhat:enterprise_linux:9"
  }, {
    "product_name" : "Red Hat Enterprise Linux 9",
    "fix_state" : "Not affected",
    "package_name" : "kernel-rt",
    "cpe" : "cpe:/o:redhat:enterprise_linux:9"
  }, {
    "product_name" : "Red Hat OpenShift Container Platform 4",
    "fix_state" : "Not affected",
    "package_name" : "openshift/ose-rhel-coreos-8",
    "cpe" : "cpe:/a:redhat:openshift:4"
  }, {
    "product_name" : "Red Hat OpenShift Container Platform 4",
    "fix_state" : "Not affected",
    "package_name" : "openshift/ose-rhel-coreos-9",
    "cpe" : "cpe:/a:redhat:openshift:4"
  } ],
  "references" : [ "https://www.cve.org/CVERecord?id=CVE-2026-89495\nhttps://nvd.nist.gov/vuln/detail/CVE-2026-89495\nhttps://git.kernel.org/pub/scm/linux/security/vulns.git/plain/cve/published/2026/CVE-2026-89495.mbox" ],
  "name" : "CVE-2026-89495",
  "csaw" : false
}