En sårbarhet har identifierats i Composer som äventyrar Packagist PHP-förvaret

Några dagar sen nyheter bröt att en kritisk sårbarhet har identifierats en beroendeshanteraren för Samman (CVE-2021-29472) som låter dig köra godtyckliga kommandon på systemet när du bearbetar ett paket med ett speciellt utformat URL-värde som bestämmer riktningen för att ladda ner källkoden.

Problemet manifesterar sig i komponenterna GitDriver, SvnDriver och HgDriver används med styrsystemen Git, Subversion och Mercurial. Sårbarheten åtgärdades i Composer-versionerna 1.10.22 och 2.0.13.

I synnerhet berörs särskilt Composer standard Packagist-paketförvar, som innehåller 306.000 1.400 PHP-utvecklarpaket och erbjuder mer än XNUMX miljarder nedladdningar varje månad.

I PHP-ekosystemet är Composer det viktigaste verktyget för hantering och installation av programberoende. Utvecklingsteam runt om i världen använder den för att underlätta uppgraderingsprocessen och säkerställa att applikationer körs utan problem i alla miljöer och versioner.

Experimentet visade att om det fanns information om problemet kunde angriparna ta kontroll över Packagist-infrastrukturen och fånga underhållsuppgifterna eller omdirigera nedladdningen av paket till en tredjepartsserver och ordna leverans av paketvarianter med ändringar. skadlig för att ersätta en bakdörr under beroendeinstallation.

Risken för slutanvändarna är begränsad på grund av att innehållet i composer.json vanligtvis är användardefinierat och länkar till källan skickas vid åtkomst till tredjepartsförvar, som vanligtvis är tillförlitliga. Det största slaget föll på Packagist.org-förvaret och Private Packagist-tjänsten, det samtalet Composer med överföringen av data som tas emot från användare. Angripare kan köra sin kod på Packagist-servrar genom att släppa ett speciellt utformat paket.

Packagist-teamet löste sårbarheten inom 12 timmar efter anmälan sårbarhet. Forskare meddelade Packagist-utvecklare privat den 22 april och frågan fixades samma dag. En offentlig Composer-uppdatering med en korrigering för sårbarheten släpptes den 27 april och detaljer avslöjades den 28 april. En granskning av loggarna på Packagists servrar avslöjade ingen misstänkt aktivitet förknippad med sårbarheten.

Argumentinjektionsfel är en riktigt intressant klass av fel som ofta förbises vid kodgranskningar och helt förbises i interaktioner med svart ruta.

Problemet orsakas av ett fel i URL-valideringskoden i root composer.json-filen och i källans nedladdningslänkar. Felet har funnits i koden sedan november 2011. Packagist använder speciella lager för att hantera kodnedladdningar utan att vara bundna till ett specifikt källkontrollsystem, som körs genom att anropa "fromShellCommandline" med kommandoradsargument.

Kärnan i problemet är att metoden ProcessExecutor tillåter att ange ytterligare samtalsparametrar i URL: n. En sådan flykt saknades från drivrutinerna GitDriver.php, SvnDriver.php och HgDriver.php. GitDriver.php-attacken hindrades av det faktum att kommandot "git ls-remote" inte stödde att ange ytterligare argument efter sökvägen.

En attack mot HgDriver.php möjliggjordes genom att parametern "–config" skickades till "hq" -verktyget, vilket gör det möjligt att organisera körningen av valfritt kommando genom att manipulera konfigurationen "alias.identify".

Genom att skicka in ett testpaket med en liknande URL till Packagist, såg forskarna att efter det publicerades fick deras server en HTTP-begäran från en av Packagist-servrarna på AWS som innehöll en lista över filerna i den aktuella katalogen.

Det bör noteras att underhållarna inte identifierade några tecken på tidigare utnyttjande av denna sårbarhet i det offentliga fallet av förpackaren.

Slutligen, om du är intresserad av att veta mer om det, kan du konsultera detaljerna I följande länk.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för data: AB Internet Networks 2008 SL
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.