Două vulnerabilități în Git care ar putea duce la executarea de cod de la distanță

Au fost publicate versiunile corective ale sistemului distribuit de gestionare a codului sursă Git 2.39.1, 2.38.3, 2.37.5, 2.36.4, 2.35.6, 2.34.6, 2.33.6, 2.32.5, 2.31.6 și 2.30.7, în care au fost remediate două vulnerabilități ce permit executarea de cod pe sistemul utilizatorului prin utilizarea comenzii „git archive” și lucrul cu repozitorii externe nesigure. Vulnerabilitățile sunt cauzate de erori în codul de formatare a commit-urilor și analiza fișierului „.gitattributes”, care, în procesarea repozitoriilor externe, pot duce la scrierea în zona de memorie dincolo de grămadă și citirea de date arbitrare din memorie.

Ambele vulnerabilități au fost identificate în cadrul unui audit de securitate al codului sursă Git, efectuat de compania X41 la cererea Fundației OSTIF (Open Source Technology Improvement Fund), creată pentru a întări securitatea proiectelor deschise. Pe lângă cele două probleme critice discutate mai jos, auditul a identificat de asemenea o vulnerabilitate periculoasă, una cu un risc mediu și patru probleme minore. Au fost de asemenea făcute 27 de recomandări pentru îmbunătățirea securității codului.

  • CVE-2022-41903: o depășire a intervalului întreg în codul de formatare a informațiilor despre commit-uri, care apare în procesarea valorilor mari de offset în operatorii de umplere, cum ar fi „%<(“, „%(“, „%>>(” și „%<( )”. Depășirea intervalului întreg apare în funcția format_and_pad_commit() din cauza utilizării tipului int pentru variabila size_t, care este implicată în definirea dimensiunii blocului copiat la apelul memcpy().

    Vulnerabilitatea se manifestă atât în cazul apelării directe cu parametri de formatare speciali (de exemplu, la rularea „git log —format=…”), cât și prin utilizarea indirectă a formatarelor în timpul executării comenzii „git archive” într-un repozitoriu controlat de atacator. În acest din urmă caz, modificatorii de formatare sunt specificați prin parametrul export-subst în fișierul „.gitattributes”, care poate fi plasat de atacator în propriul repozitoriu. Problema poate fi exploatată pentru citirea și scrierea de zone arbitrare în grămadă și poate duce la executarea codului de către un atacator atunci când se lucrează cu repozitorii nesiguri.

  • CVE-2022-23521: suprascrieri întregi la analiza conținutului fișierelor „.gitattributes” în depozit, care apar în urma procesării unui număr foarte mare de șabloane de căi de fișiere sau a unui număr mare de atribute cu un singur șablon, precum și la analiza numelui atributului foarte mari. Problema poate fi utilizată pentru a citi și scrie în zone arbitrare din memorie și poate conduce la executarea de cod malițios atunci când se lucrează cu un depozit nevalidat, în care atacatorul poate plasa un fișier .gitattributes special conceput și asigura integrarea acestuia în index.

Publicarea actualizărilor pachetelor în distribuții poate fi urmărită pe paginile: Debian, Ubuntu, Gentoo, RHEL, SUSE, Arch, FreeBSD, NetBSD. Pentru a reduce riscul de atac atunci când nu se poate instala actualizarea la timp, se recomandă evitarea lucrului cu depozite nesigure și utilizarea comenzii „git archive”. Este important de reținut că comanda „git archive” poate fi executată implicit, de exemplu, din git daemon. Pentru a dezactiva execuția „git archive” în git daemon, trebuie să schimbați parametrul daemon.uploadArch cu comanda „git config --global daemon.uploadArch false”.

De asemenea, se poate menționa o altă vulnerabilitate (CVE-2022-41953) în produsul Git pentru Windows, care permite executarea de cod la clonarea prin interfața grafică a depozitelor externe nevalidate. Problema este cauzată de faptul că Git GUI pentru Windows, după operația „checkout”, rulează automat unele comenzi de prelucrări ulterioare, cum ar fi executarea programului de verificare a ortografiei, având în vedere că căile de căutare a fișierului de verificare a ortografiei acoperă și copacul de lucru clonat (atacul constă în adăugarea de verificare a ortografiei în copacul de lucru al depozitului).

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster