{"id":25995,"date":"2026-09-18T04:32:12","date_gmt":"2026-09-17T20:32:12","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-93138"},"modified":"2026-09-18T04:32:12","modified_gmt":"2026-09-17T20:32:12","slug":"cve-2026-93138","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-93138","title":{"rendered":"CVE-2026-93138 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nbpf: Fix vmlinux BTF"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>bpf: Fix vmlinux BTF prep race in bpf_get_btf_vmlinux<\/p>\n<p>bpf_get_btf_vmlinux() lazily parses the vmlinux BTF under the<br \/>\nbpf_verifier_lock, but publishes the result through a plain store<br \/>\nand re-checks it through a plain lockless load. Nothing orders<br \/>\nthe stores initializing the struct btf inside btf_parse_vmlinux()<br \/>\nagainst the store publishing the pointer: On a weakly ordered<br \/>\narch, a concurrent first-time caller taking the lockless fast<br \/>\npath could in principle observe the pointer before the parsed<br \/>\ncontents are visible. The mutex_unlock() does not help such a<br \/>\nreader given it only synchronizes with a later acquisition of the<br \/>\nsame lock. Thus, publish the pointer with smp_store_release()<br \/>\nand read it on the fast path with smp_load_acquire().<\/p>\n<p>Acquire semantics are needed rather than a dependency-ordered<br \/>\nREAD_ONCE(): btf_parse_vmlinux() also populates globals outside<br \/>\nthe returned object (e.g. bpf_ctx_convert.t). An address<br \/>\ndependency would only order accesses performed through the<br \/>\npointer and not cover other globals.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>bpf: Fix vmlinux BTF prep race in bpf_get_btf_vmlinux<\/p>\n<p>bpf_get_btf_vmlinux() lazily parses the vmlinux BTF under the<br \/>\nbpf_verifier_l<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-25995","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/25995","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=25995"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=25995"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=25995"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}