Katalog CVE

CVE-2026-14697

ŚrednieCVSS 6.5
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.18%

Percentyl 7 - wyżej niż 7% wszystkich znanych CVE

Streszczenie

W podsystemie IPv6 stosu Zephyr (subsys/net/ip/ipv6_nbr.c) funkcja net_ipv6_send_ns() przydziela pakiet sieciowy dla Neighbor Solicitation. Gdy jest wywoływana z pakietem danych oczekującym na nierozwiązanego sąsiada i kolejka oczekujących jest już niepusta, funkcja dodaje pakiet danych i wraca wcześniej, bez wysłania NS przez net_send_data() ani zwolnienia go przez net_pkt_unref(). Nowo przydzielony pakiet NS i jego bufory TX są trzymane tylko przez zmienną lokalną i wyciekają trwale, nigdy nie wracając do CONFIG_NET_PKT_TX_COUNT / CONFIG_NET_BUF_TX_COUNT.

Ocena ryzyka

Atakujący w sieci lokalnej może celowo wywołać wyciek pakietów TX, wyczerpując pulę pakietów transmisyjnych (domyślnie tylko 4, dla Ethernetu 14). Po wyczerpaniu urządzenie nie może wysyłać żadnych pakietów (TCP/UDP, ARP/ND, odpowiedzi), co prowadzi do całkowitej i trwałej odmowy usługi (DoS), która nie ustępuje aż do restartu.

Rekomendacja

Należy natychmiast zastosować poprawkę, która zwalnia niewysłany pakiet NS przez net_pkt_unref(pkt) przed wczesnym powrotem. Jeśli poprawka nie jest dostępna, ogranicz zaufanie do sieci lokalnej i monitoruj wykorzystanie puli pakietów TX.

Inne podatności w Zephyr

Zobacz wszystkie
Oryginalny opis (angielski, źródło NVD)

net_ipv6_send_ns() in subsys/net/ip/ipv6_nbr.c allocates a transmit net_pkt for a Neighbor Solicitation. When it is called with a data packet pending on an unresolved neighbor and that neighbor's pending_queue is already non-empty (an NS is already outstanding), the function appends the data packet and returns early without ever sending the NS via net_send_data() or releasing it with net_pkt_unref(). The freshly allocated NS net_pkt and its attached TX buffers are held only by a local variable and are leaked permanently, never returning to CONFIG_NET_PKT_TX_COUNT / CONFIG_NET_BUF_TX_COUNT. The leaking branch sits on the normal IPv6 transmit path: net_ipv6_prepare_for_send() (called from net_if.c) invokes net_ipv6_send_ns() for any outbound or forwarded IPv6 packet whose next hop is not yet in the neighbor cache. An on-link (adjacent) attacker can drive it deterministically by sending a burst of request packets (for example ICMPv6 echo requests or UDP datagrams) that all spoof a single non-existent on-link source address: the node generates a reply to each, the first reply queues an NS, and every subsequent reply during the roughly three-second INCOMPLETE resolution window takes the leaking branch and loses one TX packet. Router-configured nodes forwarding attacker traffic toward a non-existent on-link host leak identically. Because the leaked packets are never reclaimed and CONFIG_NET_PKT_TX_COUNT defaults to only 4 (14 for Ethernet), a brief low-rate burst exhausts the TX pool. Once exhausted the node can no longer allocate any transmit packet and cannot send TCP/UDP, ARP/ND, or any reply at all, producing a complete and persistent network denial of service that does not self-heal until reboot. The fix releases the unsent NS packet with net_pkt_unref(pkt) before the early return.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS