A 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 és 2.14.6 hibajavító kiadásai, amelyek megszüntetik a sebezhetőségeket, amelyek lehetővé tették a támadó számára, hogy tetszőleges fájlpath-okat írjon át a fájlrendszerben, távoli kódot futtasson, vagy fájlokat írjon felül a „.git/” könyvtárban. A problémák többségét a Microsoft Security Response Center munkatársai fedezték fel.
Öt a nyolc sebezhetőség közül specifikus a Windows platformhoz.
- — a „feature export-marks=path” parancsfolyam lehetővé tette a címkék rögzítését tetszőleges könyvtárakba, ami akár tetszőleges fájlpath-ok felülírására is felhasználható volt a „git fast-import” művelet során, ellenőrizetlen bemenetekkel.
- — a parancssori argumentumok helytelen escapes a támadó által SSH URL használatával történő rekurzív klónozáskor. Különösen a hátlapi visszaélések hatékonyan kezelték azokat az argumentumokat, amelyek visszafelé perjellel zárultak (például „teszt \”). Ilyen esetekben, ha az argumentumot dupla idézőjelek közé tették, az utolsó idézőjelet escape-eltnek tekintették, ami lehetővé tette, hogy a támadó a saját opcióit behelyettesítse a parancssorba.
- — a szubmodulok rekurzív klónozásakor („clone —recurse-submodules”) Windows környezetben bizonyos körülmények között egy git könyvtár használatát kétszer kezdeményezzék (.git, git~1, git~2 és git~N az NTFS-ben egy könyvtárként kerülnek azonosításra, de ezt a helyzetet csak git~1-re ellenőrizték), ami lehetővé tette a „.git” könyvtárba való írást. A támadó például saját scriptet helyezhetett el a post-checkout handler-en keresztül a .git/config fájlban.
- — A disk name handler in Windows paths for paths like "C:\" was designed only to replace single-letter Latin identifiers and did not account for the possibility of creating virtual disks assigned via "subst letter:path". Such paths were processed not as absolute paths, but as relative paths, which allowed for arbitrary directory writing outside the working directory during the cloning of malicious repositories (for example, when using digits or unicode symbols in the disk name — "1:\what\the\hex.txt" or "ä:\tschibät.sch").
- — When working on the Windows platform, the use of alternative data streams in NTFS, created by appending the flag ":stream-name:stream-type" to the file name, to overwrite files in the ".git/" directory when cloning a malicious repository. For example, the name ".git::$INDEX_ALLOCATION" in NTFS was processed as a valid link to the ".git" directory.
- — When using Git in a WSL (Windows Subsystem for Linux) environment, when accessing the working directory CVE-2019-1354
- —
CVE-2019-1387 - lead a támadó kódjának végrehajtásához. A Git nem tiltotta meg, hogy egy másik almenü katalogusában almenü katalogust hozzanak létre, ami a legtöbb esetben csak zűrzavart okozhat, de potenciálisan nem zárja ki, hogy a másik modul tartalmát felülírják a rekurzív klónozási folyamat során (például a «hippo» és a «hippo/hooks» almenük katalogusai a «.git/modules/hippo/» és a «.git/modules/hippo/hooks/» néven kerülnek elhelyezésre, a hippo-ban lévő hooks katalogust pedig külön használhatják a futtatható kezelők elhelyezésére).
A Windows felhasználóknak sürgősen frissíteniük kell a Git verziót, és a frissítés előtt kerülniük kell a megbízhatatlan repozitóriumok klónozását. Ha jelenleg nincs lehetőség a Git sürgős frissítésére, a támadás kockázatának csökkentése érdekében javasolt, hogy ne használják a „git clone —recurse-submodules” és „git submodule update” parancsokat megbízhatatlan repozitóriumokkal, ne alkalmazzák a „git fast-import” parancsot megbízhatatlan belépő folyamatokkal, és ne klónozzanak repozitóriumokat NTFS alapú szakaszokba.
Az új kiadásokban a további védelem érdekében a .gitmodules fájlban a „submodule.{name}.update=!command” formájú konstrukciók használata is tilos. A disztribúciók frissítéseit a csomagok kiadásának nyomon követésével lehet követni az alábbi oldalakon. ,, , , , , , .
Forrás: opennet.ru
