W bibliotece libcue, używanej do analizy metadanych związanych z kolejnością i długością utworów dźwiękowych, zidentyfikowano podatność (CVE-2023-43641), która umożliwia wykonywanie kodu podczas przetwarzania specjalnie przygotowanych plików cue. Biblioteka jest używana w niektórych odtwarzaczach multimedialnych i edytorach audio, w tym Audacious, i może być wykorzystana do kompromitacji systemu przy otwieraniu w nich niezweryfikowanych danych.
Ponadto biblioteka libcue jest używana w silniku wyszukiwania tracker-miners, stosowanym w środowisku GNOME. Ponieważ tracker-miners automatycznie indeksuje nowe pliki multimedialne w katalogu domowym, aby przeprowadzić atak na systemy z GNOME i zrealizować wykonanie kodu przez atakującego, wystarczy, aby użytkownik po prostu przesłał specjalnie przygotowany plik do katalogu ~/Downloads, ~/Music lub ~/Videos, bez konieczności jego otwierania (na przykład w niektórych przypadkach wystarczy kliknięcie w link w przeglądarce).
Badacze, którzy zidentyfikowali podatność, przygotowali działający exploit i zademonstrowali możliwość eksploatacji środowisk opartych na Ubuntu 23.04 i Fedora 38. Kod exploita zostanie opublikowany później, aby dać użytkownikom czas na zainstalowanie aktualizacji eliminującej podatność. Exploit działa stabilnie, ale wymaga dostosowania do każdego dystrybucji.
Podatność jest spowodowana przepełnieniem całkowitym w kodzie parsowania parametru INDEX i objawia się przy podaniu w tym parametrze zbyt dużych wartości numerycznych, które nie mieszczą się w typie „int”. Do konwersji ciągu na liczbę używana jest funkcja atoi, na przykład przy podaniu liczby 4294567296 zostanie ona przekonwertowana na -400000. Bezpośrednio do podatności prowadzi brak sprawdzenia, czy uzyskana wartość może być ujemna. W wyniku tego po konwersji atoi w kodzie wykonywana jest operacja „track->index[i] = ind”, w której „i” może zostać przypisane do liczby ujemnej, co prowadzi do nadpisania obszaru pamięci poza buforem wartością „ind”, która również jest ładowana z przetwarzanego pliku.
W większości dystrybucji z GNOME komponent tracker-miners jest domyślnie aktywowany i ładowany jako sztywny zależność dla menedżera plików Nautilus (GNOME Files). Aby wyłączyć tracker-miners dla bieżącego użytkownika, można użyć następujących poleceń: systemctl —user mask tracker-store.service tracker-miner-fs.service tracker-miner-rss.service tracker-extract.service tracker-miner-apps.service tracker-writeback.service tracker reset —hard
Źródło: opennet.ru
