Skip to content

fix(deps): update module github.com/go-git/go-git/v5 to v5.19.2 [security] (alauda-v1.28.0) - #51

Open
alaudaa-renovate[bot] wants to merge 1 commit into
alauda-v1.28.0from
renovate/alauda-v1.28.0-go-github.com-go-git-go-git-v5-vulnerability
Open

fix(deps): update module github.com/go-git/go-git/v5 to v5.19.2 [security] (alauda-v1.28.0)#51
alaudaa-renovate[bot] wants to merge 1 commit into
alauda-v1.28.0from
renovate/alauda-v1.28.0-go-github.com-go-git-go-git-v5-vulnerability

Conversation

@alaudaa-renovate

@alaudaa-renovate alaudaa-renovate Bot commented Jun 17, 2026

Copy link
Copy Markdown

This PR contains the following updates:

Package Change Age Confidence
github.com/go-git/go-git/v5 v5.18.0 -> v5.19.2 age confidence

Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


go-git's improper parsing of specially crafted objects may lead to inconsistent interpretation compared to upstream Git

CVE-2026-45022 / GHSA-389r-gv7p-r3rp / GO-2026-5074

More information

Details

Impact

go-git may parse malformed Git objects in a way that differs from upstream Git. When commit or tag objects contain ambiguous or malformed headers, go-git’s decoded representation may expose values differently from how Git itself would interpret or reject the same object.

Additionally, go-git’s commit signing and verification logic operates over commit data reconstructed from go-git’s parsed representation rather than the original raw object bytes. As a result, go-git may sign or verify a commit payload that is not byte-for-byte equivalent to the object stored in the repository.

This can cause a signature to appear valid for a commit whose displayed or effective metadata differs from the object that was intended to be signed.

Patches

Users should upgrade to a patched version in order to mitigate this vulnerability. Versions prior to v5 are likely to be affected, users are recommended to upgrade to a supported go-git version.

Credit

Thanks to @​bugbunny-research (https://bugbunny.ai/) for reporting this to sigstore/gitsign, and to @​wlynch, @​patzielinski and @​adityasaky for coordinating the disclosure with the go-git project. 🙇 🥇

Thanks to @​wayphinder for reporting this to the go-git project. 🙇

Severity

  • CVSS Score: Unknown
  • Vector String: CVSS:4.0/AV:N/AC:H/AT:N/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:H/SA:N

References

This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).


Go-git: Improper parsing of specially crafted objects may lead to inconsistent interpretation in github.com/go-git/go-git

CVE-2026-45022 / GHSA-389r-gv7p-r3rp / GO-2026-5074

More information

Details

Go-git: Improper parsing of specially crafted objects may lead to inconsistent interpretation in github.com/go-git/go-git

Severity

Unknown

References

This data is provided by OSV and the Go Vulnerability Database (CC-BY 4.0).


go-git: Crafted repositories may modify main and submodule .git directories

CVE-2026-45571 / GHSA-crhj-59gh-8x96 / GO-2026-5336

More information

Details

Impact

A path validation issue in go-git could allow crafted repository data to affect files outside the intended checkout target, including the repository's .git directory.

These validations were introduced in upstream Git years ago, so the vulnerability arose from go-git drifting from those checks. Some attack vectors were platform-specific: certain payloads affected only Windows users, others affected only macOS users, and some applied across all supported platforms.

Using non-descendant go-billy filesystem instances, or different filesystem types, for the Storer and Worktree may provide some isolation against .git directory manipulation. For example, users that store the .git directory through memfs while using osfs for the worktree are not affected by this vulnerability in the main repository, because repository metadata is not materialized inside the worktree filesystem.

However, this isolation does not necessarily apply when the repository contains submodules, since submodule dotgit directories may still be represented or materialized within the worktree context.

It is important to note that exploitation requires a maliciously crafted repository payload. Users should always exercise caution when interacting with repositories or Git servers they do not trust.

Patches

