{"answers":{"affected":"","exploited":"There is no known exploitation of CVE-2026-74348 in the wild and no public exploit code.","fix":"Apply the vendor's patch.","what":"CVE-2026-74348 is an use after free vulnerability in Linux, published on 15 Aug 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-74348 and fix it if it is affected.\n\nWhat it is: CVE-2026-74348 is an use after free vulnerability in Linux, published on 15 Aug 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-74348 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-74348/ (Markdown: https://insights.sbomify.com/CVE-2026-74348/index.md)","id":"CVE-2026-74348","markdown":"https://insights.sbomify.com/CVE-2026-74348/index.md","name":"CVE-2026-74348","record":{"aliases":["BELL-CVE-2026-74348","DEBIAN-CVE-2026-74348","GHSA-7r62-vjjf-3924","UBUNTU-CVE-2026-74348"],"analysis":{"component_type":"kernel","fix_type":"patch","impacts":["code_execution","privilege_escalation"],"network_reachable":"adjacent_or_local","non_default_config":false,"product_category":"Linux kernel","requires_auth":"low_privilege","summary":"A use-after-free in the Linux kernel OCFS2 DLM debugfs interface allows local attackers to execute code or escalate privileges.","user_interaction":"not_required","vuln_class":"use_after_free"},"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/dlm: require a ref for locking_state debugfs open\n\ndebug_lockres_open() copies inode-\u003ei_private into struct debug_lockres and\ndebug_lockres_release() later drops that pointer with dlm_put().  That\nonly works if open successfully pins the struct dlm_ctxt.\n\nToday open calls dlm_grab(dlm) but ignores its return value.  Once the\nlast domain unregister has removed the context from dlm_domains,\ndlm_grab() returns NULL, yet open still stores the raw pointer and returns\nsuccess.  The later release path is outside the debugfs removal barrier,\nso it can call dlm_put() after dlm_free_ctxt_mem() has freed the context. \nKASAN reports this as a slab-use-after-free in dlm_put() called from\ndebug_lockres_release().\n\nFail the open when dlm_grab() cannot acquire the reference and unwind the\nseq_file private state before returning.  That keeps locking_state from\nhanding out a file descriptor whose release path does not own the\ndlm_ctxt.\n\nThe buggy scenario involves two paths, with each column showing the order\nwithin that path:\n\nlocking_state debugfs open:          last domain unregister:\n1. debug_lockres_open() reads        1. dlm_unregister_domain() calls\n   inode-\u003ei_private.                    dlm_complete_dlm_shutdown().\n2. debug_lockres_open() calls        2. shutdown removes the dlm_ctxt from\n   dlm_grab(dlm) and gets NULL.         dlm_domains.\n3. open still stores the raw dlm     3. final teardown reaches\n   pointer in dl-\u003edl_ctxt and           dlm_free_ctxt_mem() and frees it.\n   returns success.\n4. debug_lockres_release() later\n   calls dlm_put(dl-\u003edl_ctxt).\n\nValidation reproduced this kernel report:\nKASAN slab-use-after-free in dlm_put+0x82/0x200\nRIP: 0033:0x7f4d349bc9e0\nThe buggy address belongs to the object at ffff888103a3c000 which belongs\nto the cache kmalloc-2k of size 2048\nThe buggy address is located 816 bytes inside of freed 2048-byte region\n[ffff888103a3c000, ffff888103a3c800)\nWrite of size 4\nCall trace:\n  dump_stack_lvl+0x66/0xa0 (?:?)\n  print_report+0xd0/0x630 (?:?)\n  dlm_put+0x82/0x200 (?:?)\n  srso_alias_return_thunk+0x5/0xfbef5 (?:?)\n  __virt_addr_valid+0x188/0x2f0 (?:?)\n  kasan_report+0xe4/0x120 (?:?)\n  kasan_check_range+0x105/0x1b0 (?:?)\n  debug_lockres_release+0x53/0x80 (fs/ocfs2/dlm/dlmdebug.c:587)\n  dlm_put+0x9/0x200 (?:?)\n  debug_lockres_release+0x5c/0x80 (fs/ocfs2/dlm/dlmdebug.c:587)\n  full_proxy_release+0x67/0x90 (?:?)\n  __fput+0x1df/0x4b0 (?:?)\n  do_raw_spin_lock+0x10f/0x1b0 (?:?)\n  fput_close_sync+0xd2/0x170 (?:?)\n  __x64_sys_close+0x55/0x90 (?:?)\n  do_syscall_64+0x10c/0x640 (arch/x86/entry/syscall_64.c:87)\n  irqentry_exit+0xac/0x6e0 (?:?)\n  entry_SYSCALL_64_after_hwframe+0x77/0x7f (?:?)\nFreed by task stack:\n  kasan_save_stack+0x33/0x60 (?:?)\n  kasan_save_track+0x14/0x30 (?:?)\n  kasan_save_free_info+0x3b/0x60 (?:?)\n  __kasan_slab_free+0x5f/0x80 (?:?)\n  kfree+0x30f/0x580 (?:?)\n  dlm_put+0x1ce/0x200 (?:?)\n  dlm_unregister_domain+0xf6/0xb30 (?:?)\n  o2cb_cluster_disconnect+0x6b/0x90 (?:?)\n  ocfs2_cluster_disconnect+0x41/0x70 (?:?)\n  ocfs2_dlm_shutdown+0x1c4/0x220 (?:?)\n  ocfs2_dismount_volume+0x38a/0x550 (?:?)\n  generic_shutdown_super+0xc3/0x220 (?:?)\n  kill_block_super+0x29/0x60 (?:?)\n  deactivate_locked_super+0x66/0xe0 (?:?)\n  cleanup_mnt+0x13d/0x210 (?:?)\n  task_work_run+0xfa/0x170 (?:?)\n  exit_to_user_mode_loop+0xd6/0x430 (?:?)\n  do_syscall_64+0x3cb/0x640 (arch/x86/entry/syscall_64.c:87)\n  entry_SYSCALL_64_after_hwframe+0x77/0x7f (?:?)","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/dlm: require a ref for locking_state debugfs open","id":"CVE-2026-74348","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":null,"product":null,"products":[],"type":"use_after_free","year":"2026"},"n_packages":0,"n_references":8,"next":{"headline":"ocfs2: reject FITRIM ranges shorter than a cluster","id":"CVE-2026-74349"},"packages":[],"prev":{"headline":"netfilter: cttimeout: detach dataplane timeout policy and repurpose refcount","id":"CVE-2026-74347"},"products":["Linux"],"published":"2026-08-15","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-08-17","vendors":["Linux"]},"summary":"A use-after-free in the Linux kernel OCFS2 DLM debugfs interface allows local attackers to execute code or escalate privileges.","url":"https://insights.sbomify.com/CVE-2026-74348/"}