Der er identificeret en sårbarhed i Composer, der kompromitterer Packagist PHP-lageret

Få dage siden nyheden om, at en kritisk sårbarhed er blevet identificeret en afhængighedslederen Komponere (CVE-2021-29472), der gør det muligt at udføre vilkårlige kommandoer på systemet, når en pakke behandles med en specielt dannet URL-værdi, der bestemmer adressen for at downloade kildekoden.

Problemet manifesterer sig i GitDriver-, SvnDriver- og HgDriver-komponenterne bruges med Git, Subversion og Mercurial kildekontrolsystemerne. Sårbarheden blev rettet i Composer-versionerne 1.10.22 og 2.0.13.

Især Composers standard Packagist-pakkelager, som indeholder 306.000 PHP-udviklerpakker og tilbyder mere end 1.400 milliarder månedlige downloads, er særligt påvirket.

I PHP-økosystemet er Composer det primære værktøj til at administrere og installere softwareafhængigheder. Det bruges af udviklingsteams over hele verden til at lette opgraderingsprocessen og sikre, at apps fungerer ubesværet på tværs af alle miljøer og versioner.

Eksperimentet viste, at hvis der var information om problemet, kunne angribere tage kontrol over Packagists infrastruktur og opsnappe vedligeholderes legitimationsoplysninger eller omdirigere pakkedownload til en tredjepartsserver, og arrangere levering af pakkevarianter med ondsindede ændringer for at erstatte en bagdør under afhængighedsinstallation.

Faren for slutbrugerne er begrænset på grund af det faktum, at indholdet af composer.json normalt er brugerdefineret, og links til kilden sendes, når man får adgang til tredjepartslagre, som ofte er tillid til. Det største slag faldt på Packagist.org-depotet og Private Packagist-tjenesten, som kalder Composer med overførsel af data modtaget fra brugere. Angribere kunne køre deres kode på Packagist-servere ved at placere en specielt udformet pakke.

Packagist-teamet løste sårbarheden inden for 12 timer efter meddelelsen af sårbarhed. Forskerne underrettede privat Packagist-udviklere den 22. april, og problemet blev løst samme dag. En offentlig Composer-opdatering med en rettelse til sårbarheden blev udgivet den 27. april, med detaljer afsløret den 28. april. En revision af logfilerne på Packagists servere afslørede ikke nogen mistænkelig aktivitet forbundet med sårbarheden.

Argumentindsprøjtningsfejl er en virkelig interessant klasse af fejl, som ofte bliver overset under kodegennemgange og totalt savnet i black box-interaktioner.

Problemet skyldes en fejl i URL-valideringskoden i rodfilen composer.json og i downloadlinks til kilden. Fejlen har været til stede i koden siden november 2011. Packagist bruger specielle lag til at administrere kodedownloads uden at være bundet til et specifikt kildekontrolsystem, som udføres ved at kalde "fromShellCommandline" med kommandolinjeargumenter.

Problemets kerne er, at ProcessExecutor-metoden tillod dig at angive eventuelle yderligere opkaldsparametre i URL'en. En sådan flugt manglede i GitDriver.php-, SvnDriver.php- og HgDriver.php-driverne. GitDriver.php-angrebet blev hæmmet af det faktum, at kommandoen "git ls-remote" ikke understøttede at specificere yderligere argumenter efter stien.

Et angreb på HgDriver.php blev gjort muligt ved at sende parameteren “–config” til hjælpeprogrammet “hq”, som tillader udførelsen af ​​enhver kommando ved at manipulere “alias.identify”-konfigurationen.

Ved at indsende en testpakke med en lignende URL til Packagist sikrede forskerne, at deres server efter at være blevet publiceret ville modtage en HTTP-anmodning fra en af ​​Packagists servere på AWS indeholdende en liste over filerne i den aktuelle mappe.

Det skal bemærkes, at vedligeholderne ikke identificerede nogen tegn på forudgående udnyttelse af denne sårbarhed i den offentlige forekomst af packagisten.

Endelig, hvis du er interesseret i at vide mere om det, kan du konsultere detaljerne I det følgende link.


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for data: AB Internet Networks 2008 SL
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.