fix(deps): update module github.com/go-git/go-git/v5 to v5.19.1 [security]#3847
fix(deps): update module github.com/go-git/go-git/v5 to v5.19.1 [security]#3847renovate[bot] wants to merge 1 commit into
Conversation
ℹ️ Artifact update noticeFile name: go.modIn order to perform the update(s) described in the table above, Renovate ran the
Details:
|
There was a problem hiding this comment.
Stale comment
Security review (automation)
Scope: Diff is limited to
go.mod/go.sum:github.com/go-git/go-git/v5v5.18.0 → v5.19.0 plus transitive bumps (go-billy,filepath-securejoin,pjbgf/sha1cd,golang.org/x/*,godirective 1.24.6 → 1.25.0). No Semaphore application.gofiles changed.Findings: No medium, high, or critical issues introduced or exposed by this PR.
Analysis: Semaphore’s Git integration (
db_lib/GoGitClient.go,db/git_branch.go) is unchanged; behavior and trust boundaries are the same. This change is a supply-chain remediation (Renovate security bump), not a new sink or bypass. Prior automation threads are cleared so this assessment is the active one.Sent by Cursor Automation: Find vulnerabilities
21e6f7d to
0a68a24
Compare
There was a problem hiding this comment.
Stale comment
Security review — PR #3847
Scope: Diff is limited to
go.modandgo.sum(no application or API code changes).Assessment: No medium, high, or critical issues were identified in the added or modified lines.
Rationale:
- The change is a dependency refresh:
github.com/go-git/go-git/v5v5.18.0 → v5.19.0 plus aligned transitive updates (go-billy,filepath-securejoin,pjbgf/sha1cd,golang.org/x/*, etc.) and a new indirectgithub.com/klauspost/cpuid/v2(CPU feature detection; no new attacker-controlled sink in this repo’s diff).- No new code paths were introduced to trace user or repository input to a dangerous sink; existing
go-gitusage (e.g. clone/pull/list remotes) is unchanged by this PR.- Prior automation threads are cleared via
cleanup_previous; nothing from an earlier run required re-reporting with fresh evidence on the current diff.Note: Host-key verification is still disabled in existing SSH client configuration (
InsecureIgnoreHostKey); that is not introduced by this PR and was out of scope per review rules.Outcome: Approve from a “new vulnerability in this diff” perspective — this is a standard security-oriented dependency bump with no high-confidence new defects in the modified files.
Sent by Cursor Automation: Find vulnerabilities
0a68a24 to
4e1b56a
Compare
There was a problem hiding this comment.
Stale comment
Security review (automation)
Scope: Diff is limited to
go.modandgo.sum(dependency andgodirective updates). No Semaphore application source was added or modified in this PR.Findings: No medium, high, or critical issues were identified in the changed files. There is no new attacker-controlled sink, auth boundary, or logging path introduced by this diff.
Dependency posture:
github.com/go-git/go-git/v5is upgraded v5.18.0 → v5.19.1 with matchinggo.sumentries. That aligns with a security remediation for the Git integration stack (Semaphore uses go-git indb_lib/GoGitClient.go). Transitive updates (e.g.filepath-securejoin,go-billy,golang.org/x/crypto) are consistent with the upgraded go-git release graph, not ad-hoc substitutions.Note: The
godirective moves 1.24.6 → 1.25.0, which raises the minimum Go version for builds; that is a compatibility/toolchain concern, not an exploitable vulnerability by itself.Conclusion: No actionable security defects in the PR diff; prior automation assessment threads are cleared so this review is the single current assessment.
Sent by Cursor Automation: Find vulnerabilities
4e1b56a to
1524af8
Compare
There was a problem hiding this comment.
Security review (automation)
Scope: Diff is limited to go.mod and go.sum: github.com/go-git/go-git/v5 v5.18.0 → v5.19.1 plus aligned transitive bumps (go-billy, filepath-securejoin, pjbgf/sha1cd, golang.org/x/*) and go directive 1.24.6 → 1.25.0. No Semaphore application .go files changed.
Findings: No medium, high, or critical issues introduced or exposed by this PR.
Analysis: Existing Git integration (db_lib/GoGitClient.go) is unchanged; attacker-influenced inputs (repository URL/branch, task commit hash) still flow through the same clone/pull/fetch/list paths. This change is a supply-chain remediation for CVE-2026-45022, CVE-2026-45570, and CVE-2026-45571 (per Renovate advisory text), not a new sink or auth bypass. Prior automation assessments are superseded by this review.
Slack summary: PR #3847 — clean (no new M/H/C findings). Dependency-only security bump for go-git v5.19.1; recommend merge from a diff-security perspective.
Sent by Cursor Automation: Find vulnerabilities


This PR contains the following updates:
v5.18.0→v5.19.1go-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).
Release Notes
go-git/go-git (github.com/go-git/go-git/v5)
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
Configuration
📅 Schedule: (UTC)
🚦 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 was generated by Mend Renovate. View the repository job log.