Megjelentek a Git elosztott forráskód-kezelő rendszerének 2.39.1, 2.38.3, 2.37.5, 2.36.4, 2.35.6, 2.34.6, 2.33.6, 2.32.5, 2.31.6 és 2.30.7 verziói, amelyekben két biztonsági rés került javításra, lehetővé téve, hogy a felhasználó rendszerén saját kódot hajtsanak végre a „git archive” parancs használatakor és megbízhatatlan külső tárolók esetén. A biztonsági rés a commitok formázásában és a „.gitattributes” fájl elemzésében található kódhibák miatt keletkezik, amelyek külső tárolók feldolgozása során túlírhatják a heheap területeit és véletlenszerű adatokat olvashatnak ki a memóriából.
Mindkét biztonsági rést a Git kódalapjának biztonsági auditja során fedezték fel, amelyet az X41 cég végzett az OSTIF (Open Source Technology Improvement Fund) megbízásából, amelyet a nyílt projektek biztonságának fokozása érdekében alapítottak. A két alábbi kritikus probléma mellett egy súlyos, egy közepes és négy nem súlyos probléma is felmerült. Emellett 27 ajánlás is született a kódalap biztonságának növelésére.
- CVE-2022-41903: egész számok túlcsordulása a commitok információinak formázása során, amely nagy eltolások kezelésénél jelentkezik, mint például a „%<(“, „%)(“, „%>>)(“ és „%><( )”. Az egész számok túlcsordulása a format_and_pad_commit() függvényben következik be, mivel az int típust használják a size_t változó esetében, amely a memcpy() meghívásakor részt vesz a másolandó blokk eltolásának meghatározásában.
A biztonsági rés megjelenik kifejezett formázási paraméterekkel történő közvetlen hívás esetén (például amikor a „git log —format=…” parancsot futtatják), valamint közvetett formázáskor a „git archive” parancs futtatása során, ha a tároló az támadó irányítása alatt áll. A második esetben a formázási módosítókat az export-subst paraméteren keresztül határozzák meg a „.gitattributes” fájlban, amelyet a támadó a saját tárolójában elhelyezhet. Ez a probléma arra használható, hogy véletlenszerű területeket olvassanak és írjanak a heheap-be, és kódot futtassanak jogosulatlan tárolók használata esetén.
- CVE-2022-23521: egész számok túlcsordulása a „.gitattributes” fájlok tartalmának elemzésekor a tárolóban, amely megnyilvánul, amikor nagyon nagy számú fájlsablont vagy sok attribútumot kezelnek egyetlen sablonnal, valamint nagyon nagy attribútumnevek elemzésekor. A probléma felhasználható tetszőleges területek olvasására és írására a kupacban, és lehetővé teheti a támadó számára a kód végrehajtását egy nem ellenőrzött tárolóval való munka során, ahol a támadó speciálisan formázott .gitattributes fájlt helyezhet el, és gondoskodhat annak indexeléséről.
A csomagfrissítések publikálását a disztribúciókban nyomon lehet követni a következő oldalakon: Debian, Ubuntu, Gentoo, RHEL, SUSE, Arch, FreeBSD, NetBSD. Az alacsonyabb támadási kockázat érdekében, ha nem lehetséges a frissítések időben történő telepítése, javasolt tartózkodni a megbízhatatlan tárolókkal való munkától és a „git archive” parancs használatától. Fontos megjegyezni, hogy a „git archive” parancs implicit módon is végrehajtható, például a git démonból. A „git archive” indításának letiltásához a git démonban a daemon.uploadArch paramétert a „git config —global daemon.uploadArch false” paranccsal kell módosítani.
Ezen kívül érdemes megemlíteni egy másik sérülékenységet (CVE-2022-41953) a Git for Windows termékben, amely lehetővé teszi a kód végrehajtását nem ellenőrzött külső tárolók grafikus felületen történő klónozása közben. A probléma abból ered, hogy a Git GUI Windows alatt a „checkout” művelet után automatikusan végrehajt bizonyos utófeldolgozó parancsokat, mint például a helyesírás-ellenőrző program futtatása, miközben a helyesírás-ellenőrző fájl keresési útvonalai a klónozott munkafát is lefedik (a támadás lényege, hogy a helyesírás-ellenőrzőt a tároló munkafájába helyezzük).
Forrás: opennet.ru
