CRITICAL🇬🇧 English

CVE-2023-49569

Path Traversal w go-git umożliwiający RCE (CVE-2023-49569)

CVSS 9.8v3.1pub. 2024-01-12upd. 2024-11-21

W bibliotece go-git w wersjach poprzedzających v5.11 odkryto krytyczną podatność typu path traversal, która pozwala atakującemu tworzyć i modyfikować pliki poza dozwolonym katalogiem. W najgorszym scenariuszu możliwe jest zdalne wykonanie kodu (RCE).

Pokaż oryginał (EN)

A path traversal vulnerability was discovered in go-git versions prior to v5.11. This vulnerability allows an attacker to create and amend files across the filesystem. In the worse case scenario, remote code execution could be achieved. Applications are only affected if they are using the ChrootOS https://pkg.go.dev/github.com/go-git/go-billy/v5/osfs#ChrootOS , which is the default when using "Plain" versions of Open and Clone funcs (e.g. PlainClone). Applications using BoundOS https://pkg.go.dev/github.com/go-git/go-billy/v5/osfs#BoundOS  or in-memory filesystems are not affected by this issue. This is a go-git implementation issue and does not affect the upstream git cli.

🤖 Analiza AI
Jak działa

Podatność dotyczy implementacji systemu plików ChrootOS w bibliotece go-git, który stanowi domyślny mechanizm izolacji katalogów przy korzystaniu z funkcji 'Plain' — takich jak PlainClone czy PlainOpen. Atakujący może skonstruować specjalnie spreparowane repozytorium Git zawierające ścieżki plików wychodzące poza wyznaczony katalog (chroot), co umożliwia zapis plików w dowolnym miejscu systemu plików. Jest to błąd w implementacji go-git i nie dotyczy natywnego klienta git CLI.

Skutki

Atakujący może tworzyć i nadpisywać dowolne pliki na systemie plików serwera lub klienta, co w konsekwencji może prowadzić do zdalnego wykonania kodu (RCE). Zagrożone są poufność, integralność oraz dostępność systemu.

Mitygacja

Należy zaktualizować bibliotekę go-git do wersji v5.11 lub nowszej. Jako tymczasowe obejście można zastąpić użycie ChrootOS implementacją BoundOS lub systemem plików in-memory, które nie są podatne na ten problem.

Kogo dotyczy

Go-Git (projekt go-git) we wszystkich wersjach poprzedzających v5.11. Podatność dotyczy wyłącznie aplikacji korzystających z ChrootOS (domyślnie przy funkcjach PlainClone, PlainOpen itp.). Aplikacje używające BoundOS lub systemów plików in-memory nie są podatne.

Uwagi

Podatność dotyczy wyłącznie warstwy biblioteki go-git i nie ma wpływu na natywny klient git CLI. Aplikacje korzystające z BoundOS lub in-memory filesystems są bezpieczne.

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
  • Go Git Project Go Git

    APP
    Go-Git Project
    4.0.0 – 5.11.0 (bez)
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
Tagi
RCEPath Traversal
CWE
Referencje

Powiązane podatności

CVE-2025-21613CRITICAL9.2PL ✓ten sam produkt

Argument injection w bibliotece go-git — dowolne flagi git-upload-pack

CVE-2026-45022HIGH7.0ten sam produkt

go-git is an extensible git implementation library written in pure Go. Prior to 5.19.0 and 6.0.0-alpha.3, go-g...

CVE-2025-21614HIGH7.5ten sam produkt

go-git is a highly extensible git implementation library written in pure Go. A denial of service (DoS) vulnera...

CVE-2023-49568HIGH7.5ten sam produkt

A denial of service (DoS) vulnerability was discovered in go-git versions prior to v5.11. This vulnerability a...

CVE-2026-45571MEDIUM5.4ten sam produkt

go-git is an extensible git implementation library written in pure Go. Prior to 5.19.1 and 6.0.0-alpha.4, a pa...