{"id":5419,"date":"2026-09-04T18:47:49","date_gmt":"2026-09-04T10:47:49","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-68302"},"modified":"2026-09-04T18:47:49","modified_gmt":"2026-09-04T10:47:49","slug":"cve-2026-68302","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-68302","title":{"rendered":"CVE-2026-68302 [CRITICAL] &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\namt: re-read skb head"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>amt: re-read skb header pointers after every pull<\/p>\n<p>Several AMT receive and transmit paths cache a pointer into the skb head<br \/>\n(ip_hdr(), ipv6_hdr(), eth_hdr() or the AMT message header) and then call<br \/>\na helper that can reallocate that head before the cached pointer is used<br \/>\nagain.  pskb_may_pull(), ip_mc_may_pull(), ipv6_mc_may_pull(),<br \/>\niptunnel_pull_header(), ip_mc_check_igmp() and ipv6_mc_check_mld() can all<br \/>\nfree the old head and move the data, so a pointer taken before the call<br \/>\ndangles afterwards and the later access is a use-after-free of the freed<br \/>\nhead.<\/p>\n<p>The affected sites are:<\/p>\n<p>  amt_rcv() caches ip_hdr() before amt_parse_type() pulls, then reads<br \/>\n  iph-&gt;saddr.<\/p>\n<p>  amt_dev_xmit() caches ip_hdr()\/ipv6_hdr() before ip_mc_check_igmp()\/<br \/>\n  ipv6_mc_check_mld() and pskb_may_pull(), then reads the group address.<\/p>\n<p>  amt_multicast_data_handler() caches eth_hdr() before pskb_may_pull(),<br \/>\n  then writes the L2 header.<\/p>\n<p>  amt_membership_query_handler() caches the AMT header, the outer and<br \/>\n  inner eth_hdr() and ip_hdr() before iptunnel_pull_header() and several<br \/>\n  pulls, then reads and writes them.<\/p>\n<p>  amt_igmpv3_report_handler() and amt_mldv2_report_handler() cache<br \/>\n  ip_hdr()\/ipv6_hdr() and the current group record and read the record<br \/>\n  count from the report header inside the record loop, across the<br \/>\n  *_mc_may_pull() calls.<\/p>\n<p>  amt_update_handler() caches ip_hdr() and the AMT membership-update<br \/>\n  header before pskb_may_pull(), iptunnel_pull_header(),<br \/>\n  ip_mc_check_igmp() and the report handler, then reads iph-&gt;daddr and<br \/>\n  amtmu-&gt;nonce \/ amtmu-&gt;response_mac.<\/p>\n<p>Fix each site by either snapshotting the scalar that is used after the<br \/>\npull before the first pull runs, or re-deriving the header pointer from<br \/>\nthe skb after the last pull that can move the head.  Values that are<br \/>\nstable across the pull (source and group address, the response MAC and<br \/>\nnonce, the record count, the outer source MAC) are snapshotted; pointers<br \/>\nthat are written through or read repeatedly are re-derived.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>amt: re-read skb header pointers after every pull<\/p>\n<p>Several AMT receive and transmit paths cache a pointer into the skb head<br \/>\n(ip_hdr<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-5419","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/5419","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=5419"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5419"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5419"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}