CVE-2026-102714
WysokieCVSS 7.1Streszczenie
Funkcja `_nx_icmpv6_validate_options()` w stosie sieciowym Eclipse ThreadX (NetX Duo) skanuje obszar opcji ICMPv6 pętlą `while (length > 2)`, przez co końcówka o rozmiarze 1-2 bajtów pozostaje niezbadana, a funkcja zwraca `NX_SUCCESS`. Konsumenci ponownie przetwarzają ten sam obszar, odczytując dwubajtowy nagłówek opcji i odejmując `nx_icmpv6_option_length << 3` bez sprawdzenia zera i bez sprawdzenia pozostałej długości. Prowadzi to do trzech scenariuszy: nieskończonej pętli (bajt zerowej długości), niedomiaru liczników i odczytu poza buforem pakietu (niezerowy bajt długości na krótkiej końcówce) oraz nadczytu jednego bajtu (końcówka jednobajtowa).
Ocena ryzyka
Atakujący może zdalnie wysyłać spreparowane pakiety ICMPv6, powodując zawieszenie systemu wymagające resetu przez watchdog (powtarzalne po każdym resecie) lub odczyt poza buforem, w wyniku którego przypadkowe bajty trafiają do pamięci podręcznej sąsiadów i są używane jako adres MAC — co może prowadzić do wycieku danych z pamięci lub wstrzyknięcia ruchu. Podatność dotyczy wątku IP o najwyższym priorytecie, więc zawieszenie zatrzymuje cały system.
Rekomendacja
Zaktualizuj Eclipse ThreadX / NetX Duo do wersji zawierającej poprawkę dla CVE-2026-102714. Do czasu wdrożenia poprawki rozważ ograniczenie przetwarzania ICMPv6 na niezbędnych interfejsach lub filtrowanie ruchu ICMPv6 na brzegu sieci.
Inne podatności w Eclipse ThreadX NetX Duo
Zobacz wszystkie- CVE-2026-103416Krytyczne
Zapis poza zakresem przez pamięć podręczną komunikatów TLS 1.3 w NetX Duo w Eclipse ThreadX NetX Duo 6.5.1.202602 pozwala, aby komunikat większy niż pamięć podręczna zapisywał poza nią i dalej w blok kontroli sesji, który zawiera wskaźniki. Złośliwy lub skompromitowany serwer może spowodować, że klient TLS 1.3 wygeneruje taki komunikat przed zakończeniem uwierzytelniania certyfikatu, więc do osiągnięcia tego nie jest potrzebny certyfikat serwera.
- CVE-2026-11576Wysokie
Poprawka bezpieczeństwa dla CVE-2025-0728 w bibliotece eclipse-threadx NetX Duo wprowadziła nową podatność. Wspólna ścieżka czyszczenia w procesie PUT serwera HTTP wywołuje funkcję fx_file_close() nawet gdy plik nie został otwarty, co prowadzi do niezdefiniowanego zachowania, podwójnego zamknięcia lub uszkodzenia pamięci.
Oryginalny opis (angielski, źródło NVD)
`_nx_icmpv6_validate_options()` scans the option area with `while (length > 2)` (`common/src/nx_icmpv6_validate_options.c:79`). An area whose size leaves a one- or two-byte residue exits the loop with that tail unexamined; the residue is not negative, so the function returns `NX_SUCCESS`. Its zero-length rejection never sees those bytes. Every consumer then re-walks the same area, reading a two-byte option header at the residue and subtracting `nx_icmpv6_option_length << 3` with no zero check and no remaining-length check. Three outcomes follow, selected by bytes the attacker controls. **Zero length byte.** The walker subtracts zero and advances zero. All four handlers loop forever — `_nx_icmpv6_process_ra` (`nx_icmpv6_process_ra.c:245, :528`), `_nx_icmpv6_process_ns` (`:251, :329`), `_nx_icmpv6_process_na` (`:147, :156`) and `_nx_icmpv6_process_redirect` (`:247, :350`). The walk runs in the IP thread, which is the highest-priority thread and does not yield inside the loop, so the system stops until a watchdog reset and the frame can be replayed after each one. **Non-zero length byte on a short residue.** The three unsigned counters underflow — `2 - 8` becomes `0xFFFFFFFA` — and the walk continues past the packet buffer, reading until it faults or meets a zero length byte and freezes. The Router Advertisement counter is signed and exits cleanly in this case. **One-byte residue.** The walker reads a two-byte option header, over-reading one byte. During a runaway walk, stray bytes parsing as a link-layer address option are copied into the neighbor cache (`nx_icmpv6_process_ns.c:280, :293`) and subsequently used as the destination MAC for frames to that neighbour, placing off-packet memory on the link. Confirmed by inspection, not reproduced.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

