korektÄ«vie izlaidumi izplatÄ«tÄs avota kodu pÄrvaldÄ«bas sistÄmas 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 un 2.14.6, kuros novÄrstas ievainojamÄ«bas, kas ļauj uzbrucÄjam pÄrrakstÄ«t nejauÅ”us ceļus failu sistÄmÄ, organizÄt attÄlinÄtu koda izpildi vai pÄrrakstÄ«t failus direktorijÄ Ā«.git/Ā». LielÄko daļu problÄmu atklÄja Microsoft Security Response Center darbinieki.
Piecas no astoÅÄm ievainojamÄ«bÄm ir specifiskas Windows platformai.
- ā straumÄÅ”anas komanda Ā«feature export-marks=pathĀ» ierakstÄ«t atzÄ«mes nejauÅ”os direktorijos, kas var izmantot, lai pÄrrakstÄ«tu nejauÅ”us ceļus failu sistÄmÄ, veicot operÄciju Ā«git fast-importĀ» ar nepÄrbaudÄ«tiem datiem.
- ā nepareiza komandrindas argumentu ekrÄna izvadīŔana pie attÄlinÄtas koda izpildes, kad tiek veikta rekursÄ«vÄ klonÄÅ”ana, izmantojot URL ssh://. KonkrÄti, netika pareizi apstrÄdÄta argumentu ekrÄna izvadīŔana, kas beidzas ar atpakaļejoÅ”o slÄ«psvÄ«tru (piemÄram, Ā«test \Ā»). Å ajÄ gadÄ«jumÄ, izvietojot argumentu divÄs pÄdiÅÄs, pÄdÄjÄ pÄdiÅa izrÄdÄ«jÄs ekrÄna izvadÄ«ta, kas ļÄva veikt savas opcijas komandrindÄ.
- ā rekursÄ«vÄ klonÄÅ”ana submoduļiem (Ā«clone --recurse-submodulesĀ») Windows vidÄ noteiktos apstÄkļos sÄkt vienas git-katalogs izmantoÅ”anu divas reizes (.git, git~1, git~2 un git~N NTFS tiek atpazÄ«ts kÄ viens katalogs, taÄu Ŕī situÄcija tika pÄrbaudÄ«ta tikai git~1), kas varÄtu tikt izmantots, lai ierakstÄ«tu katalogÄ Ā«.gitĀ». Lai organizÄtu koda izpildi, uzbrucÄjs varÄtu, piemÄram, ievietot savu skriptu caur post-checkout apstrÄdÄtÄju failÄ .git/config.
- ā disku nosaukumu apstrÄdÄtÄjs Windows ceļos tipa Ā«C:\Ā» tika izstrÄdÄts tikai vienburtu latÄ«Åu identifikatoru aizstÄÅ”anai, neÅemot vÄrÄ virtuÄlo disku izveidi, kas pieŔķirta ar Ā«subst burts:ceļŔ». Å Ädi ceļi netika apstrÄdÄti kÄ absolÅ«tie, bet kÄ relatÄ«vie ceļi, kas ļÄva klonÄjot ļaunprÄtÄ«gu repozitoriju organizÄt ierakstus nejauÅ”Ä katalogÄ Ärpus darba katalogu koka (piemÄram, izmantojot ciparus vai unicode simbolus diskÄ nosaukumÄ ā Ā«1:\what\the\hex.txtĀ» vai «ä:\tschibƤt.schĀ»).
- ā strÄdÄjot uz Windows platformas, izmantojot alternatÄ«vos datu plÅ«smu NTFS, ko izveidojot pievienojot atribÅ«tu Ā«:plÅ«smas-nosaukums:plÅ«smas-tipsĀ» faila nosaukumam, tika pÄrrakstÄ«ti faili katalogÄ Ā«.git/Ā» klonÄjot ļaunprÄtÄ«gu repozitoriju. PiemÄram, nosaukums Ā«.git::$INDEX_ALLOCATIONĀ» NTFS tika apstrÄdÄts kÄ derÄ«ga saite uz katalogu Ā«.gitĀ».
- ā izmantojot Git WSL (Windows Subsystem for Linux) vidÄ, piekļūstot darba katalogam aizsardzÄ«ba pret nosaukumu manipulÄcijÄm NTFS (bija iespÄjamas uzbrukumi, izmantojot FAT nosaukumu translÄciju, piemÄram, uz Ā«.gitĀ» varÄja piekļūt caur katalogu Ā«git~1Ā»).
- ā
ieraksti katalogÄ Ā«.git/Ā» Windows platformÄ klonÄjot ļaunprÄtÄ«gus repozitorijus, kas satur failus ar atpakaļslÄ«doÅ”u slÄ«psvÄ«tru nosaukumÄ (piemÄram, Ā«a\bĀ»), kas tiek atļauts Unix/Linux, bet uz Windows tiek uzskatÄ«ts par ceļa daļu. - ā nepietiekama submodulu nosaukumu pÄrbaude varÄja tikt izmantota, lai organizÄtu mÄrÄ·tiecÄ«gus uzbrukumus, kas potenciÄli uz uzbrucÄja koda izpildi. Git neierobežoja submodula kataloga izveidi cita submodula katalogÄ, kas lielÄkajÄ daÄ¼Ä gadÄ«jumu varÄja radÄ«t tikai neskaidrÄ«bas, bet potenciÄli neizslÄdz citu moduļu satura pÄrraidi rekursÄ«vÄs klonÄÅ”anas procesÄ (piemÄram, submodulu katalogi Ā«hippoĀ» un Ā«hippo/hooksĀ» tiek izvietoti kÄ Ā«.git/modules/hippo/Ā» un Ā«.git/modules/hippo/hooks/Ā», bet katalogs hooks hippo var tikt izmantots atseviŔķi izpildÄmo apstrÄdÄtÄju izvietoÅ”anai.
Windows lietotÄjiem ieteicams steidzami atjaunot Git versiju un, lÄ«dz atjauninÄÅ”anai, atturÄties no neizvÄrtÄtu repozitoriju klonÄÅ”anas. Ja nav iespÄju steidzami atjaunot Git versiju, lai samazinÄtu uzbrukuma risku, ieteicams neizmantot "git clone --recurse-submodules" un "git submodule update" ar neizvÄrtÄtiem repozitorijiem, neizmantot "git fast-import" ar neizvÄrtÄtiem ieejas plÅ«smÄm un neklonÄt repozitorijus NTFS bÄzÄtÄs daļÄs.
Papildu aizsardzÄ«bai jaunajos laidienos arÄ« ir aizliegta submodule.{name}.update=!command konstrukciju izmantoÅ”ana .gitmodules failÄ. Lai izsekoÅ”anas paketÄm varÄtu sekot lÄ«dzi, varat apmeklÄt Å”Ädas lapas ,, , , , , , .
Avots: opennet.lv