Users should upgrade to a patched version in order to mitigate this vulnerability. Versions prior to v5 are likely to be affected, users are recommended to upgrade to a supported go-git version.

Credits

Thanks to @​kodareef5, @​AyushParkara and @​N0zoM1z0 for reporting this to the go-git project in three separate reports. 🙇

Severity

  • CVSS Score: 5.4 / 10 (Medium)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:L

References

This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).


Improper single-quote escaping in go-git SSH transport in github.com/go-git/go-git

CVE-2026-45570 / GHSA-m7cr-m3pv-hgrp / GO-2026-5496

More information

Details

Improper single-quote escaping in go-git SSH transport in github.com/go-git/go-git

Severity

Unknown

References

This data is provided by OSV and the Go Vulnerability Database (CC-BY 4.0).


Go-git: Crafted repositories may modify main and submodule .git directories in github.com/go-git/go-git

CVE-2026-45571 / GHSA-crhj-59gh-8x96 / GO-2026-5336

More information

Details

Go-git: Crafted repositories may modify main and submodule .git directories in github.com/go-git/go-git

Severity

Unknown

References

This data is provided by OSV and the Go Vulnerability Database (CC-BY 4.0).


go-git: Improper single-quote escaping in go-git SSH transport

CVE-2026-45570 / GHSA-m7cr-m3pv-hgrp / GO-2026-5496

More information

Details

Impact

go-git's SSH transport constructs the remote exec command by wrapping the repository path in single quotes without escaping single quotes embedded inside the path. This diverges from canonical Git, which shell-quotes the path through sq_quote_buf so that an embedded ' becomes the '\'' close-escape-reopen sequence and the whole path round-trips as a single quoted argument.

A repository path containing a single quote can therefore break out of the quoted region in the exec command and be appended as additional shell tokens. On SSH servers that evaluate the exec command through a shell (for example a user account whose login shell is /bin/sh or /bin/bash, or a ForceCommand wrapper that re-evaluates $SSH_ORIGINAL_COMMAND), those additional tokens execute in that account's command-execution context. SSH servers that tokenize the exec command without shell evaluation, including the canonical git-shell setup, are not affected.

The vulnerable behaviour is on the SSH server side, not in go-git: the same bytes can be produced by any SSH client. The change in go-git is defense-in-depth that restores parity with canonical Git's wire format and prevents go-git from being a vehicle for reaching shell-evaluating servers through attacker-influenced repository paths.

Patches

Users should upgrade to a patched version in order to mitigate this issue. The fix ports sq_quote_buf from canonical Git into go-git's SSH transport so that the wire output is byte-identical to what git itself would send for the same input.

Versions prior to v5 are likely to be affected, users are recommended to upgrade to a supported go-git version.

Credit

Thanks to @​N0zoM1z0 for reporting this to the go-git project. 🙇

Severity

  • CVSS Score: Unknown
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:L

References

This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).


go-git: Malformed Git object data may cause panics or resource exhaustion

GHSA-w5pp-99ch-qj29 / GO-2026-5693

More information

Details

Impact

Several denial-of-service issues were identified in go-git when parsing maliciously crafted Git repository data.

An attacker may craft a malicious .pack, .idx or loose objects that causes an application using an affected version of go-git to panic or consume excessive resources.

This can lead to denial of service in applications that use go-git to clone, fetch, open, or otherwise process untrusted repositories or Git object data.

Exploitation requires the ability to alter read-only files such as .pack or .idx from the local repository's .git/objects/pack/ directory. Alternatively, the user would need to be interacting with a malicious remote server, which is not recommended and exposes users to a broader class of security risks beyond this issue.

Patches

Users should upgrade to a patched version in order to mitigate this vulnerability. Versions prior to v5 are likely to be affected, users are recommended to upgrade to a supported go-git version.

Credits

go-git thanks @​kodareef5, @​AyushParkara and @​N0zoM1z0 for reporting this in four separate reports. 🙇

