Description
In the Linux kernel, the following vulnerability has been resolved:

net: ipv6: Fix UDP length overflow with PMTU discover and big MTU

This commit bounds cork->base.fragsize to IP6_MAX_MTU for UDP sockets to
avoid a possible overflow of UDP length that triggers a WARN in
udp_set_len_short when setsockopt IPV6_MTU_DISCOVER is set to
IPV6_PMTUDISC_DO or IPV6_PMTUDISC_PROBE, and a large packet is sent over
a netdev with an unusually large MTU.

Steps to reproduce (included in the new selftest):

1. Set device MTU bigger than IP6_MAX_MTU. cork->base.fragsize will be
set to that MTU in ip6_setup_cork.
2. Set IPV6_MTU_DISCOVER to IPV6_PMTUDISC_PROBE or IPV6_PMTUDISC_DO. It
lets maxnonfragsize be set to device MTU (cork->fragsize) in
__ip6_append_data, rather than to IP6_MAX_MTU.
3. Send 65528 bytes of payload (+8 bytes of UDP header, +40 bytes of
IPv6 header). Device MTU allows it (it's only one byte bigger than
IP6_MAX_MTU, and the device MTU is bigger than that).
4. The UDP length in the built packet is 65536, which overflows the
16-bit length field and triggers the WARN in udp_set_len_short.

To avoid breaking sending UDP jumbograms over raw IPv6 sockets, limit
the change to UDP sockets only.

The original overflow bug with IPv6 and IPV6_PMTUDISC_DO seems to
predate git history (verified reproduction on 2.6.21), was fixed later,
and then reappeared in commit 427faee167bc ("net: ipv6: introduce
ip6_dst_mtu_maybe_forward"), which is chosen as the Fixes tag here. The
overflow with IPV6_PMTUDISC_PROBE reproduces since its introduction in
commit 628a5c561890 ("[INET]: Add IP(V6)_PMTUDISC_RPOBE").
Published: 2026-09-25
Score: 5.5 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service via UDP length overflow
Action: Apply Patch
AI Analysis

Impact

An overflow of the 16‑bit UDP length field occurs when a UDP socket with IPv6 Path MTU Discovery enabled sends a packet larger than the IP6_MAX_MTU value allowed by the kernel. The kernel bounds the fragment size for such sockets, but if a device advertises an MTU larger than IP6_MAX_MTU and the socket option IPV6_MTU_DISCOVER is set to PROBE or DO, the length can be set to the device MTU. Sending a packet of 65528 data bytes plus headers results in a UDP length of 65536, which overflows the length field and triggers a kernel warning in udp_set_len_short. The description does not state that this causes a crash; it only notes the warning. The vulnerability is not exploitable through ordinary IPv6 traffic. An attacker must craft packets that satisfy the described conditions, i.e., set the device MTU beyond IP6_MAX_MTU and create a UDP socket with PMTU discovery in PROBE or DO mode. The effect is limited to the packet construction path; it could potentially destabilize packet handling by producing malformed packets. The potential impact is a denial of service in the network stack, inferred from the requirement to send crafted large packets that cause a kernel warning. The description does not provide direct evidence of a crash, so the severity is based on the overflow and the warning it produces.

Affected Systems

The flaw exists in the Linux kernel networking code for IPv6. Any system running a Linux kernel version that does not include the fix that bounds cork->base.fragsize to IP6_MAX_MTU is affected. This includes all distributions whose kernels predate the relevant commit, regardless of version number. The vulnerability originates from the kernel’s networking layer, not from user‑space utilities.

Risk and Exploitability

The CVSS score of 5.5 indicates a moderate impact. The EPSS score of <1 % denotes a low probability of exploitation in the wild. The flaw is not listed in CISA’s KEV catalog, implying no known widespread exploitation. Exploitation requires deliberate packet crafting and control over the sending socket’s PMTU discovery option, and the attack vector is network-based. While the description does not confirm a crash, an overflow that triggers a warning could lead to a denial of service if the kernel mishandles the packet. Consequently, the risk is moderate but warrants mitigation.

Generated by OpenCVE AI on October 1, 2026 at 04:53 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Update to a Linux kernel revision that contains the patch which limits cork->base.fragsize to IP6_MAX_MTU
  • Adjust network interface MTU settings or apply a firewall rule to prevent devices from advertising an MTU larger than IP6_MAX_MTU
  • Configure all UDP sockets to use IPV6_MTU_DISCOVER set to IPV6_PMTUDISC_WANT or the default value to avoid aggressive PMTU discovery

Generated by OpenCVE AI on October 1, 2026 at 04:53 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4817-1 linux-6.12 security update
Debian DSA Debian DSA DSA-6528-1 linux security update
History

Sat, 03 Oct 2026 11:15:00 +0000


Wed, 30 Sep 2026 12:15:00 +0000

Type Values Removed Values Added
References
Metrics threat_severity

None

cvssV3_1

{'score': 5.5, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H'}

threat_severity

Low


Fri, 25 Sep 2026 14:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-190

Fri, 25 Sep 2026 10:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: net: ipv6: Fix UDP length overflow with PMTU discover and big MTU This commit bounds cork->base.fragsize to IP6_MAX_MTU for UDP sockets to avoid a possible overflow of UDP length that triggers a WARN in udp_set_len_short when setsockopt IPV6_MTU_DISCOVER is set to IPV6_PMTUDISC_DO or IPV6_PMTUDISC_PROBE, and a large packet is sent over a netdev with an unusually large MTU. Steps to reproduce (included in the new selftest): 1. Set device MTU bigger than IP6_MAX_MTU. cork->base.fragsize will be set to that MTU in ip6_setup_cork. 2. Set IPV6_MTU_DISCOVER to IPV6_PMTUDISC_PROBE or IPV6_PMTUDISC_DO. It lets maxnonfragsize be set to device MTU (cork->fragsize) in __ip6_append_data, rather than to IP6_MAX_MTU. 3. Send 65528 bytes of payload (+8 bytes of UDP header, +40 bytes of IPv6 header). Device MTU allows it (it's only one byte bigger than IP6_MAX_MTU, and the device MTU is bigger than that). 4. The UDP length in the built packet is 65536, which overflows the 16-bit length field and triggers the WARN in udp_set_len_short. To avoid breaking sending UDP jumbograms over raw IPv6 sockets, limit the change to UDP sockets only. The original overflow bug with IPv6 and IPV6_PMTUDISC_DO seems to predate git history (verified reproduction on 2.6.21), was fixed later, and then reappeared in commit 427faee167bc ("net: ipv6: introduce ip6_dst_mtu_maybe_forward"), which is chosen as the Fixes tag here. The overflow with IPV6_PMTUDISC_PROBE reproduces since its introduction in commit 628a5c561890 ("[INET]: Add IP(V6)_PMTUDISC_RPOBE").
Title net: ipv6: Fix UDP length overflow with PMTU discover and big MTU
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-10-19T09:11:51.310Z

Reserved: 2026-09-25T10:18:58.208Z

Link: CVE-2026-97984

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-25T11:17:26.443

Modified: 2026-10-19T10:17:49.753

Link: CVE-2026-97984

cve-icon Redhat

Severity : Low

Publid Date: 2026-09-25T00:00:00Z

Links: CVE-2026-97984 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-01T05:00:14Z

Weaknesses
  • CWE-190

    Integer Overflow or Wraparound