Plik ihex.c w GNU Binutils przed wersją 2.26 zawiera podatność typu stack buffer overflow podczas wyświetlania nieprawidłowych bajtów w obiektach Intel Hex. Podatność otrzymała ocenę krytyczną (CVSS 9.8), co wskazuje na możliwość zdalnego wykonania kodu bez uwierzytelnienia.
▸ Pokaż oryginał (EN)
ihex.c in GNU Binutils before 2.26 contains a stack buffer overflow when printing bad bytes in Intel Hex objects.
Podatność wynika z nieprawidłowej obsługi bufora na stosie (stack buffer overflow, CWE-119) w funkcji odpowiedzialnej za drukowanie błędnych bajtów w plikach formatu Intel Hex. Gdy aplikacja przetwarza specjalnie spreparowany plik .hex zawierający nieprawidłowe dane, dochodzi do przepełnienia bufora na stosie. Atakujący może dostarczyć złośliwy plik Intel Hex, którego przetworzenie przez narzędzia z pakietu Binutils wywoła opisany błąd.
Atakujący może doprowadzić do wykonania dowolnego kodu (RCE) w kontekście procesu przetwarzającego złośliwy plik, a także do naruszenia poufności, integralności i dostępności systemu. W najgorszym przypadku możliwe jest przejęcie pełnej kontroli nad środowiskiem, w którym działają narzędzia Binutils.
Należy zaktualizować GNU Binutils do wersji 2.26 lub nowszej. Poprawka dostępna jest w repozytorium projektu (commit 7e27a9d5f22f9f7ead11738b1546d0b5c737266b na sourceware.org). Zaleca się również unikanie przetwarzania niezaufanych plików Intel Hex za pomocą narzędzi Binutils do czasu zastosowania łatki.
GNU Binutils w wersjach przed 2.26
Błąd został zgłoszony w bugzilla.sourceware.org jako issue #18750. Informacja o podatności pojawiła się na liście oss-security w dniu 2015-07-31, natomiast oficjalny wpis CVE został opublikowany dopiero 2017-03-21.
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HGnu Binutils
APPGnu≤ 2.25
Powiązane podatności
GNU Binutils: heap-based buffer overflow w funkcji finish_stab (objdump)
GNU Binutils: null pointer dereference w elflink.c biblioteki libbfd
GNU Binutils: heap buffer over-read w funkcji pe_ILF_object_p biblioteki libbfd
GNU Binutils readelf: heap buffer over-read przy przetwarzaniu plików RL78
A flaw was found in binutils. A heap-buffer-overflow vulnerability exists when processing a specially crafted ...