CVE-2026-43501
Gravedad:
Pendiente de análisis
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
21/05/2026
Última modificación:
21/05/2026
Descripción
*** Pendiente de traducción *** In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
ipv6: rpl: reserve mac_len headroom when recompressed SRH grows<br />
<br />
ipv6_rpl_srh_rcv() decompresses an RFC 6554 Source Routing Header, swaps<br />
the next segment into ipv6_hdr->daddr, recompresses, then pulls the old<br />
header and pushes the new one plus the IPv6 header back. The<br />
recompressed header can be larger than the received one when the swap<br />
reduces the common-prefix length the segments share with daddr (CmprI=0,<br />
CmprE>0, seg[0][0] != daddr[0] gives the maximum +8 bytes).<br />
<br />
pskb_expand_head() was gated on segments_left == 0, so on earlier<br />
segments the push consumed unchecked headroom. Once skb_push() leaves<br />
fewer than skb->mac_len bytes in front of data,<br />
skb_mac_header_rebuild()&#39;s call to:<br />
<br />
skb_set_mac_header(skb, -skb->mac_len);<br />
<br />
will store (data - head) - mac_len into the u16 mac_header field, which<br />
wraps to ~65530, and the following memmove() writes mac_len bytes ~64KiB<br />
past skb->head.<br />
<br />
A single AF_INET6/SOCK_RAW/IPV6_HDRINCL packet over lo with a two<br />
segment type-3 SRH (CmprI=0, CmprE=15) reaches headroom 8 after one<br />
pass; KASAN reports a 14-byte OOB write in ipv6_rthdr_rcv.<br />
<br />
Fix this by expanding the head whenever the remaining room is less than<br />
the push size plus mac_len, and request that much extra so the rebuilt<br />
MAC header fits afterwards.
Impacto
Referencias a soluciones, herramientas e información
- https://git.kernel.org/stable/c/4babc2d9fda2df43823b85d08a0180b68f1b0854
- https://git.kernel.org/stable/c/7398ebefbfd4f8a31d4f665a4213302fa995494b
- https://git.kernel.org/stable/c/8e8be63465a5e80394c70324603dfea1bfdad48f
- https://git.kernel.org/stable/c/9e6bf146b55999a095bb14f73a843942456d1adc
- https://git.kernel.org/stable/c/c261d07a80576dc8ccf394ef8f074f8c67a06b37