Severity

  • CVSS Score: 6.5 / 10 (Medium)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H

References

This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).


Go-git: Malformed Git object data may cause panics or resource exhaustion in github.com/go-git/go-git

GHSA-w5pp-99ch-qj29 / GO-2026-5693

More information

Details

Go-git: Malformed Git object data may cause panics or resource exhaustion in github.com/go-git/go-git

Severity

Unknown

References

This data is provided by OSV and the Go Vulnerability Database (CC-BY 4.0).


go-git: Worktree operations may follow symlinks

CVE-2026-71556 / GHSA-hc8v-wwc9-vgxm / GO-2026-6213

More information

Details

Impact

A symlink traversal issue in go-git could allow worktree operations to modify files outside the intended worktree path.

The worktreeFilesystem wrapper rejected dangerous path strings, including paths containing .git, parent-directory components, or control characters. However, it did not prevent filesystem operations from following symbolic links that were already present in the worktree.

As a result, a path that is safe when evaluated as a string could still resolve into the repository's Git metadata directory. For example, if s is a symbolic link to .git, writing to s/config would modify .git/config.

A symbolic link at the final path component could also be followed. For example, if s points directly to .git/config, opening s for writing with truncation could overwrite the repository configuration.

Exploitation requires an attacker to be able to introduce or control a symbolic link in the worktree and cause the application to perform a write through that path.

Applications using storage/memory for their Storer, or go-billy/memfs for their Worktree, are not affected by this vulnerability.

Patches

The issue has been addressed by making the worktree filesystem wrapper a symlink-safe boundary.

Worktree operations now reject paths where an existing symbolic link in any path component could cause the operation to escape the intended worktree location, including symbolic links at the final component.

Users of filesystem-backed worktrees should upgrade to a patched version.

Credits

Thanks to @​kodareef5 for reporting this issue and working with the go-git security team toward its resolution. 🥇
We would also like to thank @​HughLewis20, who independently reported the same issue while a fix was already in progress.

Severity

  • CVSS Score: 7.1 / 10 (High)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:L

References

This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).


Path traversal via crafted reference names in github.com/go-git/go-git

CVE-2026-71557 / GHSA-qgq7-7hm3-q39j / GO-2026-6214

More information

Details

Path traversal via crafted reference names in github.com/go-git/go-git

Severity

Unknown

References

This data is provided by OSV and the Go Vulnerability Database (CC-BY 4.0).


Worktree operations may follow symlinks in github.com/go-git/go-git

CVE-2026-71556 / GHSA-hc8v-wwc9-vgxm / GO-2026-6213

More information

Details

Worktree operations may follow symlinks in github.com/go-git/go-git

Severity

Unknown

References

This data is provided by OSV and the Go Vulnerability Database (CC-BY 4.0).


go-git: Malicious reference names may modify files outside the reference storage

CVE-2026-71557 / GHSA-qgq7-7hm3-q39j / GO-2026-6214

More information

Details

Impact

A path traversal issue in go-git could allow malicious reference names to access files outside the repository's intended reference storage.

Loose references are stored under .git/<reference-name>. The reference name was previously used as a path without verifying that the resolved path remained within the reference storage. A name such as refs/heads/../../config could therefore resolve to unrelated repository metadata such as .git/config or .git/HEAD.

A malicious Git server could advertise such a reference name. The name may also survive refspec mapping; for example, it could be mapped to refs/remotes/origin/../../config during a clone or fetch operation.

This vulnerability affects filesystem-backed repositories using the storage/filesystem package and its dotgit reference storage. Users relying exclusively on the in-memory storage implementation, storage/memory, are not affected, because reference names are not resolved as filesystem paths.

Exploitation requires an application using go-git with filesystem-backed storage to interact with a malicious Git server or otherwise process attacker-controlled reference names.

Patches

The issue has been addressed by validating reference names at the dotgit storage entry points and rejecting names whose resolved paths could escape the reference storage.

Users of filesystem-backed storage should upgrade to a patched version.

