{"id":6873,"date":"2026-09-04T18:49:20","date_gmt":"2026-09-04T10:49:20","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-72251"},"modified":"2026-09-04T18:49:20","modified_gmt":"2026-09-04T10:49:20","slug":"cve-2026-72251","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-72251","title":{"rendered":"CVE-2026-72251 [CRITICAL] &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nnetfilter: nf_nat_sip"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>netfilter: nf_nat_sip: reload possible stale data pointer<\/p>\n<p>quoting sashiko:<br \/>\n &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\n [..] noticed a potential memory bug and header corruption involving the<br \/>\n SIP NAT helper.<\/p>\n<p> In net\/netfilter\/nf_nat_sip.c:nf_nat_sip():<br \/>\n\tif (skb_ensure_writable(skb, skb-&gt;len)) {<br \/>\n\t\tnf_ct_helper_log(skb, ct, &#8220;cannot mangle packet&#8221;);<br \/>\n\t\treturn NF_DROP;<br \/>\n\t}<br \/>\n\tuh = (void *)skb-&gt;data + protoff;<br \/>\n\tuh-&gt;dest = ct_sip_info-&gt;forced_dport;<br \/>\n\tif (!nf_nat_mangle_udp_packet(skb, ct, ctinfo, protoff,<br \/>\n\t\t\t\t      0, 0, NULL, 0)) {<\/p>\n<p> If a cloned or fragmented SKB is reallocated by skb_ensure_writable(), the<br \/>\n old data buffer is freed. However, nf_nat_sip() fails to update *dptr to<br \/>\n point to the new buffer.<\/p>\n<p> It also appears to use nf_nat_mangle_udp_packet() on what could be a TCP<br \/>\n packet, which would overwrite the sequence number with a checksum update.<br \/>\n &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/p>\n<p>nf_conntrack_sip linerizes skbs, hence no fragmented skb can be seen.<br \/>\nBut clones are possible, so rebuild dptr.<\/p>\n<p>Disable nf_nat_mangle_udp_packet() branch for TCP streams.<br \/>\nIt doesn&#8217;t look like this can ever happen, else we should have received<br \/>\nbug reports about this, so just check the conntrack is UDP and drop<br \/>\notherwise.<\/p>\n<p>The calling conntrack_sip set -&gt;forced_dport for SIP_HDR_VIA_UDP messages,<br \/>\nso I don&#8217;t think this is ever expected to be true for a TCP stream.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>netfilter: nf_nat_sip: reload possible stale data pointer<\/p>\n<p>quoting sashiko:<br \/>\n &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-6873","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/6873","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=6873"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=6873"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=6873"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}