A fost identificată o vulnerabilitate în Composer care compromite depozitul PHP Packagist

Acum cateva zile s-a dat vestea că a fost identificată o vulnerabilitate critică en managerul de dependență al Compozitor (CVE-2021-29472) care vă permite să executați comenzi arbitrare pe sistem atunci când procesați un pachet cu o valoare URL special formată care determină direcția de descărcare a codului sursă.

Problema se manifestă în componentele GitDriver, SvnDriver și HgDriver utilizat cu sistemele de control al sursei Git, Subversion și Mercurial. Vulnerabilitatea a fost remediată în versiunile 1.10.22 și 2.0.13 de la Composer.

În special, depozitul de pachete implicit al compozitorului, care conține 306.000 de pachete de dezvoltatori PHP și oferă mai mult de 1.400 miliarde de descărcări pe lună, este afectat în mod deosebit.

În ecosistemul PHP, Composer este instrumentul principal pentru gestionarea și instalarea dependențelor software. Echipele de dezvoltare din întreaga lume îl folosesc pentru a ușura procesul de actualizare și pentru a se asigura că aplicațiile rulează fără efort în toate mediile și versiunile.

Experimentul a arătat că, dacă există informații despre problemă, atacatorii ar putea prelua controlul asupra infrastructurii Packagist și intercepta acreditările întreținătorilor sau redirecționa descărcarea pachetelor către un server terț, aranjând livrarea variantelor de pachete cu modificări. rău intenționat pentru a înlocui un backdoor în timpul instalării dependenței.

Pericolul pentru utilizatorii finali este limitat datorită faptului că conținutul compozitorului.json este de obicei definit de utilizator și legăturile către sursă sunt transmise atunci când accesează depozite terțe, care sunt de obicei fiabile. Lovitura principală a căzut asupra depozitului Packagist.org și a serviciului Private Packagist, acel apel Composer cu transferul de date primite de la utilizatori. Atacatorii își pot rula codul pe serverele Packagist aruncând un pachet special creat.

Echipa Packagist a rezolvat vulnerabilitatea în termen de 12 ore de la notificare de vulnerabilitate. Cercetătorii au notificat în mod privat dezvoltatorii Packagist pe 22 aprilie, iar problema a fost rezolvată în aceeași zi. O actualizare publică a compozitorului cu o soluție pentru vulnerabilitate a fost lansată pe 27 aprilie, iar detaliile au fost dezvăluite pe 28 aprilie. Un audit al jurnalelor de pe serverele Packagist nu a relevat nicio activitate suspectă asociată cu vulnerabilitatea.

Erorile de injectare a argumentelor sunt o clasă cu adevărat interesantă de erori care sunt adesea trecute cu vederea în timpul revizuirii codului și complet trecute cu vederea în interacțiunile din caseta neagră.

Problema este cauzată de o eroare în codul de validare URL în fișierul rădăcină composer.json și în linkurile de descărcare sursă. Bug-ul se află în codul dvs. din noiembrie 2011. Packagist folosește straturi speciale pentru a gestiona descărcările de cod fără a fi legat de un anumit sistem de control sursă, care se execută apelând „fromShellCommandline” cu argumente din linia de comandă.

Inima problemei este că metoda ProcessExecutor v-a permis să specificați parametrii suplimentari de apel în adresa URL. O astfel de scăpare lipsea de la driverele GitDriver.php, SvnDriver.php și HgDriver.php. Atacul GitDriver.php a fost împiedicat de faptul că comanda „git ls-remote” nu a acceptat specificarea argumentelor suplimentare după cale.

Un atac asupra HgDriver.php a fost posibil prin trecerea parametrului „–config” către utilitarul „hq”, care permite organizarea executării oricărei comenzi prin manipularea configurației „alias.identify”.

Prin trimiterea unui pachet de testare cu o adresă URL similară cu Packagist, cercetătorii s-au asigurat că după ce a fost publicat, serverul lor a primit o cerere HTTP de la unul dintre serverele Packagist de pe AWS care conținea o listă a fișierelor din directorul curent.

Trebuie remarcat faptul că întreținătorii nu au identificat niciun semn de exploatare prealabilă a acestei vulnerabilități în instanța publică a pachetului.

În cele din urmă, dacă sunteți interesat să aflați mai multe despre aceasta, puteți consulta detaliile În următorul link.


Lasă comentariul tău

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

*

*

  1. Responsabil pentru date: AB Internet Networks 2008 SL
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.