U programu Composer identificirana je ranjivost koja ugrožava Packagist PHP spremište

Prije nekoliko dana izbila je vijest da je identificirana kritična ranjivost en upravitelj zavisnosti od kompozitor (CVE-2021-29472) koja vam omogućuje izvršavanje proizvoljnih naredbi na sistemu prilikom obrade paketa sa posebno oblikovanom vrijednošću URL-a koja određuje smjer za preuzimanje izvornog koda.

Problem se očituje u komponentama GitDriver, SvnDriver i HgDriver koristi se sa Git, Subversion i Mercurial sistemima za kontrolu izvora. Ranjivost je ispravljena u verzijama Composer 1.10.22 i 2.0.13.

Naročito je pogođeno Composerovo zadano spremište Packagist paketa, koje sadrži 306.000 1.400 PHP razvojnih paketa i nudi više od XNUMX milijarde preuzimanja mjesečno.

U PHP ekosustavu, Composer je glavni alat za upravljanje i instaliranje softverskih zavisnosti. Razvojni timovi širom svijeta koriste ga kako bi olakšali postupak nadogradnje i osigurali da aplikacije rade bez napora u svim okruženjima i verzijama.

Eksperiment je pokazao da bi, ako bi postojale informacije o problemu, napadači mogli preuzeti kontrolu nad paketističkom infrastrukturom i presresti vjerodajnice održavača ili preusmjeriti preuzimanje paketa na nezavisni server, dogovarajući isporuku varijanti paketa s promjenama. zlonamjernih korisnika da zamijene backdoor tijekom instalacije ovisnosti.

Opasnost za krajnje korisnike je ograničena zbog činjenice da sadržaj composer.json obično definira korisnik, a veze do izvora se prosljeđuju prilikom pristupa nezavisnim spremištima, koja su obično pouzdana. Glavni udarac pao je na spremište Packagist.org i uslugu Private Packagist, taj poziv Composer s prijenosom podataka primljenih od korisnika. Napadači su mogli pokretati svoj kod na Packagist serverima ispuštanjem posebno izrađenog paketa.

Tim Packagist je riješio ranjivost u roku od 12 sati od obavijesti ranjivosti. Istraživači su privatno obavijestili programere Packagist 22. aprila, a problem je riješen istog dana. Javno ažuriranje programa Composer s ispravkom ranjivosti objavljeno je 27. aprila, a detalji su otkriveni 28. aprila. Revizija dnevnika na Packagistovim serverima nije otkrila nikakve sumnjive aktivnosti povezane sa ranjivošću.

Pogreške ubrizgavanja argumenata zaista su zanimljiva klasa pogrešaka koje se često previđaju tijekom pregleda koda i u potpunosti se previđaju u interakcijama crnog okvira.

Problem je uzrokovan greškom u kodu za provjeru URL-a u korijenskoj datoteci composer.json i u izvornim vezama za preuzimanje. Bug je prisutan u kodu od novembra 2011. Packagist koristi posebne slojeve za upravljanje preuzimanjima koda bez vezivanja za određeni sistem kontrole izvora, koji se izvršava pozivanjem "fromShellCommandline" s argumentima naredbenog retka.

Srž problema je u tome što vam je metoda ProcessExecutor omogućila da navedete sve dodatne parametre poziva u URL-u. Takav bijeg nedostajao je u upravljačkim programima GitDriver.php, SvnDriver.php i HgDriver.php. GitDriver.php napad omela je činjenica da naredba "git ls-remote" nije podržavala specificiranje dodatnih argumenata nakon staze.

Napad na HgDriver.php omogućen je prosljeđivanjem parametra "–config" uslužnom programu "hq", koji omogućava organiziranje izvršavanja bilo koje naredbe manipuliranjem konfiguracije "alias.identify".

Predajući paket za testiranje sa sličnim URL-om Packagistu, istraživači su osigurali da nakon objavljivanja njihov server primi HTTP zahtjev od jednog od Packagist servera na AWS-u koji je sadržavao listu datoteka u trenutnom direktoriju.

Treba imati na umu da održavaoci nisu identificirali nikakve znakove prethodnog iskorištavanja ove ranjivosti u javnoj instanci pakista.

Konačno, ako ste zainteresirani da saznate više o tome, možete potražiti detalje Na sledećem linku.


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Odgovoran za podatke: AB Internet Networks 2008 SL
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.