{"id":41085,"date":"2026-10-19T00:32:05","date_gmt":"2026-10-18T16:32:05","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-98613"},"modified":"2026-10-19T00:32:05","modified_gmt":"2026-10-18T16:32:05","slug":"cve-2026-98613","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-98613","title":{"rendered":"CVE-2026-98613 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nbpf: Bound ownership"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>bpf: Bound ownership depth through local kptrs and graph roots<\/p>\n<p>Program-allocated objects can own other local objects through referenced<br \/>\nkptrs. bpf_obj_free_fields() follows those pointers through<br \/>\n__bpf_obj_drop_impl() synchronously, before the object storage is freed<br \/>\nthrough RCU. A self-referential local kptr type therefore permits arbitrarily<br \/>\ndeep object chains, and dropping the head can exhaust the kernel stack.<br \/>\nLong acyclic type chains have the same problem.<\/p>\n<p>btf_check_and_fixup_fields() still assumes referenced kptrs only point to<br \/>\nkernel types and checks ownership through list and rbtree roots only. Its<br \/>\nexisting rule is sufficient for graph-only cycles: the target of each graph<br \/>\nedge must contain a node, so every type in a cycle has both a root and a<br \/>\nnode. The rule rejects such a type owning another root, breaking every<br \/>\ncycle. It also limits graph-only chains to three types, or two if the first<br \/>\ntype contains a node, and conservatively rejects longer acyclic chains.<br \/>\nThe missing local-kptr edges, rather than a missed graph-only cycle, are the<br \/>\nbug introduced by support for bpf_kptr_xchg() into local kptrs.<\/p>\n<p>Replace that restriction with one bounded ownership walk covering graph<br \/>\nroots and local referenced kptrs. Run it after all BTF records have been<br \/>\nfixed up, reject cycles and paths deeper than eight record-bearing types,<br \/>\nand cache each type&#8217;s suffix depth while checking it against the remaining<br \/>\nbudget. This also permits the longer acyclic graph-only layouts rejected<br \/>\nby the old rule; update their existing BTF tests accordingly.<\/p>\n<p>Keep the bound independent of MAX_CALL_FRAMES because recursive destruction<br \/>\ncan run below a BPF call chain. A plain local pointee without special-field<br \/>\nmetadata adds only a final non-recursing drop. Non-owning kptrs and<br \/>\nkernel-BTF kptrs do not recurse through local records and remain outside the<br \/>\nwalk. Include local percpu-kptr edges too, although allocation of percpu<br \/>\nobjects with special fields is currently forbidden, so that relaxing that<br \/>\nrestriction cannot bypass the ownership bound.<\/p>\n<p>btf_check_and_fixup_fields() continues to initialize graph_root.value_rec,<br \/>\nincluding for separately allocated map records. The ownership relationships<br \/>\nbelong to immutable program BTF and only need validation at BTF load time.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>bpf: Bound ownership depth through local kptrs and graph roots<\/p>\n<p>Program-allocated objects can own other local objects through refer<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-41085","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/41085","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=41085"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=41085"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=41085"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}