{"id":20408,"date":"2026-09-10T04:31:43","date_gmt":"2026-09-09T20:31:43","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-80925"},"modified":"2026-09-10T04:31:43","modified_gmt":"2026-09-09T20:31:43","slug":"cve-2026-80925","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-80925","title":{"rendered":"CVE-2026-80925 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nvlan: fix skb_under_p"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>vlan: fix skb_under_panic and races when toggling HW VLAN offload<\/p>\n<p>Toggling hardware VLAN TX offload (NETIF_F_HW_VLAN_CTAG_TX or<br \/>\nNETIF_F_HW_VLAN_STAG_TX) on a lower device invokes vlan_transfer_features(),<br \/>\nwhich dynamically changed vlandev-&gt;hard_header_len.<\/p>\n<p>This causes two issues:<br \/>\n1. Lockless TX paths (e.g. packet_snd in af_packet.c, ip6_finish_output2)<br \/>\n   read dev-&gt;hard_header_len without holding RTNL lock. Mutating<br \/>\n   hard_header_len dynamically under RTNL creates a data race where upper<br \/>\n   layers reserve insufficient headroom based on a stale hard_header_len,<br \/>\n   resulting in skb_under_panic when vlan_dev_hard_header() is called.<br \/>\n2. In addition, vlan_transfer_features() updated hard_header_len without<br \/>\n   updating header_ops, causing a mismatch between allocated headroom<br \/>\n   and header creation.<\/p>\n<p>Always setting dev-&gt;hard_header_len = real_dev-&gt;hard_header_len and<br \/>\ndev-&gt;needed_headroom = real_dev-&gt;needed_headroom + VLAN_HLEN unconditionally<br \/>\nensures:<br \/>\n&#8211; dev-&gt;hard_header_len remains 100% static and immutable at real_dev-&gt;hard_header_len,<br \/>\n  eliminating all dynamic runtime updates and data races on hard_header_len.<br \/>\n&#8211; Upper layers allocating skbs via LL_RESERVED_SPACE() will always reserve<br \/>\n  sufficient headroom for software VLAN tag insertion (real_dev-&gt;hard_header_len +<br \/>\n  real_dev-&gt;needed_headroom + VLAN_HLEN).<br \/>\n&#8211; vlandev inherits real_dev-&gt;needed_tailroom so underlying trailer\/padding\/ICV<br \/>\n  requirements are honored.<br \/>\n&#8211; AF_PACKET SOCK_RAW network header offsets remain correctly aligned at<br \/>\n  real_dev-&gt;hard_header_len.<br \/>\n&#8211; vlan_header_ops is used unconditionally.<\/p>\n<p>Note to stable teams: Make sure to backport these commits:<\/p>\n<p>e16e960d55a4 (&#8220;ipvlan: inherit needed_headroom and needed_tailroom from phy_dev&#8221;)<br \/>\ncef51860becd (&#8220;macvlan: inherit needed_headroom and needed_tailroom from lowerdev&#8221;)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>vlan: fix skb_under_panic and races when toggling HW VLAN offload<\/p>\n<p>Toggling hardware VLAN TX offload (NETIF_F_HW_VLAN_CTAG_TX or<br \/>\nNE<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-20408","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/20408","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=20408"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=20408"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=20408"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}