Те откриха грешка в библиотеката на libcue и тя пряко засяга Gnome

уязвимост

Ако бъдат използвани, тези пропуски могат да позволят на нападателите да получат неоторизиран достъп до чувствителна информация или като цяло да причинят проблеми

Стана известно информация за уязвимост (вече каталогизиран под CVE-2023-43641), който беше идентифициран в библиотеката на libcue, който се използва за анализиране на метаданни с информация за реда и продължителността на аудиозаписите.

За тези, които не знаят за libcue, трябва да знаете, че това е библиотека, която използвани за анализиране на референтни листове, формат на метаданни за описание на оформлението на песните на CD. Cheat sheets често се използват в комбинация с аудио файловия формат FLAC, което означава, че libcue е зависимост от някои аудио плейъри.

Споменава се, че сериозността на уязвимостта се дължи на факта, че това позволява изпълнение на код при обработка на cue файлове специално проектирани. Освен това библиотеката libcue се използва в търсачката за тракер-миньори, използвана в потребителската среда на GNOME.

Тъй като тракер-миньорите автоматично индексират нови медийни файлове в домашната директория, да атакува GNOME системи и накарайте кода на атакуващия да се изпълни, всичко, което е необходимо, е за потребителя просто добавете специално проектиран файл в една от следните папки ~/Downloads, ~/Music или e в папката Videos, без да се налага да я отваряте (например в някои случаи просто щракнете върху връзка в браузъра).

Двупроцесната архитектура на краулер-миньорите е полезна за експлоатация. На първо място, много по-лесно е да се предвиди оформлението на паметта в новостартиран процес, отколкото в такъв, който вече е работил с часове, така че фактът, че тракер-екстрактът стартира само при поискване, е много удобен.

Дори по-добре, tracker-extract винаги създава нова нишка за сканиране на изтегления файл и открих, че оформлението на купчината в полето malloc на нишката е много последователно: то варира между дистрибуциите...

По отношение на уязвимостта се споменава, че това се причинява от целочислено препълване в кода за анализ на параметъра INDEX и възниква, когато в този параметър са посочени твърде големи числови стойности, които не отговарят на типа "int".

В прост пример:

ПЕСЕН 01 АУДИО ЗАГЛАВИЕ "Never Gonna Give You Up" ...
INDEX 01 00: 00: 00
ПЕСЕН 02 АУДИО ЗАГЛАВИЕ "Когато имаш нужда от някого" ...
INDEX 01 03: 35: 00

Уязвимостта е в обработката на синтаксиса INDEX, който възниква при замяна на един от тези изрази. Това ще задейства грешката:

ИНДЕКС 4294567296 0

За преобразуване на низ в число се използва функцията atoi, напр. Ако посочите числото 4294567296, то ще бъде преобразувано в -400000. Уязвимостта е причинена директно от невъзможността да се провери получената стойност, за да се гарантира, че тя може да бъде отрицателна. Втората част от проблема (и това е истинската уязвимост) е, че track_set_index не се проверява за i ≥ 0:

void track_set_index(Track *track, int i, long ind) { if (i > MAXINDEX) { fprintf(stderr, "твърде много индекси\n"); връщане; } track->index[i] = ind;

Уязвимостта възниква в резултат на кода след преобразуването на atoi, извършва се операция, при която на "i" може да бъде присвоено отрицателно число, за да презапише областта на паметта извън буфера със стойността "ind", която също се зарежда от файла, който се обработва.

Изследователите, които са идентифицирали уязвимостта, споменават това Те са подготвили работещ експлойт и демонстрира способността за използване на среди, базирани на Ubuntu 23.04 и Fedora 38. Експлойт кодът ще бъде публикуван по-късно за да се даде време на потребителите да инсталират актуализация, която елиминира уязвимостта. Експлойтът работи стабилно, но изисква адаптиране за всяка дистрибуция.

В повечето дистрибуции на GNOME тракер-миньорите са активирани по подразбиране и се зареждат като физическа зависимост от файловия мениджър на Nautilus (файлове на GNOME). Споменава се, че тракер-миньорите могат да бъдат деактивирани директно от потребителя. Можете да проверите подробностите, за да можете да деактивирате тракер-миньорите в следваща връзка.

Накрая ако се интересувате да научите повече за това, можете да проверите подробностите в следваща връзка.