„Composer“ buvo nustatytas pažeidžiamumas, kuris pažeidžia „Packagist PHP“ saugyklą

Prieš kelias dienas pasirodė naujiena, kad nustatytas kritinis pažeidžiamumas en - priklausomybės valdytojas kompozitorius (CVE-2021-29472), leidžiančią sistemoje vykdyti savavališkas komandas apdorojant paketą su specialiai suformuota URL reikšme, kuri nustato kryptį atsisiųsti šaltinio kodą.

Problema pasireiškia „GitDriver“, „SvnDriver“ ir „HgDriver“ komponentuose naudojamas su „Git“, „Subversion“ ir „Mercurial“ šaltinio valdymo sistemomis. Pažeidžiamumas buvo ištaisytas kompozitorių versijose 1.10.22 ir 2.0.13.

Visų pirma tai paveikiama pagal numatytąjį „Composer“ paketų saugyklą „Packagist“, kurioje yra 306.000 1.400 PHP kūrėjų paketų ir siūloma daugiau nei XNUMX mlrd. Atsisiuntimų per mėnesį.

PHP ekosistemoje „Composer“ yra pagrindinis įrankis valdant ir diegiant programinės įrangos priklausomybes. Kūrėjų komandos visame pasaulyje naudojasi palengvindamos naujovinimo procesą ir užtikrindamos, kad programos be vargo veiktų visose aplinkose ir versijose.

Eksperimentas parodė, kad jei buvo informacijos apie problemą, užpuolikai galėjo perimti „Packagist“ infrastruktūros kontrolę ir perimti prižiūrėtojų kredencialus arba peradresuoti paketų atsisiuntimą į trečiosios šalies serverį, organizuodami paketų variantų pristatymą su pakeitimais. kenkėjiškai pakeisti užpakalinę dalį diegiant priklausomybę.

Pavojus galutiniams vartotojams yra ribotas dėl to, kad „composer.json“ turinį paprastai apibrėžia vartotojas, o nuorodos į šaltinį perduodamos patekus į trečiųjų šalių saugyklas, kurios paprastai yra patikimos. Pagrindinis smūgis teko „Packagist.org“ saugyklai ir „Private Packagist“ tarnybai, kad skambinkite Kompozitoriui perduodant iš vartotojų gautus duomenis. Užpuolikai galėjo paleisti savo kodą „Packagist“ serveriuose, numetę specialiai sukurtą paketą.

„Packagist“ komanda pašalino pažeidžiamumą per 12 valandų nuo pranešimo pažeidžiamumo. Tyrėjai balandžio 22 d. Privačiai pranešė „Packagist“ kūrėjams, ir problema buvo išspręsta tą pačią dieną. Viešas kompozitoriaus naujinimas su pataisymu dėl pažeidžiamumo buvo išleistas balandžio 27 d., O išsami informacija buvo atskleista balandžio 28 d. Atlikus žurnalų auditą „Packagist“ serveriuose, neaptikta įtartinos veiklos, susijusios su pažeidžiamumu.

Argumentų įpurškimo klaidos yra tikrai įdomi klaidų klasė, kurios dažnai nepaisomos peržiūrint kodus ir visiškai nepaisomos sąveikos su juodąja dėže metu.

Problemą sukelia URL patvirtinimo kodo klaida šakniniame faile composer.json ir šaltinio atsisiuntimo nuorodose. Ši klaida buvo jūsų kode nuo 2011 m. Lapkričio mėn. „Packagist“ naudoja specialius sluoksnius tvarkydama kodų atsisiuntimus nesusijungdama su konkrečia šaltinio valdymo sistema, kuri vykdoma iškviečiant „fromShellCommandline“ su komandinės eilutės argumentais.

Problemos esmė ta, kad „ProcessExecutor“ metodas leido URL nurodyti bet kokius papildomus skambučių parametrus. Tokio pabėgimo trūko GitDriver.php, SvnDriver.php ir HgDriver.php tvarkyklėms. „GitDriver.php“ ataką apsunkino tai, kad „git ls-remote“ komanda nepalaikė papildomų argumentų nurodymo po kelio.

Išpuolis prieš HgDriver.php buvo įmanomas perduodant „–config“ parametrą „hq“ įrankiui, kuris leidžia organizuoti bet kurios komandos vykdymą manipuliuojant „alias.identify“ konfigūracija.

Pateikdami bandomąjį paketą su „Packagist“ panašiu URL, mokslininkai užtikrino, kad po jo paskelbimo jų serveris gavo HTTP užklausą iš vieno iš „AWS“ „Packagist“ serverių, kuriame buvo dabartiniame kataloge esančių failų sąrašas.

Reikėtų pažymėti, kad prižiūrėtojai nenustatė jokių ankstesnio šio pažeidžiamumo išnaudojimo ženklų viešoje pakuotojo vietoje.

Galiausiai, jei norite sužinoti apie tai daugiau, galite sužinoti išsamią informaciją Šioje nuorodoje.


Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Už duomenis atsakingas: AB Internet Networks 2008 SL
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.