Średni Oczekuje na analizę

CVE-2026-82962

opublikowano:
modyfikacja:
Ocena CVSS
6.5
Średni · v3.1
wektor: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:H

>_ Opis

Tłumaczenie automatyczne – może zawierać nieścisłości.

Funkcja ethernet_fill_header() w subsys/net/l2/ethernet/ethernet.c może dodać nagłówek Ethernet na miejscu, wpychając go w zapas pierwszego fragmentu pakietu, zamiast przydzielać oddzielny fragment nagłówka. Przed tą poprawką ścieżka lokalna była wybierana wyłącznie na podstawie wartości CONFIG_NET_L2_ETHERNET_RESERVE_HEADER z czasu kompilacji, bez sprawdzania, czy pakiet faktycznie ma ten zapas, a następnie wywoływana była net_buf_push(pkt->buffer, hdr_len). Tylko alokacje Ethernet TX rezerwują tę przestrzeń: net_pkt_alloc_buffer() wywołuje funkcję alokacji L2 (ethernet_l2_alloc()) tylko wtedy, gdy is_pkt_tx() ma wartość true i interfejs pakietu jest interfejsem Ethernet.

Pakiet, który został przydzielony przez inny L2, a następnie przekazany do sieci Ethernet w celu transmisji, ma zatem zbyt mały (zwykle zerowy) zapas. Takie pakiety są tworzone poprzez zwykłe ścieżki routingu i tunelowania: net_route_packet_if() ponownie kieruje odebrany pakiet do innego interfejsu, gdy włączone są CONFIG_NET_IPV4_FORWARDING / CONFIG_NET_IPV6_FORWARDING (na przykład przekazywanie interfejsu 802.15.4/OpenThread lub PPP do Wi-Fi/Ethernet), net_route_ipv6_mcast_forward_packet() przekazuje klon płyty RX, który nie zawiera rezerwy, a tunel IPIP interfejs_send() dodaje na początek zewnętrzny nagłówek IP przydzielony do interfejsu wirtualnego. W tych konfiguracjach zdalny lub sąsiadujący atakujący wyzwala ten stan, po prostu wysyłając ruch przekazywany dalej przez urządzenie.

Ponieważ funkcja net_buf_simple_push() sprawdza tylko limit zapasu, kompilacja bez CONFIG_ASSERT (i bez nowszej CONFIG_NET_BUF_HARDENING) przesuwa wskaźnik danych fragmentu poniżej początku swojego bloku danych i zapisuje 14 bajtów — 18 w przypadku sieci VLAN — nagłówka Ethernet poza zakresem. W przypadku domyślnych pul buforów o stałym rozmiarze zastępuje to koniec ładunku lub pamięci sąsiadującego bufora poprzedzającego tablicę puli; w przypadku pul o zmiennej wielkości zastępuje liczbę odwołań do bufora i nagłówek fragmentu sterty. Osoba atakująca nie kontroluje ani zapisanych bajtów, ani przesunięcia, więc praktycznym skutkiem jest uszkodzenie pamięci prowadzące do awarii, uszkodzenia pakietu lub niespójności sterty, a nie kontrolowane wykonanie kodu. Poprawka przyjmuje ścieżkę lokalną tylko wtedy, gdy net_buf_headroom(pkt->buffer) jest wystarczająco duża, a w przeciwnym razie wraca do osobnego fragmentu nagłówka.

>_ Słabości (CWE)

>_ Referencje

Dane podatności pochodzą z oficjalnych źródeł (CVE® List / NVD). Opisy po polsku są tłumaczone automatycznie i mogą zawierać nieścisłości – na stronie rekordu można wyświetlić wersję angielską.

This product uses the NVD API but is not endorsed or certified by the NVD.

Copyright © 1999–2026, The MITRE Corporation. CVE is a registered trademark and the CVE logo is a registered trademark of The MITRE Corporation.

CVE Usage: MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE®). Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy. ALL DOCUMENTS AND THE INFORMATION CONTAINED THEREIN PROVIDED BY MITRE ARE PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND.

NVD Terms of Use / CVE® Terms of Use / nvd.nist.gov / cve.org