CVE-2026-72250 is a latent regression from a kernel refactor that changed how MAC header tracking works. The sk_buff field mac_header migrated from a 64-bit pointer to a u16 offset, flipping the sentinel for 'unset' from NULL (0) to 0xFFFF. The netfilter IPv6 reassembly path performs arithmetic on this field—specifically adding sizeof(struct frag_hdr) to mac_header—that worked correctly when it held a pointer but now wraps 0xFFFF to 7, falsely indicating the MAC header is set when it isn't.
The trigger window is narrow but real: the NF_INET_LOCAL_OUT netfilter hook fires before the MAC header is populated on outbound packets. If you run IPv6 with conntrack and any custom netfilter rules on the local_out path, you've been running with this silent misreporting. The same pattern in net/ipv6/reassembly.c has a guard against this—the netfilter copy does not. That asymmetry isn't negligent review; it's the predictable outcome of a type migration that no single team owns across subsystems.
The real risk isn't the integer wrap itself—it's what downstream code believes after skb_mac_header_was_set() returns true incorrectly. Every security-relevant decision based on that function—packet routing, XFRM transforms, firewall state checks—operates on corrupted assumptions. You should audit any code path that queries skb_mac_header_was_set() after netfilter hooks on IPv6 output; treat false positives as potential state corruption rather than harmless misreporting.
Detecting this at runtime is difficult without triggering the bug. Static analysis tools capable of tracking type-state changes across refactors would catch similar issues in the future, but no such checker currently exists in the kernel build process. The vulnerability has existed since the type migration with no mechanism to prevent its recurrence—this is the fourth or fifth sk_buff field to follow this pointer-to-integer pattern, and the same failure mode keeps appearing.