CVE-2026-43501
Awaiting Analysis Awaiting Analysis - Queue
Linux Kernel IPv6 RPL SRH Headroom Buffer Overflow

Publication date: 2026-05-21

Last updated on: 2026-06-01

Assigner: kernel.org

Description
In the Linux kernel, the following vulnerability has been resolved: ipv6: rpl: reserve mac_len headroom when recompressed SRH grows ipv6_rpl_srh_rcv() decompresses an RFC 6554 Source Routing Header, swaps the next segment into ipv6_hdr->daddr, recompresses, then pulls the old header and pushes the new one plus the IPv6 header back. The recompressed header can be larger than the received one when the swap reduces the common-prefix length the segments share with daddr (CmprI=0, CmprE>0, seg[0][0] != daddr[0] gives the maximum +8 bytes). pskb_expand_head() was gated on segments_left == 0, so on earlier segments the push consumed unchecked headroom. Once skb_push() leaves fewer than skb->mac_len bytes in front of data, skb_mac_header_rebuild()'s call to: skb_set_mac_header(skb, -skb->mac_len); will store (data - head) - mac_len into the u16 mac_header field, which wraps to ~65530, and the following memmove() writes mac_len bytes ~64KiB past skb->head. A single AF_INET6/SOCK_RAW/IPV6_HDRINCL packet over lo with a two segment type-3 SRH (CmprI=0, CmprE=15) reaches headroom 8 after one pass; KASAN reports a 14-byte OOB write in ipv6_rthdr_rcv. Fix this by expanding the head whenever the remaining room is less than the push size plus mac_len, and request that much extra so the rebuilt MAC header fits afterwards.
CVSS Scores
EPSS Scores
Probability:
Percentile:
Meta Information
Published
2026-05-21
Last Modified
2026-06-01
Generated
2026-06-10
AI Q&A
2026-05-21
EPSS Evaluated
2026-06-09
NVD
EUVD
Affected Vendors & Products
Showing 1 associated CPE
Vendor Product Version / Range
linux linux_kernel *
Helpful Resources
Exploitability
CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-UNKNOWN
Attack-Flow Graph
AI Quick Actions
Instant insights powered by AI
Executive Summary

This vulnerability exists in the Linux kernel's handling of IPv6 source routing headers (SRH). Specifically, the function ipv6_rpl_srh_rcv() decompresses an RFC 6554 Source Routing Header, swaps the next segment into the IPv6 destination address, recompresses the header, and then replaces the old header with the new one plus the IPv6 header. However, when the recompressed header grows larger than the original due to changes in segment prefix lengths, the kernel does not properly reserve enough headroom in the packet buffer.

Because of insufficient headroom reservation, a subsequent operation (skb_set_mac_header) writes data beyond the allocated buffer boundary (out-of-bounds write), potentially corrupting memory. This can happen when processing certain IPv6 packets with specific source routing headers, leading to a memory corruption issue detected by KASAN (Kernel Address Sanitizer).

The fix involves expanding the buffer headroom whenever the remaining space is less than the size needed for the push operation plus the MAC header length, ensuring safe memory operations.

Impact Analysis

This vulnerability can lead to out-of-bounds memory writes in the Linux kernel when processing specially crafted IPv6 packets with source routing headers. Such memory corruption can cause system instability, crashes, or potentially allow an attacker to execute arbitrary code with kernel privileges.

Because the issue occurs in the kernel's network stack, it could be exploited remotely by sending malicious IPv6 packets, especially on systems that accept raw IPv6 packets or use source routing features.

Detection Guidance

This vulnerability involves an out-of-bounds write in the Linux kernel's IPv6 routing header processing, specifically triggered by packets with a type-3 Source Routing Header (SRH) that cause the kernel to improperly handle header recompression and memory headroom.

Detection on a network or system would typically involve monitoring for suspicious or malformed IPv6 packets with SRH that could trigger this condition, or using kernel debugging tools to detect memory corruption or KASAN (Kernel Address Sanitizer) reports indicating out-of-bounds writes in ipv6_rthdr_rcv.

Since no specific detection commands or signatures are provided in the available information, a general approach to detect attempts might include capturing IPv6 packets with SRH using packet capture tools like tcpdump or tshark, for example:

  • tcpdump -i <interface> 'ip6 and (ip6[40] == 43)'

This command filters IPv6 packets with the Routing Header (Next Header value 43). Further analysis would be needed to identify type-3 SRH packets with specific segment conditions.

For kernel-level detection, enabling KASAN or other kernel debugging features might reveal out-of-bounds writes related to this vulnerability during testing or fuzzing.

Mitigation Strategies

The vulnerability has been resolved in the Linux kernel by fixing the handling of the IPv6 Source Routing Header (SRH) in the ipv6_rpl_srh_rcv() function.

To mitigate this vulnerability immediately, you should update your Linux kernel to the version that includes this fix.

Chat Assistant
Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-43501. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70
EPSS Chart