fix(deps): update module github.com/go-git/go-git/v5 to v5.19.2 [security] - #647
Open
renovate[bot] wants to merge 1 commit into
Open
fix(deps): update module github.com/go-git/go-git/v5 to v5.19.2 [security]#647renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. ❌ Your project check has failed because the head coverage (71.27%) is below the target coverage (90.00%). You can increase the head coverage or adjust the target coverage. Additional details and impacted files@@ Coverage Diff @@
## main #647 +/- ##
=======================================
Coverage 71.27% 71.27%
=======================================
Files 174 174
Lines 4741 4741
=======================================
Hits 3379 3379
Misses 1053 1053
Partials 309 309 🚀 New features to boost your workflow:
|
renovate
Bot
force-pushed
the
renovate/go-github.com-go-git-go-git-v5-vulnerability
branch
from
May 11, 2026 17:49
91d140c to
0a1d422
Compare
Contributor
Author
ℹ️ Artifact update noticeFile name: go.modIn order to perform the update(s) described in the table above, Renovate ran the
Details:
|
renovate
Bot
force-pushed
the
renovate/go-github.com-go-git-go-git-v5-vulnerability
branch
from
May 19, 2026 18:05
0a1d422 to
3cba3aa
Compare
renovate
Bot
deleted the
renovate/go-github.com-go-git-go-git-v5-vulnerability
branch
August 8, 2026 13:58
renovate
Bot
force-pushed
the
renovate/go-github.com-go-git-go-git-v5-vulnerability
branch
2 times, most recently
from
August 8, 2026 17:39
3cba3aa to
63ba179
Compare
renovate
Bot
force-pushed
the
renovate/go-github.com-go-git-go-git-v5-vulnerability
branch
from
August 9, 2026 09:58
63ba179 to
4375fad
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
v5.17.2→v5.19.2go-git: Credential leak via cross-host redirect in smart HTTP transport
CVE-2026-41506 / GHSA-3xc5-wrhm-f963
More information
Details
Impact
go-gitmay leak HTTP authentication credentials when following redirects during smart-HTTP clone and fetch operations.If a remote repository responds to the initial
/info/refsrequest with a redirect to a different host, go-git updates the session endpoint to the redirected location and reuses the original authentication for subsequent requests. This can result in the credentials (e.g. Authorization headers) being sent to an unintended host.An attacker controlling or influencing the redirect target can capture these credentials and potentially reuse them to access the victim’s repositories or other resources, depending on the scope of the credential.
Clients using
go-gitexclusively with trusted remotes (for example, GitHub or GitLab), and over a secure HTTPS connection, are not affected by this issue. The risk arises when interacting with untrusted or misconfigured Git servers, or when using unsecured HTTP connections, which is not recommended. Such configurations also expose clients to a broader class of security risks beyond this issue, including credential interception and tampering of repository data.Patches
Users should upgrade to
v5.18.0, orv6.0.0-alpha.2, in order to mitigate this vulnerability. Versions prior to v5 are likely to be affected, users are recommended to upgrade to a supportedgo-gitversion.The patched versions add support for configuring followRedirects. In line with upstream behaviour, the default is now
initial, while users can opt intoFollowRedirectsorNoFollowRedirectsprogrammatically.Credit
Thanks to the 3 separate reports from @celinke97, @N0zoM1z0 and @AyushParkara. Thanks for finding and reporting this issue privately to the
go-gitproject. 🙇Severity
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:N/A:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
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
More information
Details
Impact
go-gitmay parse malformed Git objects in a way that differs from upstream Git. Whencommitortagobjects 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 fromgo-git’s parsed representation rather than the original raw object bytes. As a result,go-gitmay 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-gitversion.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 thego-gitproject. 🙇 🥇Thanks to @wayphinder for reporting this to the
go-gitproject. 🙇Severity
CVSS:4.0/AV:N/AC:H/AT:N/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:H/SA:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
go-git: Improper single-quote escaping in go-git SSH transport
CVE-2026-45570 / GHSA-m7cr-m3pv-hgrp
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 throughsq_quote_bufso 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/shor/bin/bash, or aForceCommandwrapper 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 canonicalgit-shellsetup, 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 ingo-gitis defense-in-depth that restores parity with canonical Git's wire format and preventsgo-gitfrom 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_buffrom canonical Git intogo-git's SSH transport so that the wire output is byte-identical to whatgititself would send for the same input.Versions prior to
v5are 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-gitproject. 🙇Severity
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:LReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
go-git: Crafted repositories may modify main and submodule .git directories
CVE-2026-45571 / GHSA-crhj-59gh-8x96
More information
Details
Impact
A path validation issue in
go-gitcould allow crafted repository data to affect files outside the intended checkout target, including the repository's.gitdirectory.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-billyfilesystem instances, or different filesystem types, for theStorerandWorktreemay provide some isolation against.gitdirectory manipulation. For example, users that store the.gitdirectory throughmemfswhile usingosfsfor 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
v5are 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:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:LReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
go-git: Malformed Git object data may cause panics or resource exhaustion
GHSA-w5pp-99ch-qj29
More information
Details
Impact
Several denial-of-service issues were identified in
go-gitwhen parsing maliciously crafted Git repository data.An attacker may craft a malicious
.pack,.idxor loose objects that causes an application using an affected version ofgo-gitto panic or consume excessive resources.This can lead to denial of service in applications that use
go-gitto clone, fetch, open, or otherwise process untrusted repositories or Git object data.Exploitation requires the ability to alter read-only files such as
.packor.idxfrom 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
v5are likely to be affected, users are recommended to upgrade to a supportedgo-gitversion.Credits
go-git thanks @kodareef5, @AyushParkara and @N0zoM1z0 for reporting this in four separate reports. 🙇
Severity
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:HReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
go-git: Worktree operations may follow symlinks
CVE-2026-71556 / GHSA-hc8v-wwc9-vgxm
More information
Details
Impact
A symlink traversal issue in
go-gitcould allow worktree operations to modify files outside the intended worktree path.The
worktreeFilesystemwrapper 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
sis a symbolic link to.git, writing tos/configwould modify.git/config.A symbolic link at the final path component could also be followed. For example, if
spoints directly to.git/config, openingsfor 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/memoryfor their Storer, orgo-billy/memfsfor theirWorktree, 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:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:LReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
go-git: Malicious reference names may modify files outside the reference storage
CVE-2026-71557 / GHSA-qgq7-7hm3-q39j
More information
Details
Impact
A path traversal issue in
go-gitcould 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 asrefs/heads/../../configcould therefore resolve to unrelated repository metadata such as.git/configor.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/../../configduring a clone or fetch operation.This vulnerability affects filesystem-backed repositories using the
storage/filesystempackage and itsdotgitreference 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-gitwith 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
dotgitstorage 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/memoryare 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-gitstorage. 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:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:N/I:H/A:LReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Release Notes
go-git/go-git (github.com/go-git/go-git/v5)
v5.19.2Compare Source
What's Changed
Full Changelog: go-git/go-git@v5.19.1...v5.19.2
v5.19.1Compare Source
What's Changed
worktreeFilesystemwrapper for worktree and hardening by @hiddeco in #2100Full Changelog: go-git/go-git@v5.19.0...v5.19.1
v5.19.0Compare Source
What's Changed
Full Changelog: go-git/go-git@v5.18.0...v5.19.0
v5.18.0Compare Source
What's Changed
Full Changelog: go-git/go-git@v5.17.2...v5.18.0
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.