Korrigerende opdateringer til det distribuerede system til styring af kildekode Git 2.45.1, 2.44.1, 2.43.4, 2.42.2, 2.41.1, 2.40.2 og 2.39.4 er blevet udgivet, hvor fem sårbarheder er blevet rettet. Den mest alvorlige sårbarhed (CVE-2024-32002), der er tildelt en kritisk farevurdering, muliggør udførelse af ondsindet kode, når kommandoen «git clone» bruges til at klone et repository, der er under kontrol af angriberen.
Sårbarheden opstår kun i filsystemer, der ikke skelner mellem store og små bogstaver og understøtter symboliske links, som f.eks. dem der som standard bruges i Windows og macOS. Udnyttelsen sker ved at oprette en undermappe og et symbolsk link, der kun adskiller sig i store og små bogstaver, hvilket muliggør skrivning af filer til mappen .git/, i stedet for arbejdsbiblioteket for undermappen. Ved at få skriveadgang til .git/ kan angriberen omdefinere hook-opkald via .git/hooks og opnå udførelse af vilkårlig kode under «git clone»-operationen.
Andre sårbarheder:
- CVE-2024-32004 — angriberen kan i et multi-bruger-system forberede et specielt udformet lokal repository og opnå udførelse af kode ved kloning af det. Særligt kan angriberen oprette et lokalt repository, der ser ud som en delvis klon, hvor en bestemt objekt mangler. Kloning af dette repository vil føre til udførelse af kode med de rettigheder, som brugeren, der udfører kloningsoperationen, har.
- CVE-2024-32465 — kloning fra zip-arkiver, der indeholder et fuldt git-repository med hooks i mappen .git/, vil føre til udførelse af disse hooks.
- CVE-2024-32020 — oprettelse af lokale kloner af et repository på den samme disk i et multi-bruger-system giver andre brugere mulighed for at ændre filer, der er tilknyttet hårde links.
- CVE-2024-32021 — kloning af et lokalt repository med symboliske links kan bruges til at oprette hårde links til vilkårlige filer i mappen objects/.
Udover at løse sårbarheder i de nye versioner er der også foreslået flere ændringer, der sigter mod at forbedre beskyttelsen mod sårbarheder, der fører til remotekørsel af kode og manipulerer med symboliske links under kloning. For eksempel giver git nu en advarsel, når der findes symboliske links i kataloget .git/. Stier til submoduler kan nu kun indeholde reelle kataloger. Ved krydsning af symboliske links og kataloger behandles katalogerne. Der er tilføjet beskyttelse mod udførelse af hooks under kloning ved udførelse af "git clone", og kontrollerne for parameteren core.hooksPath er styrket.
Kilde: opennet.ru
