CVE-2026-72502: tcp: ipv6: clamp default adverting MSS to avoid GSO_BY_FRAGS (0xFFFF)
In the Linux kernel, the following vulnerability has been resolved:
tcp: ipv6: clamp default adverting MSS to avoid GSOBYFRAGS (0xFFFF)
When MTU is large, ip6defaultadvmss() can return IPV6MAXPLEN (65535). This is interpreted by TCP as mssclamp, allowing the MSS to reach 65535.
However, 0xFFFF is also used as a magic value GSOBYFRAGS in the kernel. If a TCP packet with gsosize=0xFFFF is passed to skbsegment(), it will be mistakenly treated as GSOBYFRAGS, leading to a NULL pointer dereference because local TCP packets do not use fraglist.
Fix this by returning min(IPV6MAXPLEN, GSOBYFRAGS - 1) (65534) from ip6defaultadvmss() when MTU is large.
Also update the stale comment in ip6defaultadvmss() which suggested that IPV6MAXPLEN is returned to mean "any MSS".