GNOME Vulnerability

Vulnerabilitate găsită în GNOME

Cercetătorii au descoperit vulnerabilități de execuție de cod de la distanță foarte grave într-o componentă inerentă a distribuțiilor Linux care folosesc GNOME, care ar putea afecta un număr mare de utilizatori.

Urmărită ca CVE-2023-43641, exploatarea vulnerabilității din biblioteca libcue, relativ mică, profită de aplicația tracker-miners pentru a facilita un atac RCE (Remote Code Execution) cu un singur clic.

Se crede că această problemă afectează toate distribuțiile care folosesc GNOME, inclusiv RHEL, SUSE și Debian, dar până acum s-a dovedit că funcționează doar pe cele mai recente versiuni de Ubuntu și Fedora.

Un utilizator trebuie să descarce un fișier și să îl stocheze într-un director scanat în mod obișnuit, cum ar fi directorul Downloads, Music sau Video, iar atacatorul poate obține RCE pe calculatorul vostru.

Biblioteca libcue este relativ mică și este folosită pentru a analiza fișele cue – fișiere .cue – în care sunt stocate metadatele care definesc structura muzicii pe un CD. Având vedere că este adesea utilizată împreună cu formatul audio FLAC, playerele audio open source precum Audacious depind de această bibliotecă.

Mai important, o altă aplicație care utilizează libcue este tracker-miners, care este inclusă în distribuțiile Linux care folosesc GNOME și este responsabilă pentru indexarea fișierelor din directorul utilizatorului, astfel încât acestea să apară în rezultatele căutării.

GitHub - GNOME Vulnerability Screenshot

Aplicația tracker-miners se inițializează automat când un fișier este adăugat sau modificat într-un subdirector. Acest lucru înseamnă că exploatarea poate fi executată imediat ce utilizatorul descarcă un fișier .cue creat în mod malițios, deoarece tracker-miners utilizează libcue pentru a transmite fișierul de fișe cue.

Pe scurt, asta înseamnă că este suficient ca un atacator să facă clic din greșeală pe o legătură malițioasă pentru a exploata CVE-2023-43641 și a obține executarea de cod pe calculatorul dvs.

a declarat Kevin Backhouse, cercetător în domeniul securității la echipa HitHub Security Lab

Alte fișiere sunt, de asemenea, acceptate de tracker-miners – are scanare pentru fișiere HTML, JPG și PDF – însă testul de validare al conceptului (proof of concept – PoC) al cercetătorului s-a limitat la utilizarea fișierelor de tip cue sheet.

Exploatarea libcue

Backhouse a creat exploit-uri funcționale doar pentru cele mai recente versiuni de Ubuntu 23.04 și Fedora 38, dar consideră că orice distribuție care foloseste GNOME este „potențial exploatabilă”.

PoC-urile complete nu au fost încă publicate pentru a le oferi utilizatorilor timp să instaleze corecția. Blackhouse a declarat că exploit-urile deja dezvoltate funcționează „foarte fiabil”.

Defectul în sine este clasificat ca fiind un defect de corupție a memoriei și a primit un calificativ de gravitate provizoriu de 8.8 de la GitHub. Scorul CVSS este încă în curs de stabilire.

O problemă legată de modul în care este gestionată sintaxa INDEX a unei fișe cue permite construirea unui index negativ, deoarece metoda atoi nu verifică depășirea numărului întreg.

Funcția track_set_index a scanerului nu verifică în mod corespunzător dacă indexul este un număr întreg negativ, iar dacă acesta este negativ, atunci devine posibilă o exploatare de scriere în afara limitelor.

voidtrack_set_index
{
    if (i > MAXINDEX) {
        fprintf(stderr, "too many indexes\n");
                return;
    }
    track->index[i] = ind;
}

Datorită consecvenței structurii heap a fiecărei distribuții, un atacator ar putea compila o arhivă zip care să conțină fișiere individuale pentru a exploata aceeași vulnerabilitate în cât mai multe distribuții pentru a maximiza potențialul de succes.

Dacă toate aceste fișiere nu ar fi fost arhivate, ar fi fost nevoie doar de cel corespunde distribuției utilizatorului pentru a realiza atacul.

Procesul tracker-extract al tracker-miners face ca dispunerea memoriei fiecărei distribuții să fie mai ușor de prezis, deoarece de fiecare dată când se pornește tracker-miners este inițiat un nou proces, în loc să se lupte cu un proces care rulează de ore întregi.

De asemenea, tracker-extract inițiază de fiecare dată un fir nou. Backhouse a declarat că dispunerea heap-ului în arena malloc a firului „este foarte consistentă”, dar variază între distribuții, ceea ce înseamnă că arhiva zip cu mai multe fișiere ar fi cea mai eficientă abordare pentru atacatori.

Defectul bonus

Backhouse a întâmpinat o problemă atunci când a dezvoltat exploatarea PoC pentru vulnerabilitate, deoarece componenta tracker-extract a tracker-miners are un sandbox seccomp care împiedică rularea acestui timp de exploatare.

După ce nu și-a dat seama că avea nevoie de o scăpare din sandbox, Backhouse a încercat o metodă diferită pentru a exploata, concentrându-se pe evitarea funcției care a generat anterior defectul, și a descoperit din greșeală o scăpare din sandbox care era necunoscută anterior dezvoltatorilor GNOME.

Evadarea din sandbox a fost deja rezolvată, iar Backhouse intenționează să publice PoC-ul original cu o linie schimbată pentru a-l face să funcționeze fără evadarea din sandbox după ce va trece suficient timp pentru a permite utilizatorilor să își corecteze complet sistemele.

ThinkRoot99

Numele meu este Cristian Moldovan și sunt utilizator de Linux de peste 10 ani.Am făcut parte din mai multe echipe open source din România: Fundația Ceata, Linux Mint România, Rogentos Linux Group. Între 2014 și 2018 am fost propietarul și editorul site-ului de știri despre linux, gnulinux.ro și actual proprietar al rootlinux.ro

View all posts by ThinkRoot99 →

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *