RIOT-OS, system operacyjny dla urządzeń IoT, zawiera podatność w stosie sieciowym obsługującym ramki 6LoWPAN, umożliwiającą zdalnemu atakującemu wykonanie dowolnego kodu lub wywołanie odmowy usługi. Podatność nie wymaga uwierzytelnienia ani interakcji użytkownika, co czyni ją wyjątkowo niebezpieczną w środowiskach IoT.
▸ Pokaż oryginał (EN)
RIOT-OS, an operating system that supports Internet of Things devices, contains a network stack with the ability to process 6LoWPAN frames. Prior to version 2022.10, an attacker can send a crafted frame to the device resulting in a type confusion between IPv6 extension headers and a UDP header. This occurs while encoding a 6LoWPAN IPHC header. The type confusion manifests in an out of bounds write in the packet buffer. The overflow can be used to corrupt other packets and the allocator metadata. Corrupting a pointer will easily lead to denial of service. While carefully manipulating the allocator metadata gives an attacker the possibility to write data to arbitrary locations and thus execute arbitrary code. Version 2022.10 fixes this issue. As a workaround, apply the patches manually.
Atakujący wysyła spreparowaną ramkę 6LoWPAN do podatnego urządzenia. Podczas kodowania nagłówka 6LoWPAN IPHC dochodzi do type confusion pomiędzy nagłówkami rozszerzeń IPv6 a nagłówkiem UDP (CWE-843). Efektem tego błędu jest zapis poza granicami bufora (out of bounds write, CWE-787) w buforze pakietów. Przepełnienie pozwala na uszkodzenie innych pakietów oraz metadanych alokatora pamięci — manipulacja wskaźnikami może doprowadzić do zapisu danych w dowolnych lokalizacjach pamięci, a tym samym do wykonania dowolnego kodu.
Atakujący może wykonać dowolny kod na podatnym urządzeniu (RCE) lub spowodować jego odmowę usługi (DoS) poprzez uszkodzenie wskaźników i metadanych alokatora pamięci.
Należy zaktualizować RIOT-OS do wersji 2022.10, która zawiera poprawkę dla tej podatności. Jeśli aktualizacja nie jest możliwa, producent zaleca ręczne zastosowanie łatek dostępnych w referencjach (pull request #18817 oraz #18820 w repozytorium GitHub RIOT-OS).
RIOT-OS we wszystkich wersjach poprzedzających 2022.10, na urządzeniach IoT z włączoną obsługą stosu sieciowego 6LoWPAN.
Producent udostępnił workaround w postaci ręcznego zastosowania patchy z pull requestów #18817 i #18820 w oficjalnym repozytorium GitHub RIOT-OS.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HRiot Os Riot
OSRiot-Os< 2022.10
Powiązane podatności
RIOT OS: buffer overflow w gcoap prowadzący do RCE lub DoS
RIOT-OS: out-of-bounds write w obsłudze ramek 6LoWPAN umożliwia RCE
RIOT-OS: RCE i DoS przez przepełnienie bufora w obsłudze ramek 6LoWPAN
Buffer overflow w RIOT-OS — podatność w module routingu RPL
Buffer overflow w RIOT-OS — podatność w module walidacji RPL