Vulnshtë identifikuar një dobësi në Kompozitor që komprometon depon e Packagist PHP

Pak ditë më parë lajmi shpërtheu se është identifikuar një dobësi kritike en menaxheri i varësisë i Kompozitor (CVE-2021-29472) që ju lejon të ekzekutoni komanda arbitrare në sistem kur përpunoni një paketë me një vlerë URL të formuar posaçërisht që përcakton drejtimin për të shkarkuar kodin burimor.

Problemi manifestohet në përbërësit GitDriver, SvnDriver dhe HgDriver përdoret me sistemet e kontrollit të burimit Git, Subversion dhe Mercurial. Dobësia është rregulluar në versionet e Kompozitorit 1.10.22 dhe 2.0.13.

Në veçanti, preket posaçërisht depoja e paketës Packagist e Kompozitorit, e cila përmban 306.000 paketa zhvilluesish PHP dhe që ofron më shumë se 1.400 miliardë shkarkime në muaj, është veçanërisht e prekur.

Në ekosistemin PHP, Kompozitori është mjeti kryesor për menaxhimin dhe instalimin e varësive të programeve. Ekipet e zhvillimit në të gjithë botën e përdorin atë për të lehtësuar procesin e azhurnimit dhe për të siguruar që aplikacionet të ekzekutohen pa mundim në të gjitha mjediset dhe versionet.

Eksperimenti tregoi se nëse kishte informacion në lidhje me problemin, sulmuesit mund të merrnin kontrollin e infrastrukturës Packagist dhe të kapnin kredencialet e mirëmbajtësve ose të ridrejtonin shkarkimin e paketave në një server të palës së tretë, duke rregulluar shpërndarjen e varianteve të paketave me ndryshime. përdoruesit me qëllim të keq për të zëvendësuar një derë të pasme gjatë instalimit të varësisë.

Rreziku për përdoruesit përfundimtarë është i kufizuar për shkak të faktit se përmbajtja e kompozitorit.json zakonisht përcaktohet nga përdoruesi dhe lidhjet me burimin kalohen gjatë hyrjes në depot e palëve të treta, të cilat zakonisht janë të besueshme. Goditja kryesore ra në depon e Packagist.org dhe shërbimin Privat Packagist, që e quajnë Kompozitorin me transferimin e të dhënave të marra nga përdoruesit. Sulmuesit mund të ekzekutojnë kodin e tyre në serverat Packagist duke hedhur një paketë të krijuar posaçërisht.

Ekipi i Packagist zgjidhi cenueshmërinë brenda 12 orësh nga njoftimi e cenueshmërisë. Studiuesit njoftuan privatisht zhvilluesit e Packagist më 22 Prill dhe çështja u rregullua të njëjtën ditë. Një azhurnim publik i Kompozitorit me një rregullim të ndjeshmërisë u lëshua më 27 Prill, dhe detajet u zbuluan më 28 Prill. Një auditim i regjistrave në serverat e Packagist nuk zbuloi ndonjë aktivitet të dyshimtë që lidhej me dobësinë.

Gabimet e injektimit të argumenteve janë një klasë vërtet interesante e gabimeve që shpesh neglizhohen gjatë rishikimeve të kodit dhe anashkalohen plotësisht në ndërveprimet e kutisë së zezë.

Problemi është shkaktuar nga një gabim në kodin e vlefshmërisë URL në skedarin root composer.json dhe në lidhjet e shkarkimit të burimit. Gabimi ka qenë në kodin tuaj që nga nëntori 2011. Packagist përdor shtresa të veçanta për të menaxhuar shkarkimet e kodeve pa u lidhur me një sistem të veçantë të kontrollit të burimit, i cili ekzekutohet duke thirrur "fromShellCommandline" me argumente të rreshtit të komandës.

Zemra e problemit është se metoda ProcessExecutor lejoi të specifikojë çdo parametër shtesë të thirrjes në URL. Një arratisje e tillë mungonte në drejtuesit e GitDriver.php, SvnDriver.php dhe HgDriver.php. Sulmi i GitDriver.php u pengua nga fakti që komanda "git ls-remote" nuk mbështeste specifikimin e argumenteve shtesë pas shtegut.

Një sulm ndaj HgDriver.php u bë i mundur duke kaluar parametrin "–config" tek programi "hq", i cili lejon organizimin e ekzekutimit të çdo komande duke manipuluar konfigurimin "alias.identify".

Duke paraqitur një paketë provë me një URL të ngjashme me Packagist, studiuesit siguruan që pasi të ishte botuar, serveri i tyre mori një kërkesë HTTP nga një prej serverave Packagist në AWS që përmbante një listë të skedarëve në direktorinë aktuale.

Duhet të theksohet se mirëmbajtësit nuk kanë identifikuar ndonjë shenjë të shfrytëzimit të mëparshëm të kësaj dobësie në instancën publike të paketuesit.

Së fundmi, nëse jeni të interesuar të dini më shumë rreth kësaj, mund të konsultoheni me detajet Në lidhjen vijuese.


Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: AB Internet Networks 2008 SL
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.