{"answers":{"affected":"","exploited":"There is no known exploitation of CVE-2026-90322 in the wild and no public exploit code.","fix":"Apply the vendor's patch.","what":"CVE-2026-90322 is a memory corruption vulnerability in Linux, published on 17 Sep 2026. It can only be exploited from the same machine or local network, with no action from the victim."},"fix_prompt":"Check this codebase for CVE-2026-90322 and fix it if it is affected.\n\nWhat it is: CVE-2026-90322 is a memory corruption vulnerability in Linux, published on 17 Sep 2026. It can only be exploited from the same machine or local network, with no action from the victim.\nExploitation: There is no known exploitation of CVE-2026-90322 in the wild and no public exploit code.\n\nAffected product: Linux. No package-level version data is available, so check the vendor advisory linked from the reference page.\n\nTask:\n1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.\n2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.\n3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.\n4. Run the tests and summarise what changed and why.\n5. If nothing in the project is affected, say so and change nothing.\n\nReference: https://insights.sbomify.com/CVE-2026-90322/ (Markdown: https://insights.sbomify.com/CVE-2026-90322/index.md)","id":"CVE-2026-90322","markdown":"https://insights.sbomify.com/CVE-2026-90322/index.md","name":"CVE-2026-90322","record":{"aliases":["AZL-102906","BELL-CVE-2026-90322","DEBIAN-CVE-2026-90322","GHSA-p7qh-g4f5-gxq9","UBUNTU-CVE-2026-90322"],"analysis":{"component_type":"kernel","fix_type":"patch","impacts":["denial_of_service","code_execution"],"network_reachable":"adjacent_or_local","non_default_config":true,"product_category":"Linux kernel","requires_auth":"high_privilege","summary":"A local attacker with high privileges can trigger a slab-out-of-bounds write in the OCFS2 cluster heartbeat module, potentially causing a system crash or arbitrary code execution.","user_interaction":"not_required","vuln_class":"memory_corruption"},"analysis_generated_by":"qwen3.8-flash-next","assigner":"Linux","cpe":[],"cvss":{"score":null,"severity":null,"source":null,"vector":null,"version":null},"cwes":[],"description":"In the Linux kernel, the following vulnerability has been resolved:\n\nocfs2/cluster: keep heartbeat local node stable\n\no2nm_node_local_store() handles local=0 by stopping o2net and setting\ncl_local_node to O2NM_INVALID_NODE_NUM, but it leaves cl_has_local set. \nThat stale state makes o2nm_this_node() return 255, blocks a later local=1\nattempt with -EBUSY, and can feed 255 to heartbeat users that call\no2nm_this_node() dynamically.\n\nClearing cl_has_local is required when the local node is reset.  But\nheartbeat threads can still be running at that point.  They pin the local\nnode config item at startup, yet o2hb_do_disk_heartbeat() and thread\nteardown re-read o2nm_this_node() for the local slot and for\no2nm_undepend_this_node().  Once local=0 has cleared the live local-node\nstate, those dynamic reads return O2NM_MAX_NODES, which is also the\ninvalid node number 255.\n\nStore the local node number in the heartbeat region when the region\nstarts.  Use that stable node for heartbeat slot writes/checks,\nnegotiation messages, and the final configfs undepend.  Stop the heartbeat\nloop when the current local node no longer matches the stored node, and\nclear cl_has_local together with cl_local_node in the local=0 path so\nnodemanager state matches node removal.\n\nValidation reproduced this kernel report:\nKASAN slab-out-of-bounds in o2hb_do_disk_heartbeat+0x372/0xb30\nRIP: 0010:memset+0xf/0x20\nRead of size 8\nCall trace:\n  dump_stack_lvl+0x66/0xa0\n  print_report+0xd0/0x630\n  o2hb_do_disk_heartbeat+0x372/0xb30 (fs/ocfs2/cluster/heartbeat.c:1079)\n  srso_alias_return_thunk+0x5/0xfbef5\n  __virt_addr_valid+0x188/0x2f0\n  kasan_report+0xe4/0x120\n  o2hb_do_disk_heartbeat+0x5/0xb30 (fs/ocfs2/cluster/heartbeat.c:1079)\n  o2hb_thread+0x14e/0x770\n  kthread_affine_node+0x139/0x180\n  lockdep_hardirqs_on_prepare+0xda/0x190\n  trace_hardirqs_on+0x18/0x130\n  kthread+0x19d/0x1e0\n  ret_from_fork+0x37a/0x4d0\n  __switch_to+0x2d5/0x6f0\n  ret_from_fork_asm+0x1a/0x30","ecosystems":[],"exploits":{"exploitdb":0,"first_seen":null,"github_poc":0,"max_poc_stars":null,"metasploit":0,"nuclei":0,"refs":[],"tier":"none_known"},"has_fix":true,"headline":"ocfs2/cluster: keep heartbeat local node stable","id":"CVE-2026-90322","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":null,"product":null,"products":[],"type":"memory_corruption","year":"2026"},"n_packages":0,"n_references":5,"next":{"headline":"ublk: validate auto buf reg before taking uring_cmd","id":"CVE-2026-90323"},"packages":[],"prev":{"headline":"ocfs2: validate inline xattrs during inode block validation","id":"CVE-2026-90321"},"products":["Linux"],"published":"2026-09-17","related":[],"sources":[{"class":"attribution","licence":"CVE Terms of Use (MITRE)","name":"CVE List","prefix":"CVE"}],"ssvc":{"automatable":null,"exploitation":null,"technical_impact":null},"state":"PUBLISHED","updated":"2026-10-21","vendors":["Linux"]},"summary":"A local attacker with high privileges can trigger a slab-out-of-bounds write in the OCFS2 cluster heartbeat module, potentially causing a system crash or arbitrary code execution.","url":"https://insights.sbomify.com/CVE-2026-90322/"}