{"id":15083,"date":"2026-09-04T19:02:24","date_gmt":"2026-09-04T11:02:24","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-64114"},"modified":"2026-09-04T19:02:24","modified_gmt":"2026-09-04T11:02:24","slug":"cve-2026-64114","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-64114","title":{"rendered":"CVE-2026-64114 [HIGH] &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nipv4: raw: reject IP_"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>ipv4: raw: reject IP_HDRINCL packets with ihl ihl * 4;<br \/>\n    err = -EINVAL;<br \/>\n    if (iphlen &gt; length)<br \/>\n        goto error_free;<\/p>\n<p>    if (iphlen &gt;= sizeof(*iph)) {<br \/>\n        \/* fix up saddr, tot_len, id, csum, transport_header *\/<br \/>\n    }<\/p>\n<p>It does not, however, reject ihl = sizeof(*iph))&#8221; branch is skipped, leaving the<br \/>\ncrafted iphdr untouched, but the packet is still handed to<br \/>\n__ip_local_out() and onward.  Downstream consumers that read<br \/>\niph-&gt;ihl assume a sane value: net\/ipv4\/ah4.c:ah_output() in<br \/>\nparticular subtracts sizeof(struct iphdr) from top_iph-&gt;ihl * 4<br \/>\nand passes the (signed-int-negative, then cast to size_t)<br \/>\nresult to memcpy(), producing an OOB access of length close to<br \/>\nSIZE_MAX and a host kernel panic.<\/p>\n<p>An IPv4 header with ihl &lt; 5 is malformed by definition (RFC 791:<br \/>\n&quot;Internet Header Length is the length of the internet header in<br \/>\n32 bit words &#8230; Note that the minimum value for a correct header<br \/>\nis 5.&quot;).  The kernel should not be willing to inject such a<br \/>\npacket into its own output path.<\/p>\n<p>Reject &quot;iphlen  length&#8221; check.  This matches the principle that locally<br \/>\nconstructed packets that re-enter the IP stack must pass the same<br \/>\nbasic sanity tests that a foreign packet would be subjected to.<\/p>\n<p>Once this lands, the &#8220;if (iphlen &gt;= sizeof(*iph))&#8221; wrapper around<br \/>\nthe fixup branch becomes redundant; left in place to keep the<br \/>\npatch minimal and backport-friendly.  A follow-up can unwrap it.<\/p>\n<p>Note that commit 86f4c90a1c5c (&#8220;ipv4, ipv6: ensure raw socket<br \/>\nmessage is big enough to hold an IP header&#8221;) ensures the message<br \/>\nbuffer is large enough to hold an iphdr, but does not constrain<br \/>\nthe self-reported iph-&gt;ihl.<\/p>\n<p>Reachability: the malformed packet source is any caller with<br \/>\nCAP_NET_RAW, including an unprivileged process in a user+net<br \/>\nnamespace on a kernel with CONFIG_USER_NS=y.  The reproduced AH<br \/>\ncrash also requires a matching xfrm AH policy on the outgoing<br \/>\nroute; a container granted CAP_NET_ADMIN can install that state<br \/>\nand policy in its netns.  Loopback bypasses xfrm_output, so the<br \/>\ntrigger uses a real netdev.<\/p>\n<p>Reproduced on UML + KASAN: kernel-mode fault at addr 0x0 with<br \/>\nmemcpy_orig at the crash site.  Same shape reproduces inside a<br \/>\nrootless Docker container with &#8211;cap-add NET_ADMIN on a stock<br \/>\ndistro kernel.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>ipv4: raw: reject IP_HDRINCL packets with ihl &lt; 5<\/p>\n<p>raw_send_hdrinc() validates that the caller-supplied IPv4 header<br \/>\nfits within the<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-15083","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/15083","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=15083"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=15083"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=15083"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}