Luka w e2fsck podczas przetwarzania specjalnie zaprojektowanych katalogów

W narzędziu e2fsck dostarczanym jako część pakietu e2fsprogs, zidentyfikowane słaby punkt (CVE-2019-5188), co umożliwia wykonanie kodu atakującego podczas sprawdzania systemu plików zawierającego specjalnie zaprojektowane katalogi. Luka została potwierdzona w wersjach od 1.43.3 do 1.45.4. Luka naprawiona w aktualizacji e2fsck 1.45.5. W zestawach dystrybucyjnych problem nadal pozostaje nierozwiązany (Debian, Arch Linux, SUSE/openSUSE, Ubuntu, RHEL).

Przyczyną luki jest błąd w funkcji mutate_name() w pliku rehash.c, która jest używana podczas odbudowy tablic skrótów powiązanych z katalogiem, zapewniając dopasowanie wszystkich plików w katalogu do katalogu. Uszkodzenie struktury hash_entry powiązanej z katalogiem może spowodować, że osoba atakująca zapisze dane w obszarze poza przydzielonym buforem. Jeśli w tabeli skrótów zostanie zidentyfikowanych kilka plików o tej samej nazwie jako połączonych z katalogiem, narzędzie e2fsck zmienia nazwę zduplikowanych plików, dodając do nazwy ~0, ~1 itd. Aby tymczasowo zapisać nową nazwę podczas takiej zmiany nazwy, na stosie przydzielany jest bufor o rozmiarze 256 bajtów.

Rozmiar danych do skopiowania jest określony przez wyrażenie „entry->name_len & 0xff”, ale wartość wpisu->name_len jest ładowana ze struktury na dysku, a nie obliczana na podstawie rzeczywistego rozmiaru nazwy. Jeżeli rozmiar wynosi zero, to indeks tablicy przyjmuje wartość -1 i tworzone są warunki przepełnienia liczby całkowitej przez dolną granicę bufora (niedomiar liczby całkowitej) i nadpisania pozostałych danych na stosie wartością „~0”. W przypadku systemów 64-bitowych wykorzystanie luki jest oceniane jako mało prawdopodobne i nie wymaga żadnych ograniczeń co do wielkości stosu (ulimit -s nieograniczone). W przypadku systemów 32-bitowych eksploatacja jest możliwa, ale wynik w dużym stopniu zależy od tego, jak plik wykonywalny został skompilowany przez kompilator.

Aby przeprowadzić atak, osoba atakująca musi w określony sposób uszkodzić dane na partycji z systemem plików ext2, ext3 lub ext4. Ponieważ operacja ta wymaga uprawnień administratora, luka stwarza zagrożenie, gdy narzędzie e2fsck skanuje dyski zewnętrzne lub odebrane zewnętrznie obrazy FS.

Źródło: opennet.ru

Dodaj komentarz