VDB
Sign up
LOW2.8

GHSA-gm2x-2g9h-ccm8

go-git missing validation decoding Index v4 files leads to panic

Quick fix

GHSA-gm2x-2g9h-ccm8 — github.com/go-git/go-git/v5: upgrade to the fixed version with the command below.

go get github.com/go-git/go-git/v5@v5.17.1

Details

### Impact

`go-git`’s index decoder for format version 4 fails to validate the path name prefix length before applying it to the previously decoded path name. A maliciously crafted index file can trigger an out-of-bounds slice operation, resulting in a runtime panic during normal index parsing.

This issue only affects Git index format version 4. Earlier formats (`go-git` supports only `v2` and `v3`) are not vulnerable to this issue.

An attacker able to supply a crafted `.git/index` file can cause applications using go-git to panic while reading the index. If the application does not recover from panics, this results in process termination, leading to a denial-of-service (DoS) condition.

Exploitation requires the ability to modify or inject a Git index file within the local repository in disk. This typically implies write access to the `.git` directory.

### Patches

Users should upgrade to `v5.17.1`, or the latest `v6` [pseudo-version](https://go.dev/ref/mod#pseudo-versions), in order to mitigate this vulnerability.

### Credit

go-git maintainers thank @kq5y for finding and reporting this issue privately to the `go-git` project.

Are you affected?

Enter the version of the package you're using.

Affected packages

Go/github.com/go-git/go-git/v5
Introduced in: 0Fixed in: 5.17.1
Fixgo get github.com/go-git/go-git/v5@v5.17.1

References