korekciniai paskirstyto šaltinio valdymo sistemos 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 ir 2.14.62.24.1 XNUMX, kuris ištaisė pažeidžiamumą, leidžiantį užpuolikui perrašyti savavališkus kelius failų sistemoje, organizuoti nuotolinį kodo vykdymą arba perrašyti failus kataloge „.git/“. Dauguma darbuotojų nustatytų problemų
„Microsoft“ saugos reagavimo centro duomenimis, penki iš aštuonių pažeidžiamumų yra būdingi konkrečiai platformai. Windows.
- - srautinio perdavimo komanda „feature export-marks=path“ rašyti etiketes į savavališkus katalogus, kuriuos galima naudoti norint perrašyti savavališkus kelius failų sistemoje, kai atliekama „git fast-import“ operacija su nepažymėtais įvesties duomenimis.
- - neteisingas komandinės eilutės argumentų pašalinimas nuotoliniam užpuoliko kodo vykdymui rekursinio klonavimo metu naudojant ssh:// URL. Visų pirma, buvo netinkamai tvarkomi ištrūkę argumentai, kurie baigiasi pasviruoju brūkšniu (pvz., „testas \“). Šiuo atveju, įrėminus argumentą dvigubomis kabutėmis, paskutinė kabutė buvo pašalinta, o tai leido organizuoti komandų eilutės parinkčių pakeitimą.
- — kai aplinkoje rekursyviai klonuojami submoduliai („klonas —rekursyvūs-submoduliai“) Windows tam tikromis sąlygomis du kartus suaktyvinkite to paties git katalogo naudojimą (.git, git~1, git~2 ir git~N NTFS atpažįstami kaip vienas katalogas, tačiau ši situacija buvo išbandyta tik git~1), kurį būtų galima naudoti organizuoti rašymas į katalogą ". git". Pavyzdžiui, užpuolikas, norėdamas organizuoti savo kodo vykdymą, gali pakeisti savo scenarijų naudodamas .git/config failo tvarkyklę po patikros.
- — diskų raidžių pavadinimų tvarkyklė keliuose Windows Verčiant tokius kelius kaip „C:\“, buvo siekiama pakeisti tik vienos raidės lotyniškus identifikatorius, tačiau nebuvo atsižvelgta į galimybę sukurti virtualius diskus, priskirtus per „subst letter:path“. Tokie keliai buvo apdorojami ne kaip absoliutūs, o kaip santykiniai keliai, kurie leido, klonuojant kenkėjišką saugyklą, rašyti į bet kokį katalogą už darbinio katalogo medžio ribų (pavyzdžiui, kai disko pavadinime naudojami skaičiai arba Unicode simboliai – „1:\what\the\hex.txt“ arba „ä:\tschibät.sch“).
- - dirbant platformoje Windows naudojant alternatyvius duomenų srautus NTFS sistemoje, sukurtus pridedant žymę „:stream-name:stream-type“ prie failo pavadinimo, perrašyti failus „.git/“ kataloge, kai klonuojama kenkėjiška saugykla. Pavyzdžiui, pavadinimas „.git::$INDEX_ALLOCATION“ NTFS sistemoje buvo traktuojamas kaip tinkama nuoroda į „.git“ katalogą.
- — naudojant „Git“ WSL aplinkoje (Windows Posistemis, skirtas Linux) kai pasiekiamas darbinis katalogas apsauga nuo manipuliavimo vardais NTFS (buvo galimos atakos per FAT vardo vertimą, pavyzdžiui, „.git“ galima pasiekti per „git~1“ katalogą).
- -
įrašai platformos kataloge „.git/“ Windows klonuojant kenkėjiškas saugyklas, kuriose yra failų su atgaliniu brūkšniu pavadinime (pvz., „a\b“), kas leidžiama Unix/Linux, bet yra suvokiamas kaip kelio į dalis Windows. - — nepakankamas submodulių pavadinimų patikrinimas gali būti naudojamas tikslinėms atakoms organizuoti, kurios, rekursyviai klonuotos, gali kad įvykdytų užpuoliko kodą. Git netrukdė sukurti submodulio katalogo kito submodulio kataloge, o tai daugeliu atvejų sukeltų tik painiavą, tačiau potencialiai netrukdė perrašyti kito modulio turinio rekursinio klonavimo proceso metu (pavyzdžiui, submodulių katalogai). „hippo“ ir „hippo/hooks“ pateikiami kaip „.git/modules/hippo/“ ir „.git/modules/hippo/hooks/“, o „hippo“ kabliukų katalogas gali būti naudojamas atskirai suaktyvintiems kabliams priglobti.
Vartotojams Windows Rekomenduojama skubiai atnaujinti „Git“ versiją ir susilaikyti nuo nepatikimų saugyklų klonavimo, kol atnaujinimas nebus baigtas. Jei skubaus „Git“ atnaujinimo dar nėra, siekiant sumažinti atakos riziką, rekomenduojama nevykdyti „git clone --recurse-submodules“ ir „git submodule update“ su nepatikimomis saugyklomis, nenaudoti „git fast-import“ su nepatikimais įvesties srautais ir neklonuoti saugyklų į NTFS pagrindu veikiančias pertvaras.
Siekiant didesnio saugumo, nauji leidimai taip pat draudžia naudoti „submodule.{name}.update=!command“ formos konstrukcijas .gitmodules. Platinimų atveju puslapiuose galite stebėti paketo naujinimų išleidimą ,, , , , , , .
Šaltinis: opennet.ru
