{"id":29111,"date":"2026-09-25T20:31:54","date_gmt":"2026-09-25T12:31:54","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-97955"},"modified":"2026-09-25T20:31:54","modified_gmt":"2026-09-25T12:31:54","slug":"cve-2026-97955","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-97955","title":{"rendered":"CVE-2026-97955 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nnet: mana: restore th"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>net: mana: restore the XDP program pointer when pre-allocation fails<\/p>\n<p>mana_xdp_set() publishes the new program into apc-&gt;bpf_prog before it<br \/>\nallocates anything, because mana_pre_alloc_rxbufs() sizes the buffers<br \/>\nfrom it via mana_get_rxbuf_cfg(). When that allocation fails the<br \/>\nfunction returns the error directly, skipping the err_dealloc_rxbuffs<br \/>\nlabel which is the only place that restores the previous pointer.<\/p>\n<p>The attach is reported as failed, so the BPF core drops the reference it<br \/>\nheld for the caller and the program can be freed, while apc-&gt;bpf_prog<br \/>\nstill points at it. The next consumer of mana_xdp_get() &#8211; typically<br \/>\nmana_chn_setxdp() from mana_alloc_queues() on the following ifup, or<br \/>\nafter a TX timeout reset &#8211; then calls bpf_prog_add() on freed memory.<\/p>\n<p>This is reachable from an ordinary &#8220;ip link set dev ethX xdp obj &#8230;&#8221;<br \/>\nwhenever the per-queue RX buffer pre-allocation cannot be satisfied.<\/p>\n<p>Restore the previous program on that error path.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>net: mana: restore the XDP program pointer when pre-allocation fails<\/p>\n<p>mana_xdp_set() publishes the new program into apc-&gt;bpf_prog b<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-29111","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/29111","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=29111"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=29111"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=29111"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}