W narzędziu Radare2 w wersji 5.8.9 i wcześniejszych wykryto błąd odczytu poza granicami bufora (out-of-bounds read) w funkcji print_insn32 obsługującej architekturę NDS32. Podatność uzyskała ocenę CVSS 9.8 (CRITICAL), co wskazuje na bardzo wysokie ryzyko dla systemów korzystających z tego oprogramowania.
▸ Pokaż oryginał (EN)
An out-of-bounds read in radare2 v.5.8.9 and before exists in the print_insn32 function of libr/arch/p/nds32/nds32-dis.h.
Błąd występuje w pliku libr/arch/p/nds32/nds32-dis.h w funkcji print_insn32, odpowiedzialnej za dekodowanie i wyświetlanie instrukcji architektury NDS32. Nieprawidłowa walidacja danych wejściowych powoduje, że program może odczytywać dane spoza przydzielonego obszaru pamięci (CWE-125). Exploit może być wyzwolony poprzez dostarczenie specjalnie spreparowanego pliku binarnego do analizy przez Radare2, bez konieczności uwierzytelnienia ani interakcji użytkownika.
Atakujący może doprowadzić do ujawnienia wrażliwych danych z pamięci procesu oraz potencjalnie do naruszenia integralności i dostępności aplikacji. Biorąc pod uwagę wektor sieciowy i brak wymagań dotyczących uprawnień, konsekwencje mogą obejmować pełne przejęcie kontroli nad procesem.
Należy zaktualizować Radare2 do wersji nowszej niż 5.8.9. Należy zastosować patche dostępne u producenta zgodnie z referencjami (https://github.com/radareorg/radare2/issues/22333). Do czasu aktualizacji zaleca się unikanie analizowania niezaufanych plików binarnych przeznaczonych dla architektury NDS32.
Radare2 w wersji 5.8.9 i wcześniejszych.
Szczegółowy opis podatności wraz z proof-of-concept dostępny jest publicznie w serwisie GitHub Gist (https://gist.github.com/gandalf4a/d7fa58f1b3418ef08ad244acccc10ba6), co zwiększa prawdopodobieństwo prób wykorzystania.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HRadare Radare2
APPRadare< 5.9.0
Powiązane podatności
Buffer overflow w radare2 — przepełnienie bufora pamięci (CVSS 10.0)
Krytyczny Out-of-bounds Write (heap buffer overflow) w Radare2
Buffer Overflow w Radare2 umożliwiający wykonanie dowolnego kodu (RCE)
Out-of-bounds read w Radare2 – funkcja print_insn32_fpu (NDS32)
Heap-based Buffer Overflow w Radare2 przed wersją 5.9.0