Symulator MIPS SPIM (spimsimulator) w wersji 9.1.24 i wcześniejszych zawiera krytyczną podatność typu buffer overflow w funkcji READ_STRING_SYSCALL. Umożliwia ona atakującemu zdalne wykonanie kodu lub przejęcie kontroli nad procesem bez żadnego uwierzytelnienia.
▸ Pokaż oryginał (EN)
spimsimulator spim v9.1.24 and before is vulnerable to Buffer Overflow in READ_STRING_SYSCALL.
Podatność wynika z nieprawidłowej obsługi wywołania systemowego READ_STRING w symulatorze SPIM – funkcja read_input nie weryfikuje poprawnie długości odczytywanego ciągu znaków, co prowadzi do zapisu poza granicami bufora (out-of-bounds write, CWE-787) oraz odczytu poza granicami (out-of-bounds read, CWE-125). Klasyfikacja CWE-120 wskazuje na brak kontroli rozmiaru kopiowanego łańcucha znaków, natomiast CWE-274 sugeruje nieprawidłowe zarządzanie uprawnieniami w tym kontekście. Atakujący może dostarczyć spreparowane dane wejściowe do symulatora, wywołując przepełnienie bufora na stosie lub stercie.
Udane wykorzystanie podatności może pozwolić atakującemu na wykonanie dowolnego kodu (RCE) w kontekście procesu symulatora, a także na awarię aplikacji (denial of service) lub odczyt wrażliwych danych z pamięci procesu.
Należy zastosować patche dostępne u producenta zgodnie z referencjami. W przypadku braku oficjalnej aktualizacji zaleca się nieudostępnianie symulatora SPIM niezaufanym użytkownikom oraz monitorowanie wejść przekazywanych do procesu symulatora.
spimsimulator SPIM w wersji 9.1.24 i wszystkich wcześniejszych wersjach
Publicznie dostępny proof-of-concept (PoC) opisujący podatność out-of-bounds write w funkcji read_input został opublikowany w referencjach przez użytkownika Giles-one na platformie GitHub.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HSpimsimulator Spim
APPSpimsimulator≤ 9.1.24