{"id":34940,"date":"2026-10-09T16:32:30","date_gmt":"2026-10-09T08:32:30","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-98377"},"modified":"2026-10-09T16:32:30","modified_gmt":"2026-10-09T08:32:30","slug":"cve-2026-98377","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-98377","title":{"rendered":"CVE-2026-98377 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nvlan: require the MAC"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>vlan: require the MAC header to be present in __vlan_insert_inner_tag()<\/p>\n<p>__vlan_insert_inner_tag() only guarantees head room via skb_cow_head(),<br \/>\nnever that mac_len bytes of MAC header are present.  Its ETH_HLEN<br \/>\nwrappers &#8211; __vlan_insert_tag() under skb_vlan_push(), and<br \/>\nvlan_insert_tag() under validate_xmit_vlan() on the generic transmit<br \/>\npath &#8211; therefore rewrite the first 16 bytes at skb-&gt;data: a 12-byte<br \/>\nmemmove plus two 2-byte stores at +12 and +14.  No caller supplies the<br \/>\nbound, while the pop helpers use skb_ensure_writable()\/pskb_may_pull().<\/p>\n<p>An IFF_TUN device has hard_header_len == 0, so packet_snd() accepts a<br \/>\none-byte AF_PACKET\/SOCK_RAW frame.  The first vlan push only sets a<br \/>\nhwaccel tag; the next &#8211; clsact &#8220;action vlan push&#8221; or<br \/>\nbpf_skb_vlan_push() &#8211; enters the helper with skb-&gt;len still 1.  The<br \/>\nhead comes from skbuff_small_head without __GFP_ZERO, so each push<br \/>\ndrags bytes from beyond skb-&gt;tail into the frame.  After three the<br \/>\none-byte send leaves as 13 bytes carrying 11 bytes of uninitialised<br \/>\nslab:<\/p>\n<p>  0000: 5a b3 62 12 80 88 ff ff 00 b3 62 12 81<br \/>\n           `&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8216;<br \/>\n  only 0x5a was sent; the rest is slab, here the top 56 bits of a<br \/>\n  linear-map address<\/p>\n<p>Require the MAC header the helper rewrites to be present, so such a<br \/>\nframe is dropped rather than transmitted.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>vlan: require the MAC header to be present in __vlan_insert_inner_tag()<\/p>\n<p>__vlan_insert_inner_tag() only guarantees head room via sk<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-34940","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/34940","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=34940"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=34940"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=34940"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}