{"id":7252,"date":"2026-09-04T18:49:29","date_gmt":"2026-09-04T10:49:29","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-74310"},"modified":"2026-09-04T18:49:29","modified_gmt":"2026-09-04T10:49:29","slug":"cve-2026-74310","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-74310","title":{"rendered":"CVE-2026-74310 [CRITICAL] &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nvhost\/net: complete z"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>vhost\/net: complete zerocopy ubufs only once<\/p>\n<p>vhost-net initializes one ubuf_info per outstanding zerocopy TX<br \/>\ndescriptor and hands it to the backend socket.  The networking stack may<br \/>\nthen clone a zerocopy skb before all skb references are released.  For<br \/>\nexample, batman-adv fragmentation reaches skb_split(), which calls<br \/>\nskb_zerocopy_clone() and increments the same ubuf_info refcount.<\/p>\n<p>vhost_zerocopy_complete() currently treats every ubuf callback as a<br \/>\ncompleted vhost descriptor.  It dereferences ubuf-&gt;ctx, writes the<br \/>\ndescriptor completion state, and drops the vhost_net_ubuf_ref even when<br \/>\nthe callback only releases a cloned skb reference.  A backend reset can<br \/>\ntherefore wait for and free the vhost_net_ubuf_ref while another cloned<br \/>\nskb still carries the same ubuf_info.  A later completion then<br \/>\ndereferences the freed ubufs pointer.<\/p>\n<p>KASAN reports the stale completion as:<\/p>\n<p>  BUG: KASAN: slab-use-after-free in vhost_zerocopy_complete+0x1d7\/0x1f0<br \/>\n  BUG: KASAN: slab-use-after-free in vhost_zerocopy_complete+0x101\/0x1f0<br \/>\n  vhost_zerocopy_complete<br \/>\n  skb_copy_ubufs<br \/>\n  __dev_forward_skb2<br \/>\n  veth_xmit<\/p>\n<p>The freed object was allocated from vhost_net_ioctl() while setting the<br \/>\nbackend and freed through kfree_rcu()\/kvfree_rcu_bulk after backend<br \/>\nremoval, while delayed skb completion still reached<br \/>\nvhost_zerocopy_complete().<\/p>\n<p>Honor the generic ubuf_info refcount before touching vhost state, and run<br \/>\nthe vhost descriptor completion only for the final ubuf reference.  This<br \/>\nmatches the msg_zerocopy_complete() ownership rule for cloned zerocopy<br \/>\nskbs.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>vhost\/net: complete zerocopy ubufs only once<\/p>\n<p>vhost-net initializes one ubuf_info per outstanding zerocopy TX<br \/>\ndescriptor and hands <\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-7252","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/7252","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=7252"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7252"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7252"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}