În biblioteca libcue, care este utilizată pentru analiza metadatelor cu informații despre ordinea și durata pieselor audio, a fost descoperită o vulnerabilitate (CVE-2023-43641) care permite executarea de cod în timpul procesării fișierelor cue special concepute. Biblioteca este folosită în unele redătoare multimedia și editoare audio, inclusiv Audacious, și poate fi folosită pentru compromiterea sistemului la deschiderea de date nesigure în acestea.
Mai mult, biblioteca libcue este utilizată în motorul de căutare tracker-miners, folosit în mediul utilizator GNOME. Deoarece tracker-miners indicizează automat noi fișiere multimedia din directorul utilizatorului, pentru a ataca sistemele cu GNOME și a permite executarea codului de către un atacator, este suficient ca utilizatorul să încarce un fișier special conceput în directorul ~/Downloads, ~/Music sau ~/Videos, fără a fi necesar să-l deschidă (de exemplu, în unele cazuri, este suficient să facă clic pe un link în browser).
Cercetătorii care au descoperit vulnerabilitatea au pregătit un exploit funcțional și au demonstrat posibilitatea exploatării în medii bazate pe Ubuntu 23.04 și Fedora 38. Codul exploit-ului va fi publicat ulterior, pentru a oferi timp utilizatorilor să instaleze actualizarea care repară vulnerabilitatea. Exploit-ul funcționează stabil, dar necesită adaptare pentru fiecare distribuție.
Vulnerabilitatea este cauzată de o depășire a întregului în codul de analiză a sintaxei parametrului INDEX, și se manifestă atunci când se specifică în acest parametru valori numerice prea mari, care nu se încadrează în tipul 'int'. Funcția atoi este folosită pentru a transforma un șir într-un număr; de exemplu, când se specifică numărul 4294567296, acesta va fi transformat în -400000. Lipsa verificării valorii primite pentru a determina dacă poate fi negativă duce direct la vulnerabilitate. Astfel, în codul care urmează transformării atoi se execută operațiunea 'track->index[i] = ind', întrucât 'i' poate fi atribuit un număr negativ, permițând rescrierea unei zone de memorie în afara bufferului cu valoarea 'ind', care este de asemenea încărcată din fișierul procesat.
În majoritatea distribuțiilor cu GNOME, componenta tracker-miners este activată implicit și se încarcă ca o dependență strictă a managerului de fișiere Nautilus (GNOME Files). Pentru a dezactiva tracker-miners pentru utilizatorul curent, se pot folosi comenzile: 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
Sursa: opennet.ro
