CRITICAL🇬🇧 English

CVE-2026-43501

Linux kernel: zapis OOB w IPv6 RPL Source Routing Header (ipv6_rpl_srh_rcv)

CVSS 9.8pub. 2026-05-21upd. 2026-07-02

Podatność w jądrze Linux w funkcji ipv6_rpl_srh_rcv() umożliwia zapis poza granicami bufora (out-of-bounds write) podczas przetwarzania nagłówka IPv6 RPL Source Routing Header (RFC 6554). Luka ma krytyczny poziom zagrożenia (CVSS 9.8) i może zostać wywołana przez nieuwierzytelnionego atakującego przez sieć.

Pokaż oryginał (EN)

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.

🤖 Analiza AI
Jak działa

Funkcja ipv6_rpl_srh_rcv() dekompresuje nagłówek SRH, zamienia następny segment w polu ipv6_hdr->daddr, a następnie ponownie kompresuje nagłówek i przepycha go wraz z nagłówkiem IPv6. Ponownie skompresowany nagłówek może być większy od odebranego (nawet o +8 bajtów), gdy zamiana redukuje długość wspólnego prefiksu. Wywołanie pskb_expand_head() było uzależnione od warunku segments_left == 0, przez co dla wcześniejszych segmentów operacja push zużywała niezweryfikowany headroom. Gdy skb_push() pozostawia mniej niż skb->mac_len bajtów przed danymi, pole mac_header (typ u16) ulega przepełnieniu do wartości ~65530, a następujące po tym wywołanie memmove() zapisuje mac_len bajtów około 64 KiB za wskaźnikiem skb->head — co KASAN wykrywa jako 14-bajtowy zapis OOB w ipv6_rthdr_rcv.

Skutki

Atakujący może spowodować zapis danych poza granicami bufora w pamięci jądra, co potencjalnie prowadzi do uszkodzenia pamięci, eskalacji uprawnień lub zdalnego wykonania kodu (RCE) w kontekście jądra systemu operacyjnego.

Mitygacja

Należy zastosować patche dostępne u producenta zgodnie z referencjami — commity poprawkowe dostępne pod adresami: 4babc2d9fda2, 7398ebefbfd4, 8e8be63465a5, 9e6bf146b559, c261d07a8057 w repozytorium git.kernel.org/stable. Zaleca się aktualizację jądra do wersji zawierającej wskazane poprawki. Jako obejście można rozważyć wyłączenie obsługi IPv6 RPL routing, jeśli funkcja ta nie jest wymagana w środowisku.

Kogo dotyczy

Jądro Linux z obsługą IPv6 RPL Source Routing (ipv6_rpl_srh_rcv); dokładne wersje wskazane w referencjach producenta (commity dostępne w repozytorium stable git.kernel.org)

Uwagi

Według opisu podatność można odtworzyć za pomocą pojedynczego pakietu AF_INET6/SOCK_RAW/IPV6_HDRINCL przez interfejs lo z dwusegmentowym nagłówkiem SRH typu 3 (CmprI=0, CmprE=15); błąd potwierdzony przez KASAN (kernel address sanitizer).

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
  • Linux Kernel

    OS
    Linux
    7.15.11 – 5.15.209 (bez)5.16 – 6.1.175 (bez)6.2 – 6.6.140 (bez)5.7 – 5.10.258 (bez)6.13 – 6.18.27 (bez)6.19 – 7.0.4 (bez)6.7 – 6.12.86 (bez)
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
CWE
Referencje

Powiązane podatności

CVE-2025-10585CRITICAL9.8⚠ KEVPL ✓ten sam produkt

Type confusion w V8 (Google Chrome) — zdalne uszkodzenie sterty

CVE-2025-34028CRITICAL9.3⚠ KEVPL ✓ten sam produkt

Commvault Command Center – nieuwierzytelniony RCE przez path traversal w ZIP

CVE-2022-47986CRITICAL9.8⚠ KEVten sam produkt

IBM Aspera Faspex 4.4.2 Patch Level 1 and earlier could allow a remote attacker to execute arbitrary code on t...

CVE-2022-22954CRITICAL9.8⚠ KEVten sam produkt

VMware Workspace ONE Access and Identity Manager contain a remote code execution vulnerability due to server-s...

CVE-2020-4006CRITICAL9.1⚠ KEVten sam produkt

VMware Workspace One Access, Access Connector, Identity Manager, and Identity Manager Connector address have a...