CVE-2026-5857
WysokieCVSS 8.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 43 - wyżej niż 43% wszystkich znanych CVE
Streszczenie
Contiki-NG w kliencie MQTT w funkcji parse_publish_vhdr() w os/net/app-layer/mqtt/mqtt.c ustawia topic_len_received=1 przed sprawdzeniem topic_len względem limitu 64 bajtów, co powoduje, że zbyt długi temat zwraca wcześniej, ale pozostawia flagę ustawioną. Przy następnym segmencie TCP parser pomija blok odczytu długości i wykonuje memcpy z niezwalidowaną długością, co prowadzi do przepełnienia bufora topic[] i nadpisania sąsiednich pól, w tym wskaźnika payload_chunk. Może to umożliwić zdalne wykonanie kodu na urządzeniach bez ochrony pamięci.
Ocena ryzyka
Podatność może prowadzić do ujawnienia informacji, odmowy usługi lub zdalnego wykonania kodu na urządzeniach wbudowanych, co może zagrozić integralności systemów IoT.
Rekomendacja
Zaktualizuj Contiki-NG do wersji z poprawką. Jeśli to możliwe, włącz TLS dla połączeń MQTT i ogranicz zaufanie do brokerów.
Inne podatności w Contiki-NG
Zobacz wszystkie- CVE-2026-5856Wysokie
Contiki-NG w resolverze DNS/mDNS w funkcji skip_name() w os/services/resolv/resolv.c nie sprawdza granic pakietu podczas przetwarzania etykiet nazw, a wywołujący w newdata() iteruje nquestions razy na podstawie nagłówka DNS przed walidacją ID transakcji. Atakujący może ustawić nquestions większe niż liczba kompletnych pytań, co powoduje odczyt poza buforem pakietu UDP i ujawnienie zawartości pamięci lub awarię resolwera.
- CVE-2026-5855Wysokie
Contiki-NG w parserze TLV LwM2M w funkcji lwm2m_tlv_read() w os/services/lwm2m/lwm2m-tlv.c ignoruje argument długości bufora i czyta do sześciu bajtów bez sprawdzania granic. Złośliwe żądanie CoAP WRITE z końcowym TLV o dokładnie jednym bajcie powoduje odczyty poza stertą, ujawniając zawartość pamięci (w tym klucze i adresy) przez pola tlv->id, tlv->length i tlv->value. W trybie NoSec, domyślnym dla urządzeń ograniczonych, nie jest wymagane uwierzytelnienie.
- CVE-2023-34101Wysokie
Contiki-NG to system operacyjny dla urządzeń IoT. W wersji 4.8 i wcześniejszych, podczas przetwarzania pakietów ICMP DAO w funkcji `dao_input_storing`, system nie weryfikuje, czy bufor pakietu jest wystarczająco duży, co może prowadzić do odczytu danych poza przydzielonym obszarem pamięci.
- CVE-2023-34100Wysokie
Contiki-NG, system operacyjny dla urządzeń IoT, ma lukę, która pozwala na odczyt danych poza granicami bufora IPv6 podczas przetwarzania opcji MSS w pakietach TCP. Problem dotyczy indeksowania bufora w module os/net/ipv6/uip6.c, co może prowadzić do nieautoryzowanego dostępu do pamięci.
Oryginalny opis (angielski, źródło NVD)
Contiki-NG's MQTT client parse_publish_vhdr() in os/net/app-layer/mqtt/mqtt.c sets topic_len_received=1 before checking topic_len against the 64-byte limit, so an over-length topic returns early but leaves the flag set. On the next TCP segment, tcp_input() re-invokes the parser with topic_received==0, and the persisted topic_len_received==1 skips the length-reading block containing the guard, falling through directly to a memcpy() that uses the unvalidated 16-bit topic_len as the copy length. The 65-byte topic[] destination overruns into adjacent struct fields including the payload_chunk pointer, which subsequent MQTT code dereferences, giving a compromised or attacker-controlled broker an arbitrary-pointer-write primitive. Contiki-NG's MQTT implementation has no TLS support so the connection is plaintext. Impact ranges from information disclosure and denial of service to remote code execution on embedded targets without memory protection.

