CVE-2026-19577
Təsvir
subsys/net/ip/route_ipv6.c faylındakı net_route_ipv6_packet() funksiyası, qonşu keş daxilindəki elementin həqiqətən əlaqəli link təbəqəsi ünvanının olub-olmadığını yoxlamadan, nexthop-un link təbəqəsi ünvanını net_nbr_get_lladdr(nbr->idx) ilə müəyyən edirdi. Həlli tapılmamış qonşu idx == NET_NBR_LLADDR_UNKNOWN (0xff) dəyərini daşıyır və subsys/net/ip/nbr.c faylındakı net_nbr_get_lladdr() funksiyası NET_ASSERT-dən başqa heç bir çalışma zamanı sərhəd yoxlaması aparmır və standart ölçüsü CONFIG_NET_IPV6_MAX_NEIGHBORS (8) olan massivin sonundan təxminən 2.5 KB sonrası olan &net_neighbor_lladdr[255] ünvanını qaytarır. Qaytarılan göstərici (pointer) heç vaxt NULL olmadığı üçün növbəti lladdr == NULL qoruyucusu bunu tutmur. Bu funksiyaya subsys/net/ip/ipv6.c faylındakı ipv6_route_packet() vasitəsilə, təqibul edilən interfeysdə lokal ünvan olmayan hər bir qəbul edilmiş unikast IPv6 paketi üçün müraciət edilir; IPv6 qonşu keşi aktiv olduqda CONFIG_NET_IPV6_ROUTE də standart olaraq aktiv olur, buna görə də heç bir marşrutlayıcı və ya yönləndirmə konfiqurasiyasına ehtiyac yoxdur. net_route_ipv6_get_info() funksiyası, paket üçün qonşu keş elementi mövcud olduqda, paketin təyinat yerinin özünü nexthop kimi qaytarır və keş axtarışı INCOMPLETE elementlərini ötürmür. Eyni linkdə olan autentifikasiya olunmamış hücumçu, məsələn, saxtalaşdırılmış, mövcud olmayan qonşu ünvanına trafik yönləndirərək net_ipv6_send_ns()-in INCOMPLETE elementi yaratmasını təmin etməklə və ya mənbə link təbəqəsi ünvanı seçimi olmayan Router Advertisement göndərərək (hansı ki, daimi həll olunmamış marşrutlayıcı qonşusu yaradır) həll olunmamış vəziyyəti məcburi yarada bilər və sonra həmin qonşuya ünvanlanmış paket göndərə bilər. Nəticədə, qonşu link təbəqəsi ünvanı massivindən sonrakı sabit indeksdə sərhədlərdən kənar oxuma (out-of-bounds read) baş verir. CONFIG_ASSERT aktiv olan versiyalarda assertion işə düşür və cihaz panik vəziyyətinə keçir, bu da təkrar oluna bilən uzaqdan xidmətdən imtina (DoS) yaradır. Assertion-lar deaktiv edildikdə, köhnəlmiş sərhədlərdən kənar struct net_linkaddr, hücumçunun təsir etmədiyi uzunluqda memcmp() prosesini idarə edir və onun len baytı NET_LINK_ADDR_MAX_LENGTH yoxlamasından keçdikdə, əlaqəsiz statik RAM-ın 8 bayta qədər hissəsi çıxan freymin təyinat link təbəqəsi ünvanına kopyalanır və link üzərindən ötürülərək istənilən dinləyiciyə açıqlanır. Sərhədlərdən kənar yazma (out-of-bounds write) baş vermir və ofset hücumçu tərəfindən idarə olunmur, bu da təsirin miqyasını məhdudlaşdırır.
Necə düzəltmək olar
- zephyrproject zephyr4.5.0 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| zephyrproject zephyr | 1.8.0 ≤ v < 4.5.0 | 4.5.0 |
Versiyanızı yoxlayın
Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.
Attack Surface Management
Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.