RIOT OS w wersji 2020.04 zawiera podatność buffer overflow w funkcji dekodującej Base64. Błąd umożliwia zdalnemu atakującemu bez uwierzytelnienia przepełnienie bufora poprzez spreparowane dane wejściowe Base64, co czyni podatność krytyczną.
▸ Pokaż oryginał (EN)
RIOT 2020.04 has a buffer overflow in the base64 decoder. The decoding function base64_decode() uses an output buffer estimation function to compute the required buffer capacity and validate against the provided buffer size. The base64_estimate_decode_size() function calculates the expected decoded size with an arithmetic round-off error and does not take into account possible padding bytes. Due to this underestimation, it may be possible to craft base64 input that causes a buffer overflow.
Funkcja dekodująca base64_decode() korzysta z pomocniczej funkcji base64_estimate_decode_size() do oszacowania wymaganego rozmiaru bufora wyjściowego. Funkcja szacująca zawiera błąd arytmetyczny zaokrąglenia oraz nie uwzględnia możliwych bajtów dopełnienia (padding). W efekcie obliczany rozmiar bufora jest zaniżony, co pozwala atakującemu na spreparowanie danych wejściowych Base64 powodujących zapis poza granicami przydzielonego bufora (buffer overflow). Błąd klasyfikowany jest jako nieprawidłowe obliczenie rozmiaru bufora (CWE-131) oraz ogólne nieprawidłowe ograniczenie operacji na buforze pamięci (CWE-119).
Atakujący może doprowadzić do uszkodzenia pamięci procesu, co w konsekwencji może umożliwić zdalne wykonanie kodu (RCE), awarię systemu lub naruszenie poufności i integralności danych przetwarzanych przez urządzenie.
Należy zastosować patche dostępne u producenta zgodnie z referencjami — poprawka dostępna w repozytorium RIOT-OS na GitHub jako pull request #14400. Zaleca się aktualizację do wersji zawierającej tę poprawkę.
RIOT OS w wersji 2020.04
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HRiot Os Riot
OSRiot-Os2020.04
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
RIOT-OS: type confusion w 6LoWPAN prowadzący do RCE i DoS
Buffer overflow w RIOT-OS — podatność w module routingu RPL