Podatność w bibliotece sieciowej uIP 1.0 (używanej m.in. w Contiki 3.0) umożliwia atakującemu zdalne wykonanie kodu lub wywołanie odmowy usługi (DoS) poprzez spreparowane, sfragmentowane pakiety IP. Ze względu na brak uwierzytelnienia i sieciowy wektor ataku stanowi poważne zagrożenie dla systemów wbudowanych i przemysłowych (ICS/IoT).
▸ Pokaż oryginał (EN)
An issue was discovered in uIP 1.0, as used in Contiki 3.0 and other products. The code that reassembles fragmented packets fails to properly validate the total length of an incoming packet specified in its IP header, as well as the fragmentation offset value specified in the IP header. By crafting a packet with specific values of the IP header length and the fragmentation offset, attackers can write into the .bss section of the program (past the statically allocated buffer that is used for storing the fragmented data) and cause a denial of service in uip_reass() in uip.c, or possibly execute arbitrary code on some target architectures.
Kod odpowiedzialny za składanie sfragmentowanych pakietów IP w funkcji uip_reass() w pliku uip.c nie weryfikuje poprawnie całkowitej długości pakietu podanej w nagłówku IP ani wartości przesunięcia fragmentu (fragmentation offset). Atakujący może spreparować pakiet z odpowiednio dobranymi wartościami tych pól, co powoduje zapis danych poza statycznie alokowanym buforem do składania fragmentów — do sekcji .bss pamięci programu (out-of-bounds write, CWE-787). W zależności od architektury docelowej i układu pamięci może to prowadzić do crash'u procesu lub nadpisania krytycznych danych sterujących wykonaniem kodu.
Atakujący może doprowadzić do odmowy usługi (DoS) poprzez crash funkcji uip_reass(), a na wybranych architekturach docelowych potencjalnie wykonać dowolny kod na podatnym urządzeniu bez żadnego uwierzytelnienia.
Należy zastosować patche dostępne u producenta zgodnie z referencjami — w szczególności zapoznać się z poradnikiem CISA ICS-CERT ICSA-20-343-01 oraz CERT/CC VU#815128, które zawierają wskazówki dotyczące łatania poszczególnych implementacji. W przypadku braku możliwości natychmiastowego zastosowania poprawki zaleca się izolację sieciową urządzeń korzystających z uIP oraz filtrowanie sfragmentowanych pakietów IP na poziomie firewall.
uIP 1.0 używany w Contiki 3.0 oraz innych produktach wykorzystujących bibliotekę uIP — szczegółowa lista produktów dotkniętych podatnością wskazana w referencjach CISA ICS-CERT (ICSA-20-343-01) i CERT/CC (VU#815128)
Podatność zgłoszona przez CISA w ramach doradztwa ICS-CERT (ICSA-20-343-01), co wskazuje na jej istotność dla środowisk przemysłowych i systemów wbudowanych. Biblioteka uIP jest szeroko stosowana w urządzeniach IoT i systemach embedded, co potencjalnie rozszerza zasięg podatności poza samą platformę Contiki.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HContiki Os Contiki
OSContiki-Os3.0Uip Project Uip
APPUip Project1.0
Powiązane podatności
Buffer overflow w parsowaniu DNS w Contiki i Contiki-NG (NAT64)
Out-of-bounds write w re-składaniu fragmentów 6LoWPAN w Contiki/Contiki-NG
In Contiki 3.0, Telnet option negotiation is mishandled. During negotiation between a server and a client, the...
In Contiki 3.0, a buffer overflow in the Telnet service allows remote attackers to cause a denial of service b...
In Contiki 3.0, a Telnet server that silently quits (before disconnection with clients) leads to connected cli...