korrektsioonivĂ€ljastused hajutatud versioonikontrollisĂŒsteemis Git 2.24.1, 2.23.1, 2.22.2, 2.21.1, 2.20.2, 2.19.3, 2.18.2, 2.17.3, 2.16.6, 2.15.4 ja 2.14.6, kus on kĂ”rvaldatud haavatavused, mis vĂ”imaldavad rĂŒndajal kirjutada ĂŒle juhuslikud teed failisĂŒsteemis, korraldada kaugkoodi kĂ€ivitamist vĂ”i kirjutada faile katalooge «.git/». Enamik probleeme avastasid töötajad
Microsoft Security Response Center, viis kaheksast haavatavusest on spetsiifilised Windowsi platvormile.
- â voogedastamise kĂ€sk «feature export-marks=path» kirjutada sildid juhuslikesse kataloogidesse, mida saab kasutada juhuslike teede ĂŒlekirjutamiseks failisĂŒsteemis, kui teostatakse âgit fast-importâ operatsiooni mitteusaldusvÀÀrsete sisenditega.
- â vale argumentide pĂ”genes command line-is rĂŒndades rĂŒnnakute koodide kaugteostamisele, kui kasutada korda koopiate loomist URL-iga ssh://. EelkĂ”ige ei töödeldud Ă”igesti argumentide, mis lĂ”ppevad tagurpidi kaldkriipsuga (nĂ€iteks «test \»), escapingut. Sel juhul, kui argument oli ĂŒmbritsetud kahekordse jutumĂ€rgiga, jĂ€i viimane jutumĂ€rk escapingut, mis vĂ”imaldas asendada oma valikutes kĂ€sureal.
- â submodulite rekursiivse kloonimise (»clone ârecurse-submodules«) kĂ€igus Windowsi keskkonnas teatud tingimustel algatada ĂŒhe git-katalooge kahel korral (.git, git~1, git~2 ja git~N NTFS-is tuvastatakse ĂŒhe kataloogina, kuid seda olukorda kontrolliti ainult git~1 jaoks), mis vĂ”is vĂ”imaldada kirjutamist katalooge «.git». Kaugteostamise teostamiseks vĂ”is rĂŒndaja nĂ€iteks asendada oma skripti post-checkouti töötlejas failis .git/config.
- â kettakĂ€itleja, mille eesmĂ€rk on töödelda Windowsi teede klassikalisi tĂ€hestiklike nimede kujundeid nagu âC:\â, oli projekteeritud ainult ĂŒhe tĂ€hega ladina identifikaatorite asendamiseks, kuid ei arvestanud virtuaalsete diskide loomise vĂ”imalust, mis mÀÀratakse lĂ€bi âsubst tĂ€ht:teeâ. Selliseid teid tĂ”lgendati mitte kui absoluutseid, vaid kui suhtelisi teid, mis vĂ”imaldasid halba taustsĂŒsteemi kloonimise korral korraldada kirjutamist meelevaldsetesse kataloogidesse vĂ€ljaspool tööpuu kataloogide struktuuri (nĂ€iteks numbrite vĂ”i unicode-mĂ€rkide kasutamine ketta nimedes â â1:\what\the\hex.txtâ vĂ”i âĂ€:\tschibĂ€t.schâ).
- â Windowsi platvormil töötamisel, NTFS-is loodud alternatiivsete andmevoogude kasutamine, mis lisatakse faili nimele, lisades atribuudi â:stream-name:stream-typeâ kĂŒll aga ĂŒle kirjutada failid kataloogis â.git/â kloonimise kĂ€igus halva taustsĂŒsteemi kloonimise puhul. NĂ€iteks NTFS-is tĂ”lgendati nime â.git::$INDEX_ALLOCATIONâ korrektse viitena kataloogile â.gitâ.
- â Git'i kasutamisel WSL (Windows Subsystem for Linux) keskkonnas, kui pöörduda töökausta poole nimede manipuleerimise kaitse NTFS-is (rĂŒnnakud nimeĂŒlekande kaudu FAT-i kaudu olid vĂ”imalikud, nĂ€iteks, "git" katalooge sai ligi pÀÀseda katalooge kaudu "git~1").
- â
".git/" katalooge Windowsis kurjauslikest hoidlest kloonimisel, mis sisaldavad faile, mille nimi sisaldab tagasiviidatud kaldteed (nĂ€iteks, "a\b"), mis on lubatav Unix/Linux-is, kuid mĂ”istetakse Windowsis teena. - â ebapiisav submoodulite nime kontrollimine vĂ”is olla kasutatud sihitud rĂŒnnakute korraldamiseks, mis potentsiaalselt rekursiivse kloonimise kĂ€igus rĂŒnnakute koodi tĂ€itmiseni. Git ei keelanud mooduli katalooge submooduli kataloogides loomast, mis enamikul juhtudel vĂ”ib pĂ”hjustada segadust, kuid ei vĂ€lista potentsiaalselt teise mooduli sisu ĂŒle kirjutamist rekursiivse kloonimise kĂ€igus (nĂ€iteks, submooduli kataloogid "hippo" ja "hippo/hooks" asuvad vastavalt "git/modules/hippo/" ja "git/modules/hippo/hooks/", ning "hooks" katalooge hippo's vĂ”ib eraldi kasutada kĂ€ivitatavate kĂ€itlejate hoidmiseks.
Windowsi kasutajatele soovitatakse kiiresti uuendada Git versiooni ning enne uuendamist vĂ€ltida kontrollimata repositooriumide kloonimist. Kui Git'i versiooni kiiret uuendamist pole vĂ”imalik teha, siis soovitatakse rĂŒnnakute riski vĂ€hendamiseks mitte kĂ€ivitada "git clone --recurse-submodules" ja "git submodule update" kontrollimata repositooriumitega, mitte kasutada "git fast-import" kontrollimata sisendvoogudega ning mitte kloonida repositooriume NTFS-pĂ”histele ketastele.
Uutes vÀljaannetes on tÀiendava kaitse nimel keelatud kasutada .gitmodules failis konstruktsioone vormis "submodule.{name}.update=!command". Pakettide uuenduste vÀljalaskmise jÀlgimiseks saab vaadata lehelt ,, , , , , , .
Allikas: opennet.ru
