Dvě zranitelnosti v Gitu, které mohou vést k vzdálenému spuštění kódu

Byly vydány opravných vydání rozděleného systému pro správu verzí Git 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 a 2.30.7, ve kterých byly odstraněny dvě zranitelnosti umožňující vykonání vlastního kódu na uživatelském systému při používání příkazu „git archive“ a práci s nedůvěryhodnými externími repozitáři. Zranitelnosti byly způsobeny chybami v kódu pro formátování commitů a analýzu souboru „.gitattributes“, které mohou při zpracování externích repozitářů vést k zápisu do oblasti paměti mimo haldu a čtení libovolných dat z paměti.

Obě zranitelnosti byly odhaleny během bezpečnostního auditu kódu Git, který provedla společnost X41 na objednávku fondu OSTIF (Open Source Technology Improvement Fund), zřízeného za účelem posílení bezpečnosti otevřených projektů. Kromě dvou kritických problémů uvedených níže byla během auditu nalezena také jedna nebezpečná zranitelnost, jedna zranitelnost střední úrovně nebezpečnosti a čtyři nezávažné problémy. Také bylo poskytnuto 27 doporučení pro zlepšení bezpečnosti kódu.

  • CVE-2022-41903: přetečení celého čísla v kódu pro formátování informací o commitech, které se objevuje při zpracování velkých hodnot posunu v operátorech vyplnění, jako jsou „%<(“, „%(“, „%>>(“ a „%<)( )“. Přetečení celého čísla nastává v funkci format_and_pad_commit() kvůli použití typu int pro proměnnou size_t, která při volání memcpy() určuje velikost posunu kopírovaného bloku.

    Zranitelnost se projevuje jak při přímém volání se speciálně formátovanými parametry (např. při spuštění „git log —format=…“), tak při nepřímém použití formátování během provádění příkazu „git archive“ v repozitáři řízeném útočníkem. V druhém případě jsou formátovací modifikátory definovány prostřednictvím parametru export-subst v souboru „.gitattributes“, který může útočník umístit do svého repozitáře. Problém může být využit pro čtení a zápis libovolných oblastí v haldě a může vést k provedení kódu škůdce při práci s neověřenými repozitáři.

  • CVE-2022-23521: celá čísla přetečení při analýze obsahu souborů «.gitattributes» v repozitáři, projevující se při zpracování velmi velkého počtu šablon cest k souborům nebo velkého počtu atributů s jednou šablonou, stejně jako při analýze velmi velkých názvů atributů. Problém může být využit k čtení a zápisu libovolných oblastí v haldě a může vést k vykonání kódu útočníka při práci s neověřeným repozitářem, ve kterém může útočník umístit speciálně vytvořený soubor .gitattributes a zajistit jeho zařazení do indexu.

Publikaci aktualizací balíčků v distribucích lze sledovat na stránkách: Debian, Ubuntu, Gentoo, RHEL, SUSE, Arch, FreeBSD, NetBSD. Pro snížení rizika útoku v případě nemožnosti včasného nainstalování aktualizace se doporučuje vyhnout se práci s nedůvěryhodnými repozitáři a používání příkazu «git archive». Je důležité si pamatovat, že příkaz «git archive» může být spuštěn implicitně, například z git deamona. Pro vypnutí spuštění «git archive» v git daemon je třeba změnit parametr daemon.uploadArch příkazem «git config —global daemon.uploadArch false».

Další zranitelnost (CVE-2022-41953) v produktu Git for Windows umožňuje provádět kód při klonování přes grafické rozhraní neověřených externích repozitářů. Problém je způsoben tím, že Git GUI pro Windows po operaci «checkout» automaticky spouští některé post-processingové příkazy, jako je spuštění programu pro kontrolu pravopisu, přičemž cesty k hledání souboru pro kontrolu pravopisu zahrnují i klonované pracovní strom (útok spočívá v přidání spell-check do pracovního stromu repozitáře).

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster