Katalog CVE

CVE-2026-14696

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

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.20%

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

Streszczenie

Podatność w Zephyr RTOS powoduje wyciek buforów sieciowych (net_pkt) w przypadku włączenia mostkowania Ethernet (CONFIG_NET_ETHERNET_BRIDGE). Ramki z nierozpoznanym EtherType, dostarczane również do lokalnego stosu, są oznaczane jako NET_OK, co jest interpretowane jako ich zużycie, ale w rzeczywistości nie są zwalniane. Atakujący w segmencie L2 może wysłać zalew ramek broadcast/multicast z dowolnym EtherType, co prowadzi do wyczerpania puli buforów i trwałej odmowy usługi (DoS) do czasu restartu urządzenia.

Ocena ryzyka

Ryzyko polega na możliwości zdalnego wywołania trwałej odmowy usługi (DoS) na urządzeniu z włączonym mostkowaniem Ethernet. Atak nie wymaga uwierzytelnienia i może być przeprowadzony przez dowolne urządzenie w segmencie L2, co uniemożliwia dalszy odbiór ruchu do czasu restartu.

Rekomendacja

Zaleca się natychmiastowe zastosowanie poprawki dostarczonej przez producenta (Zephyr RTOS), która zmienia obsługę ramek w eth_bridge_handle_locally() tak, aby poprawnie propagować werdykt i zwalniać pakiety. Jeśli poprawka nie jest jeszcze dostępna, należy rozważyć wyłączenie mostkowania Ethernet lub ograniczenie zaufania do urządzeń w segmencie L2.

Inne podatności w Zephyr RTOS

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

When Ethernet bridging is enabled (CONFIG_NET_ETHERNET_BRIDGE), eth_bridge_input_process() in subsys/net/l2/ethernet/bridge/bridge_input.c decides how each frame received on a bridge member interface is handled. For frames that must also be delivered to the local stack, the code called eth_bridge_handle_locally() and returned NET_OK. That helper does not consume the packet — it only calls bridge_iface_recv() (via virtual_recv()), which returns NET_CONTINUE without taking ownership of pkt. The NET_OK verdict then propagates through ethernet_recv() up to processing_data() in subsys/net/ip/net_core.c, where NET_OK is interpreted as "the packet was consumed, do not free it." Because no consumer actually took ownership, the RX net_pkt is never returned to the pool and is leaked. The concretely reproducible leak occurs for frames whose EtherType has no registered L3 handler when CONFIG_NET_ETHERNET_FORWARD_UNRECOGNISED_ETHERTYPE is set (default y when CONFIG_NET_SOCKETS_PACKET is enabled): the fall-through L3 dispatch does not overwrite the NET_OK verdict, so ethernet_recv() returns NET_OK and the buffer is never released. Any device on a bridged L2 segment can emit broadcast/multicast frames carrying an arbitrary EtherType with no authentication. Each such frame permanently consumes one buffer from the finite RX pool (CONFIG_NET_PKT_RX_COUNT), so a brief broadcast flood exhausts the pool and the device can no longer receive traffic until it is rebooted — a persistent denial of service. There is no confidentiality or integrity impact. The fix makes eth_bridge_handle_locally() propagate the real net_verdict and return NET_CONTINUE for locally-kept frames, writing the bridge interface back through a new dst_iface out-parameter so the packet follows the normal receive path and is unreferenced exactly once.

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