V Composerju je bila odkrita ranljivost, ki ogroža repozitorij Packagist PHP

Pred nekaj dnevi se je pojavila novica, da je bila ugotovljena kritična ranljivost en upravitelj odvisnosti skladatelj (CVE-2021-29472), ki omogoča izvajanje poljubnih ukazov v sistemu pri obdelavi paketa s posebej oblikovano vrednostjo URL-ja, ki določa smer prenosa izvorne kode.

Težava se kaže v komponentah GitDriver, SvnDriver in HgDriver uporablja se z nadzornimi sistemi Git, Subversion in Mercurial. Ranljivost je bila odpravljena v različicah Composer 1.10.22 in 2.0.13.

Zlasti je prizadet privzeti repozitorij paketov Packagist, ki vsebuje 306.000 paketov razvijalcev PHP in ponuja več kot 1.400 milijarde prenosov mesečno.

V ekosistemu PHP je Composer glavno orodje za upravljanje in namestitev odvisnosti programske opreme. Razvojne skupine po vsem svetu ga uporabljajo za lažji postopek nadgradnje in zagotavljajo brezhibno izvajanje aplikacij v vseh okoljih in različicah.

Preizkus je pokazal, da bi lahko napadalci, če bi obstajali podatki o težavi, prevzeli nadzor nad infrastrukturo Packagist in prestregli poverilnice vzdrževalcev ali preusmerili prenos paketov na strežnik tretje osebe in s spremembami uredili dostavo različic paketov. zlonamernih uporabnikov, da med namestitvijo odvisnosti zamenjajo backdoor.

Nevarnost za končne uporabnike je omejena zaradi dejstva, da vsebino composer.json običajno določi uporabnik, povezave do vira pa se posredujejo pri dostopu do drugih skladišč, ki so običajno zanesljive. Glavni udarec je padel na repozitorij Packagist.org in storitev Private Packagist, ta klic Composerja s prenosom podatkov, prejetih od uporabnikov. Napadalci so lahko svojo kodo zagnali na strežnikih Packagist, tako da so spustili posebej izdelan paket.

Skupina Packagist je ranljivost odpravila v 12 urah po obvestilu ranljivosti. Raziskovalci so zasebno obvestili razvijalce Packagist 22. aprila in težava je bila odpravljena še isti dan. Javna posodobitev Composerja s popravkom za ranljivost je bila objavljena 27. aprila, podrobnosti pa so bile razkrite 28. aprila. Revizija dnevnikov na strežnikih Packagist ni razkrila sumljive dejavnosti, povezane z ranljivostjo.

Napake vbrizgavanja argumentov so res zanimiv razred napak, ki jih med pregledovanjem kode pogosto spregledamo in v interakcijah črnega polja popolnoma spregledamo.

Težavo povzroča napaka v kodi za preverjanje URL-ja v korenski datoteki composer.json in v izvornih povezavah za prenos. Napaka je v kodi prisotna od novembra 2011. Packagist uporablja posebne sloje za upravljanje prenosov kode, ne da bi bil vezan na določen sistem nadzora vira, ki se izvede s klicem "fromShellCommandline" z argumenti ukazne vrstice.

Srž težave je v tem, da je metoda ProcessExecutor dovolila v URL-ju določiti dodatne parametre klicev. Takšen pobeg je manjkal pri gonilnikih GitDriver.php, SvnDriver.php in HgDriver.php. Napad GitDriver.php je oviralo dejstvo, da ukaz "git ls-remote" ni podpiral navedbe dodatnih argumentov po poti.

Napad na HgDriver.php je bil omogočen s predajo parametra "–config" v pripomoček "hq", ki omogoča organizacijo izvajanja katerega koli ukaza z manipulacijo konfiguracije "alias.identify".

S predložitvijo testnega paketa s podobnim URL-jem Packagistu so raziskovalci zagotovili, da je njihov strežnik po objavi prejel zahtevo HTTP od enega od strežnikov Packagist na AWS, ki je vseboval seznam datotek v trenutnem imeniku.

Treba je opozoriti, da vzdrževalci niso odkrili nobenih znakov predhodnega izkoriščanja te ranljivosti v javni instanci embalaže.

Nazadnje, če vas zanima več o tem, se lahko obrnete na podrobnosti V naslednji povezavi.


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Odgovoren za podatke: AB Internet Networks 2008 SL
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.