Skip to content

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

Open
netic-renovate[bot] wants to merge 1 commit into
mainfrom
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]#324
netic-renovate[bot] wants to merge 1 commit into
mainfrom
renovate/go-github.com-go-git-go-git-v5-vulnerability

Conversation

@netic-renovate
Copy link
Copy Markdown
Contributor

@netic-renovate netic-renovate Bot commented May 11, 2026

This PR contains the following updates:

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

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).


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


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • ""
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


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

This PR has been generated by Mend Renovate.

@netic-renovate netic-renovate Bot added renovate-auto-approve Enables auto approval for Renovate PRs security labels May 11, 2026
@netic-renovate netic-renovate Bot requested review from a team and gh-netic-robot as code owners May 11, 2026 16:29
@netic-renovate
Copy link
Copy Markdown
Contributor 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):

  • 5 additional dependencies were updated

Details:

Package Change
github.com/go-git/go-billy/v5 v5.8.0 -> v5.9.0
golang.org/x/mod v0.34.0 -> v0.35.0
github.com/pjbgf/sha1cd v0.4.0 -> v0.6.0
golang.org/x/exp v0.0.0-20251023183803-a4bb9ffd2546 -> v0.0.0-20260410095643-746e56fc9e2f
golang.org/x/tools v0.43.0 -> v0.44.0

@netic-renovate netic-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.0 [security] - autoclosed May 18, 2026
@netic-renovate netic-renovate Bot closed this May 18, 2026
@netic-renovate netic-renovate Bot deleted the renovate/go-github.com-go-git-go-git-v5-vulnerability branch May 18, 2026 09:13
@netic-renovate netic-renovate Bot changed the title fix(deps): update module github.com/go-git/go-git/v5 to v5.19.0 [security] - autoclosed fix(deps): update module github.com/go-git/go-git/v5 to v5.19.1 [security] May 19, 2026
@netic-renovate netic-renovate Bot reopened this May 19, 2026
@netic-renovate netic-renovate Bot force-pushed the renovate/go-github.com-go-git-go-git-v5-vulnerability branch 2 times, most recently from 76810dd to 56c8511 Compare May 19, 2026 16:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

renovate-auto-approve Enables auto approval for Renovate PRs security

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants