Skip to content

fix(deps): update module github.com/go-git/go-git/v5 to v5.19.1 [security]#3847

Open
renovate[bot] wants to merge 1 commit into
developfrom
renovate/go-github.com-go-git-go-git-v5-vulnerability
Open

fix(deps): update module github.com/go-git/go-git/v5 to v5.19.1 [security]#3847
renovate[bot] wants to merge 1 commit into
developfrom
renovate/go-github.com-go-git-go-git-v5-vulnerability

Conversation

@renovate
Copy link
Copy Markdown
Contributor

@renovate renovate Bot commented May 11, 2026

This PR contains the following updates:

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

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-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: 7.0 / 10 (High)
  • 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 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 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: 2.3 / 10 (Low)
  • 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 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-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 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-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 the GitHub Advisory Database (CC-BY 4.0).


Release Notes

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

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: (UTC)

  • Branch creation
    • ""
  • 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 was generated by Mend Renovate. View the repository job log.

@renovate
Copy link
Copy Markdown
Contributor Author

renovate Bot commented May 11, 2026

ℹ️ 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):

  • 10 additional dependencies were updated
  • The go directive was updated for compatibility reasons

Details:

Package Change
go 1.24.6 -> 1.25.0
golang.org/x/crypto v0.48.0 -> v0.50.0
golang.org/x/sys v0.41.0 -> v0.43.0
github.com/cyphar/filepath-securejoin v0.4.1 -> v0.6.1
github.com/go-git/go-billy/v5 v5.8.0 -> v5.9.0
github.com/pjbgf/sha1cd v0.3.2 -> v0.6.0
golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b -> v0.0.0-20260410095643-746e56fc9e2f
golang.org/x/net v0.49.0 -> v0.53.0
golang.org/x/sync v0.19.0 -> v0.20.0
golang.org/x/term v0.40.0 -> v0.42.0
golang.org/x/tools v0.41.0 -> v0.44.0

Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale comment

Security review (automation)

Scope: Diff is limited to go.mod / go.sum: github.com/go-git/go-git/v5 v5.18.0 → v5.19.0 plus transitive bumps (go-billy, filepath-securejoin, pjbgf/sha1cd, golang.org/x/*, 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: 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.

Open in Web View Automation 

Sent by Cursor Automation: Find vulnerabilities

@renovate renovate Bot force-pushed the renovate/go-github.com-go-git-go-git-v5-vulnerability branch from 21e6f7d to 0a68a24 Compare May 18, 2026 09:28
Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale comment

Security review — PR #3847

Scope: Diff is limited to go.mod and go.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/v5 v5.18.0 → v5.19.0 plus aligned transitive updates (go-billy, filepath-securejoin, pjbgf/sha1cd, golang.org/x/*, etc.) and a new indirect github.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-git usage (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.

Open in Web View Automation 

Sent by Cursor Automation: Find vulnerabilities

@renovate renovate Bot changed the title fix(deps): update module github.com/go-git/go-git/v5 to v5.19.0 [security] fix(deps): update module github.com/go-git/go-git/v5 to v5.19.1 [security] May 19, 2026
@renovate renovate Bot force-pushed the renovate/go-github.com-go-git-go-git-v5-vulnerability branch from 0a68a24 to 4e1b56a Compare May 19, 2026 15:46
Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale comment

Security review (automation)

Scope: Diff is limited to go.mod and go.sum (dependency and go directive 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/v5 is upgraded v5.18.0 → v5.19.1 with matching go.sum entries. That aligns with a security remediation for the Git integration stack (Semaphore uses go-git in db_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 go directive 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.

Open in Web View Automation 

Sent by Cursor Automation: Find vulnerabilities

@renovate renovate Bot force-pushed the renovate/go-github.com-go-git-go-git-v5-vulnerability branch from 4e1b56a to 1524af8 Compare May 29, 2026 15:54
Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 #3847clean (no new M/H/C findings). Dependency-only security bump for go-git v5.19.1; recommend merge from a diff-security perspective.

Open in Web View Automation 

Sent by Cursor Automation: Find vulnerabilities

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants