chore(deps): update module github.com/go-git/go-git/v5 to v5.19.0 [security] - abandoned#31
Conversation
ℹ Artifact update noticeFile name: hack/go.modIn order to perform the update(s) described in the table above, Renovate ran the
Details:
|
🤖 AI Code Review
SummaryThis PR updates the Review Statistics
Critical Issues
Warnings
Suggestions
Positive Feedback
Review generated by automated PR review ℹ️ About this reviewThis review was automatically generated using the
|
4ddf5e0 to
e1a740d
Compare
alaudabot
left a comment
There was a problem hiding this comment.
This security update looks good. The dependency upgrades from go-git v5.18.0 to v5.19.0 properly address the 5 CVEs (CVE-2026-25934, CVE-2026-33762, CVE-2026-34165, CVE-2026-41506, CVE-2026-45022). The changes follow standard Go module update conventions.
Autoclosing SkippedThis PR has been flagged for autoclosing. However, it is being skipped due to the branch being already modified. Please close/delete it manually or report a bug if you think this is in error. |
| github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect | ||
| github.com/go-git/go-billy/v5 v5.9.0 // indirect | ||
| github.com/go-git/go-git/v5 v5.18.0 // indirect | ||
| github.com/go-git/go-git/v5 v5.19.0 // indirect |
There was a problem hiding this comment.
Suggestion (style/dependency): Consider verifying that the transitive dependency pjbgf/sha1cd v0.6.0 is compatible with the rest of the build. The jump from v0.3.2 to v0.6.0 is significant — check the go-git's release notes or run go mod tidy / build in your CI pipeline to confirm no breaking changes.
This PR contains the following updates:
v5.18.0->v5.19.0GitHub Vulnerability Alerts
CVE-2026-25934
Impact
A vulnerability was discovered in
go-gitwhereby data integrity values for.packand.idxfiles were not properly verified. This resulted ingo-gitpotentially consuming corrupted files, which would likely result in unexpected errors such asobject not found.For context, clients fetch
packfilesfrom upstream Git servers. Those files contain a checksum of their contents, so that clients can perform integrity checks before consuming it. The pack indexes (.idx) are generated locally bygo-git, or thegitcli, when new.packfiles are received and processed. The integrity checks for both files were not being verified correctly.Note that the lack of verification of the packfile checksum has no impact on the trust relationship between the client and server, which is enforced based on the protocol being used (e.g. TLS in the case of
https://or known hosts forssh://). In other words, the packfile checksum verification does not provide any security benefits when connecting to a malicious or compromised Git server.Patches
Users should upgrade to
v5.16.5, or the latestv6pseudo-version, in order to mitigate this vulnerability.Workarounds
In case updating to a fixed version of
go-gitis not possible, users can run git fsck from thegitcli to check for data corruption on a given repository.Credit
Thanks @N0zoM1z0 for finding and reporting this issue privately to the
go-gitproject.CVE-2026-33762
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-gitsupports onlyv2andv3) are not vulnerable to this issue.An attacker able to supply a crafted
.git/indexfile 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
.gitdirectory.Patches
Users should upgrade to
v5.17.1, or the latestv6pseudo-version, in order to mitigate this vulnerability.Credit
go-git maintainers thank @kq5y for finding and reporting this issue privately to the
go-gitproject.CVE-2026-34165
Impact
A vulnerability has been identified in which a maliciously crafted
.idxfile can cause asymmetric memory consumption, potentially exhausting available memory and resulting in a Denial of Service (DoS) condition.Exploitation requires write access to the local repository's
.gitdirectory, it order to create or alter existing.idxfiles.Patches
Users should upgrade to
v5.17.1, or the latestv6pseudo-version, in order to mitigate this vulnerability.Credit
The go-git maintainers thank @kq5y for finding and reporting this issue privately to the
go-gitproject.CVE-2026-41506
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. 🙇CVE-2026-45022
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. 🙇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 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.0Compare 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.
This PR has been generated by Renovate Bot.