Workarounds

Applications that exclusively use storage/memory are not affected and do not require a workaround for this vulnerability.

For applications using filesystem-backed storage, avoid cloning from or fetching from untrusted Git servers until an upgrade is possible.

Applications that directly construct or process reference names may also validate them before passing them to filesystem-backed go-git storage. Application-level validation should only be considered a temporary mitigation and does not replace upgrading to a patched version.

References
Credits

Thanks to @​Saku0512 for reporting this issue and @​Sahana2524 for proposing the initial fix. 🙇

Severity

  • CVSS Score: 6.3 / 10 (Medium)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:N/I:H/A:L

References

This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).


Release Notes

go-git/go-git (github.com/go-git/go-git/v5)

v5.19.2

Compare Source

What's Changed

Full Changelog: go-git/go-git@v5.19.1...v5.19.2

v5.19.1

Compare Source

What's Changed

Full Changelog: go-git/go-git@v5.19.0...v5.19.1

v5.19.0

Compare Source

What's Changed

Full Changelog: go-git/go-git@v5.18.0...v5.19.0


Configuration

📅 Schedule: Branch creation - "" in timezone Asia/Shanghai, Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

@alaudaa-renovate

alaudaa-renovate Bot commented Jun 17, 2026

Copy link
Copy Markdown
Author

ℹ Artifact update notice

File name: go.mod

In order to perform the update(s) described in the table above, Renovate ran the go get command, which resulted in the following additional change(s):

  • 12 additional dependencies were updated

Details:

Package Change
github.com/go-git/go-billy/v5 v5.8.0 -> v5.9.0
golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 -> v0.0.0-20260410095643-746e56fc9e2f
golang.org/x/mod v0.34.0 -> v0.37.0
golang.org/x/net v0.53.0 -> v0.56.0
github.com/cyphar/filepath-securejoin v0.5.1 -> v0.6.1
github.com/pjbgf/sha1cd v0.3.2 -> v0.6.0
golang.org/x/crypto v0.50.0 -> v0.53.0
golang.org/x/sync v0.20.0 -> v0.21.0
golang.org/x/sys v0.43.0 -> v0.46.0
golang.org/x/term v0.42.0 -> v0.44.0
golang.org/x/text v0.36.0 -> v0.39.0
golang.org/x/tools v0.43.0 -> v0.47.0

@alaudaa-renovate alaudaa-renovate Bot changed the title fix(deps): update module github.com/go-git/go-git/v5 to v5.19.1 [security] (alauda-v1.28.0) fix(deps): update module github.com/go-git/go-git/v5 to v5.19.1 [security] (alauda-v1.28.0) - autoclosed Aug 11, 2026
@alaudaa-renovate alaudaa-renovate Bot closed this Aug 11, 2026
@alaudaa-renovate
alaudaa-renovate Bot deleted the renovate/alauda-v1.28.0-go-github.com-go-git-go-git-v5-vulnerability branch August 11, 2026 22:16
@alaudaa-renovate alaudaa-renovate Bot changed the title fix(deps): update module github.com/go-git/go-git/v5 to v5.19.1 [security] (alauda-v1.28.0) - autoclosed fix(deps): update module github.com/go-git/go-git/v5 to v5.19.1 [security] (alauda-v1.28.0) Aug 17, 2026
@alaudaa-renovate alaudaa-renovate Bot reopened this Aug 17, 2026
@alaudaa-renovate alaudaa-renovate Bot changed the title fix(deps): update module github.com/go-git/go-git/v5 to v5.19.1 [security] (alauda-v1.28.0) fix(deps): update module github.com/go-git/go-git/v5 to v5.19.2 [security] (alauda-v1.28.0) Aug 17, 2026
@alaudaa-renovate
alaudaa-renovate Bot force-pushed the renovate/alauda-v1.28.0-go-github.com-go-git-go-git-v5-vulnerability branch from 7f4f70e to 56586be Compare August 18, 2026 14:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant