Det er identifisert en sårbarhet i Composer som kompromitterer Packagist PHP-depotet

Noen dager siden nyheter brøt at en kritisk sårbarhet er identifisert en avhengighetsansvarlig for Komponer (CVE-2021-29472) som lar deg kjøre vilkårlige kommandoer på systemet når du behandler en pakke med en spesielt utformet URL-verdi som bestemmer retningen for å laste ned kildekoden.

Problemet manifesterer seg i komponentene GitDriver, SvnDriver og HgDriver brukes med Git-, Subversion- og Mercurial-kildekontrollsystemene. Sårbarheten ble løst i Composer versjoner 1.10.22 og 2.0.13.

Spesielt er Composers standard Packagist-pakkeoppbevaringssted, som inneholder 306.000 1.400 PHP-utviklerpakker og tilbyr mer enn XNUMX milliarder nedlastinger per måned, spesielt berørt.

I PHP-økosystemet er Composer det viktigste verktøyet for å administrere og installere programvareavhengigheter. Utviklingsteam over hele verden bruker den til å lette oppgraderingsprosessen og sikre at applikasjoner kjøres uanstrengt i alle miljøer og versjoner.

Eksperimentet viste at hvis det var informasjon om problemet, kunne angriperne ta kontroll over Packagist-infrastrukturen og fange opplysningene til vedlikeholdere eller omdirigere nedlasting av pakker til en tredjepartsserver, og arrangere levering av pakkevarianter med endringer. skadelig for å erstatte en bakdør under avhengighetsinstallasjon.

Faren for sluttbrukere er begrenset på grunn av at innholdet i composer.json vanligvis er brukerdefinert og lenker til kilden sendes når du får tilgang til tredjepartsregister, som vanligvis er pålitelige. Hovedslaget falt på Packagist.org-depotet og Private Packagist-tjenesten, som ringer Komponist med overføring av data mottatt fra brukere. Angripere kan kjøre koden sin på Packagist-servere ved å slippe en spesiallaget pakke.

Packagist-teamet løste sårbarheten innen 12 timer etter varsel av sårbarhet. Forskere varslet Packagist-utviklere privat 22. april, og problemet ble løst samme dag. En offentlig Composer-oppdatering med en løsning for sårbarheten ble utgitt 27. april, og detaljer ble avslørt 28. april. En revisjon av loggene på Packagists servere avdekket ingen mistenkelig aktivitet knyttet til sårbarheten.

Argumentinjeksjonsfeil er en veldig interessant klasse av feil som ofte blir oversett under kodevurderinger og fullstendig oversett i svart boksinteraksjoner.

Problemet skyldes en feil i URL-valideringskoden i root composer.json-filen og i nedlastningskoblingene for kilden. Feilen har vært i koden din siden november 2011. Packagist bruker spesielle lag for å administrere nedlasting av koder uten å være bundet til et bestemt kildekontrollsystem, som utføres ved å ringe "fromShellCommandline" med kommandolinjeargumenter.

Kjernen i problemet er at metoden ProcessExecutor tillot deg å spesifisere eventuelle ekstra samtaleparametere i URL-en. En slik flukt manglet i driverne GitDriver.php, SvnDriver.php og HgDriver.php. GitDriver.php-angrepet ble hemmet av det faktum at kommandoen "git ls-remote" ikke støttet spesifisering av ytterligere argumenter etter banen.

Et angrep på HgDriver.php ble gjort mulig ved å sende parameteren "–config" til "hq" -verktøyet, som gjør det mulig å organisere utførelsen av en hvilken som helst kommando ved å manipulere "alias.identify" -konfigurasjonen.

Ved å sende en testpakke med en lignende URL til Packagist, sørget forskerne for at serveren deres mottok en HTTP-forespørsel fra en av Packagist-serverne på AWS etter at den ble publisert, og som inneholdt en liste over filene i gjeldende katalog.

Det skal bemerkes at vedlikeholdspersonene ikke identifiserte tegn på tidligere utnyttelse av denne sårbarheten i den offentlige instansen av pakkeren.

Til slutt, hvis du er interessert i å vite mer om det, kan du konsultere detaljene I den følgende lenken.


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: AB Internet Networks 2008 SL
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.