CVE-2026-90322: ocfs2/cluster: keep heartbeat local node stable

Published Sep 17, 2026
·
Updated

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

ocfs2/cluster: keep heartbeat local node stable

o2nmnodelocalstore() handles local=0 by stopping o2net and setting cllocalnode to O2NMINVALIDNODENUM, but it leaves clhaslocal set. That stale state makes o2nmthisnode() return 255, blocks a later local=1 attempt with -EBUSY, and can feed 255 to heartbeat users that call o2nmthisnode() dynamically.

Clearing clhaslocal is required when the local node is reset. But heartbeat threads can still be running at that point. They pin the local node config item at startup, yet o2hbdodiskheartbeat() and thread teardown re-read o2nmthisnode() for the local slot and for o2nmundependthisnode(). Once local=0 has cleared the live local-node state, those dynamic reads return O2NMMAXNODES, which is also the invalid node number 255.

Store the local node number in the heartbeat region when the region starts. Use that stable node for heartbeat slot writes/checks, negotiation messages, and the final configfs undepend. Stop the heartbeat loop when the current local node no longer matches the stored node, and clear clhaslocal together with cllocalnode in the local=0 path so nodemanager state matches node removal.

Validation reproduced this kernel report: KASAN slab-out-of-bounds in o2hbdodiskheartbeat+0x372/0xb30 RIP: 0010:memset+0xf/0x20 Read of size 8 Call trace: dumpstacklvl+0x66/0xa0 printreport+0xd0/0x630 o2hbdodiskheartbeat+0x372/0xb30 (fs/ocfs2/cluster/heartbeat.c:1079) srsoaliasreturnthunk+0x5/0xfbef5 virtaddrvalid+0x188/0x2f0 kasanreport+0xe4/0x120 o2hbdodiskheartbeat+0x5/0xb30 (fs/ocfs2/cluster/heartbeat.c:1079) o2hbthread+0x14e/0x770 kthreadaffinenode+0x139/0x180 lockdephardirqsonprepare+0xda/0x190 tracehardirqson+0x18/0x130 kthread+0x19d/0x1e0 retfromfork+0x37a/0x4d0 switchto+0x2d5/0x6f0 retfromforkasm+0x1a/0x30

Affected Software

1 affected component
Linux Linux kernel

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade Linux kernel to a version that resolves this vulnerability.

    Patch KASAN slab-out-of-bounds in o2hb_do_disk_heartbeat+0x372/0xb30

Event History

Sep 17, 2026
CVE Published
via MITRE·04:08 PM
Data Sourced
via MITRE·04:08 PM
Description

Frequently Asked Questions

1

Which systems are affected by this state-management issue?

Systems using the OCFS2 cluster stack can encounter it when the configured local node is reset to local=0 while heartbeat threads are still running. The stale local-node state can affect later attempts to set local=1 and heartbeat users that obtain the local node dynamically.

2

What symptoms indicate that the issue has occurred?

After local=0, o2nm_this_node() can return the invalid node number 255. A subsequent local=1 attempt can fail with -EBUSY, and heartbeat code may use node 255 for heartbeat slot handling or final configuration cleanup.

3

What operational condition is relevant during mitigation or configuration changes?

Avoid resetting the local-node setting while heartbeat activity remains in progress where possible. The fix stores a stable node number when a heartbeat region starts and stops the heartbeat loop if the current local node no longer matches that stored value.

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