In the Linux kernel, the following vulnerability has been resolved: ipv6: account for fraggap on the paged allocation path In __ip6_append_data(),… (CVE-2026-53362)
In the Linux kernel, the following vulnerability has been resolved: ipv6: account for fraggap on the paged allocation path In __ip6_append_data(), when the paged-allocation branch is taken (MSG_MORE / NETIF_F_SG / large fraglen), alloclen and pagedlen are computed as alloclen = fragheaderlen + transhdrlen; pagedlen = datalen - transhdrlen; datalen already includes fraggap (datalen = length + fraggap). When fraggap is non-zero, this is not the first skb and transhdrlen is zero. The fraggap bytes carried over from the previous skb are copied just past the fragment headers in the new skb's linear area. The linear area is therefore undersized by fraggap bytes while pagedlen is overstated by the same amount, and the copy writes past skb->end into the trailing skb_shared_info. An unprivileged user can trigger this via a UDPv6 socket using MSG_MORE together with MSG_SPLICE_PAGES. The bad accounting was introduced by commit 773ba4fe9104 ("ipv6: avoid partial copy for zc"). Before commit ce650a166335 ("udp6: Fix __ip6_append_data()'s handling of MSG_SPLICE_PAGES"), the negative copy value caused -EINVAL to be returned. That later commit allowed MSG_SPLICE_PAGES to proceed in this case, making the corruption triggerable. The non-paged branch sets alloclen to fraglen, which already accounts for fraggap because datalen does. Bring the paged branch in line by adding fraggap to alloclen and subtracting it from pagedlen. After this adjustment, copy no longer collapses to -fraggap on the paged path, so remove the stale comment describing that old arithmetic. Since a negative copy is no longer expected for a valid MSG_SPLICE_PAGES case, remove the MSG_SPLICE_PAGES exception from the negative copy check.
AI Analysis
Technical Summary
The vulnerability in the Linux kernel IPv6 code occurs in the __ip6_append_data() function when handling paged allocation with MSG_MORE and MSG_SPLICE_PAGES flags on UDPv6 sockets. Incorrect calculation of allocation length and paged length due to unaccounted fragment gap (fraggap) bytes leads to an undersized linear buffer and an overstated paged length, causing a buffer overflow that writes beyond the skb linear area into skb_shared_info. This flaw allows an unprivileged user to trigger memory corruption. The issue was introduced by a commit that allowed MSG_SPLICE_PAGES to proceed despite negative copy values, which previously returned an error. The fix involves adjusting alloclen and pagedlen calculations to include fraggap correctly and removing obsolete negative copy checks.
Potential Impact
The vulnerability allows an unprivileged user to cause a buffer overflow in kernel memory by sending specially crafted UDPv6 packets with MSG_MORE and MSG_SPLICE_PAGES flags. This can lead to memory corruption with potential consequences including denial of service, privilege escalation, or arbitrary code execution in the kernel context. The CVSS vector indicates low attack complexity and privileges required, with high impact on confidentiality, integrity, and availability.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. No official patch links are provided in the input data. Until a patch is available, avoid using UDPv6 sockets with MSG_MORE and MSG_SPLICE_PAGES flags in untrusted environments to reduce risk.
In the Linux kernel, the following vulnerability has been resolved: ipv6: account for fraggap on the paged allocation path In __ip6_append_data(),… (CVE-2026-53362)
Description
In the Linux kernel, the following vulnerability has been resolved: ipv6: account for fraggap on the paged allocation path In __ip6_append_data(), when the paged-allocation branch is taken (MSG_MORE / NETIF_F_SG / large fraglen), alloclen and pagedlen are computed as alloclen = fragheaderlen + transhdrlen; pagedlen = datalen - transhdrlen; datalen already includes fraggap (datalen = length + fraggap). When fraggap is non-zero, this is not the first skb and transhdrlen is zero. The fraggap bytes carried over from the previous skb are copied just past the fragment headers in the new skb's linear area. The linear area is therefore undersized by fraggap bytes while pagedlen is overstated by the same amount, and the copy writes past skb->end into the trailing skb_shared_info. An unprivileged user can trigger this via a UDPv6 socket using MSG_MORE together with MSG_SPLICE_PAGES. The bad accounting was introduced by commit 773ba4fe9104 ("ipv6: avoid partial copy for zc"). Before commit ce650a166335 ("udp6: Fix __ip6_append_data()'s handling of MSG_SPLICE_PAGES"), the negative copy value caused -EINVAL to be returned. That later commit allowed MSG_SPLICE_PAGES to proceed in this case, making the corruption triggerable. The non-paged branch sets alloclen to fraglen, which already accounts for fraggap because datalen does. Bring the paged branch in line by adding fraggap to alloclen and subtracting it from pagedlen. After this adjustment, copy no longer collapses to -fraggap on the paged path, so remove the stale comment describing that old arithmetic. Since a negative copy is no longer expected for a valid MSG_SPLICE_PAGES case, remove the MSG_SPLICE_PAGES exception from the negative copy check.
CVSS v3.1
Score 7.8high
Affected software
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The vulnerability in the Linux kernel IPv6 code occurs in the __ip6_append_data() function when handling paged allocation with MSG_MORE and MSG_SPLICE_PAGES flags on UDPv6 sockets. Incorrect calculation of allocation length and paged length due to unaccounted fragment gap (fraggap) bytes leads to an undersized linear buffer and an overstated paged length, causing a buffer overflow that writes beyond the skb linear area into skb_shared_info. This flaw allows an unprivileged user to trigger memory corruption. The issue was introduced by a commit that allowed MSG_SPLICE_PAGES to proceed despite negative copy values, which previously returned an error. The fix involves adjusting alloclen and pagedlen calculations to include fraggap correctly and removing obsolete negative copy checks.
Potential Impact
The vulnerability allows an unprivileged user to cause a buffer overflow in kernel memory by sending specially crafted UDPv6 packets with MSG_MORE and MSG_SPLICE_PAGES flags. This can lead to memory corruption with potential consequences including denial of service, privilege escalation, or arbitrary code execution in the kernel context. The CVSS vector indicates low attack complexity and privileges required, with high impact on confidentiality, integrity, and availability.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. No official patch links are provided in the input data. Until a patch is available, avoid using UDPv6 sockets with MSG_MORE and MSG_SPLICE_PAGES flags in untrusted environments to reduce risk.
Technical Details
- Gcve Source
- db.gcve.eu
- Osv Id
- GHSA-3x6f-vm7x-cgm7
- Osv Schema Version
- 1.4.0
- Aliases
- ["CVE-2026-53362"]
- Cvss Version
- 3.1
Threat ID: 6a498a7327e9c7971936e8da
Added to database: 07/04/2026, 22:34:27 UTC
Last enriched: 07/19/2026, 01:23:27 UTC
Last updated: 09/14/2026, 10:01:31 UTC
Views: 678
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
External Links
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.