RIOT-OS, system operacyjny dla urządzeń IoT, zawiera podatność umożliwiającą zdalnemu atakującemu wykonanie dowolnego kodu lub wywołanie odmowy usługi (DoS) poprzez wysłanie spreparowanej ramki 6LoWPAN. Podatność wynika z zapisu poza granicami bufora (out of bounds write) w stosie sieciowym i jest oceniana jako krytyczna z wynikiem CVSS 9.8.
▸ 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 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, disable support for fragmented IP datagrams or apply the patches manually.
Atakujący wysyła spreparowaną ramkę 6LoWPAN do urządzenia z podatną wersją RIOT-OS. Stos sieciowy nieprawidłowo przetwarza tę ramkę, co prowadzi do zapisu danych poza granicami bufora pakietów (out of bounds write). Nadpisanie może uszkodzić inne pakiety w buforze oraz metadane alokatora pamięci. Uszkodzenie wskaźnika prowadzi do odmowy usługi, natomiast precyzyjne manipulowanie metadanymi alokatora daje atakującemu możliwość zapisu danych w dowolnych lokalizacjach pamięci, co umożliwia wykonanie dowolnego kodu (RCE).
Atakujący może zdalnie wykonać dowolny kod na urządzeniu (RCE) lub spowodować jego niedostępność (DoS). Atak nie wymaga uwierzytelnienia ani interakcji ze strony użytkownika.
Należy zaktualizować RIOT-OS do wersji 2022.10, która zawiera poprawkę dla tej podatności. Jako obejście tymczasowe (workaround) należy wyłączyć obsługę fragmentowanych datagramów IP lub ręcznie zastosować patche dostępne w referencjach producenta (pull requesty #18817 i #18820 na GitHub).
RIOT-OS we wszystkich wersjach poprzedzających wersję 2022.10 z włączoną obsługą fragmented IP datagrams w stosie 6LoWPAN.
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: type confusion w 6LoWPAN prowadzący do RCE i DoS
Buffer overflow w RIOT-OS — podatność w module routingu RPL
Buffer overflow w RIOT-OS — podatność w module walidacji RPL