Composerissa on havaittu haavoittuvuus, joka vaarantaa Packagist PHP -tietovaraston

Muutama päivä sitten uutiset rikkoivat, että kriittinen haavoittuvuus on havaittu en - riippuvuuspäällikkö säveltää (CVE-2021-29472), jonka avulla voit suorittaa mielivaltaisia ​​komentoja järjestelmässä käsitellessäsi pakettia, jolla on erityisesti muodostettu URL-arvo, joka määrittää lähdekoodin lataussuunnan.

Ongelma ilmenee GitDriver-, SvnDriver- ja HgDriver-komponenteissa käytetään Git-, Subversion- ja Mercurial-lähdeohjausjärjestelmien kanssa. Haavoittuvuus korjattiin Composer-versioissa 1.10.22 ja 2.0.13.

Erityisesti tämä vaikuttaa Composerin oletusarvoiseen Packagist-pakettivarastoon, joka sisältää 306.000 1.400 PHP-kehittäjäpakettia ja tarjoaa yli XNUMX miljardia latausta kuukaudessa.

PHP-ekosysteemissä Composer on tärkein työkalu ohjelmistiriippuvuuksien hallintaan ja asentamiseen. Kehitystiimit ympäri maailmaa käyttävät sitä päivitysprosessin helpottamiseen ja varmistavat, että sovellukset toimivat vaivattomasti kaikissa ympäristöissä ja versioissa.

Kokeessa kävi ilmi, että jos ongelmasta oli tietoa, hyökkääjät voisivat hallita Packagist-infrastruktuuria ja siepata ylläpitäjien tunnistetiedot tai ohjata pakettien lataamisen kolmannen osapuolen palvelimelle järjestämällä pakettimuunnelmien toimituksen muutoksilla. haitalliset käyttäjät korvaamaan takaoven riippuvuuden asennuksen aikana.

Vaara loppukäyttäjille on rajallinen johtuu siitä, että composer.json-sisällön määrittelee yleensä käyttäjä ja linkit lähteeseen välitetään käytettäessä kolmannen osapuolen arkistoja, jotka ovat yleensä luotettavia. Suurin isku laski Packagist.org-arkistoon ja Private Packagist -palveluun, että soitat Composerille käyttäjiltä vastaanotettujen tietojen siirtämisellä. Hyökkääjät voivat suorittaa koodinsa Packagist-palvelimilla pudottamalla erityisen muotoillun paketin.

Packagist-tiimi korjasi haavoittuvuuden 12 tunnin sisällä ilmoituksesta haavoittuvuudesta. Tutkijat ilmoittivat yksityisesti Packagist-kehittäjille 22. huhtikuuta, ja asia korjattiin samana päivänä. Julkinen Composer-päivitys, jossa oli korjattu haavoittuvuus, julkaistiin 27. huhtikuuta, ja yksityiskohdat paljastettiin 28. huhtikuuta. Packagistin palvelimien lokien tarkastus ei paljastanut haavoittuvuuteen liittyvää epäilyttävää toimintaa.

Argumentin injektointivirheet ovat todella mielenkiintoinen luokka virheitä, jotka jätetään usein huomiotta koodin tarkistuksen aikana ja jätetään kokonaan huomiotta mustan laatikon vuorovaikutuksessa.

Ongelma johtuu virheestä URL-vahvistuskoodissa juurikomponentissa.json-tiedostossa ja lähteen latauslinkeissä. Virhe on ollut läsnä koodissa marraskuusta 2011 lähtien. Packagist käyttää erityisiä tasoja koodilatausten hallintaan ilman, että se on sidottu tiettyyn lähteen ohjausjärjestelmään, joka suoritetaan kutsumalla "fromShellCommandline" komentoriviargumenteilla.

Ongelman ydin on se, että ProcessExecutor-menetelmä antoi sinun määrittää kaikki muut puheluparametrit URL-osoitteeseen. Tällainen paeta puuttui GitDriver.php-, SvnDriver.php- ja HgDriver.php-ohjaimista. GitDriver.php-hyökkäystä haittasi se, että "git ls-remote" -komento ei tue lisä argumenttien määrittämistä polun jälkeen.

Hyökkäys HgDriver.php: tä vastaan ​​oli mahdollista siirtämällä "–config" -parametri "hq" -apuohjelmaan, mikä sallii minkä tahansa komennon suorittamisen organisoimisen "alias.identify" -määrityksellä.

Lähettämällä testipaketin, jolla on samanlainen URL-osoite Packagistille, tutkijat varmistivat, että palvelin sai julkaisemisensa jälkeen HTTP-pyynnön yhdeltä AWS: n Packagist-palvelimelta, joka sisälsi luettelon nykyisen hakemiston tiedostoista.

On huomattava, että ylläpitäjät eivät havainneet merkkejä tämän haavoittuvuuden aikaisemmasta hyödyntämisestä pakkausyksikön julkisessa instanssissa.

Lopuksi, jos haluat tietää enemmän siitä, voit tutustua yksityiskohtiin Seuraavassa linkissä.


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastaa tiedoista: AB Internet Networks 2008 SL
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.