{"id":29100,"date":"2026-09-25T20:31:52","date_gmt":"2026-09-25T12:31:52","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-97944"},"modified":"2026-09-25T20:31:52","modified_gmt":"2026-09-25T12:31:52","slug":"cve-2026-97944","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-97944","title":{"rendered":"CVE-2026-97944 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nx86\/cfi: Fix FineIBT"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>x86\/cfi: Fix FineIBT hash offset in cfi_get_func_hash()<\/p>\n<p>The switch of the FineIBT preamble from &#8220;subl $hash, %r10d&#8221; to the<br \/>\nshorter &#8220;subl $hash, %eax&#8221; moved the hash immediate from offset 7 to<br \/>\noffset 5 of the preamble. fineibt_preamble_hash was updated to match,<br \/>\nbut the open-coded offset in cfi_get_func_hash() was missed and it<br \/>\nstill reads the hash at offset 7.<\/p>\n<p>cfi_get_func_hash() is used by the BPF JIT to give a struct_ops<br \/>\ntrampoline the CFI hash of the stub function it stands in for. With<br \/>\nFineIBT the trampoline now gets the upper half of the real hash<br \/>\nfollowed by the first two bytes of the next instruction, so the first<br \/>\nindirect call from the kernel into a struct_ops program,<br \/>\ntcp_init_congestion_control() calling -&gt;init() of a BPF congestion<br \/>\ncontrol for example, fails the FineIBT check and the kernel dies with<br \/>\na CFI failure.<\/p>\n<p>Move the FineIBT preamble template and its offset defines above<br \/>\ncfi_get_func_hash() and use fineibt_preamble_hash there, so every<br \/>\nreader of the preamble shares one definition of its layout. The<br \/>\nCFI_FINEIBT arm is only built with CONFIG_FINEIBT, the only<br \/>\nconfiguration in which cfi_mode can take that value.<br \/>\ncfi_get_func_arity() does not need the same treatment: the __bhi_args<br \/>\ncall whose displacement it reads still ends at the function address.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>x86\/cfi: Fix FineIBT hash offset in cfi_get_func_hash()<\/p>\n<p>The switch of the FineIBT preamble from &#8220;subl $hash, %r10d&#8221; to the<br \/>\nshorter<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-29100","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/29100","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=29100"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=29100"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=29100"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}