Skip to content

Update module github.com/go-git/go-git/v5 to v5.19.1 [SECURITY]#4723

Merged
pulumi-renovate[bot] merged 1 commit into
masterfrom
renovate/security
May 20, 2026
Merged

Update module github.com/go-git/go-git/v5 to v5.19.1 [SECURITY]#4723
pulumi-renovate[bot] merged 1 commit into
masterfrom
renovate/security

Conversation

@pulumi-renovate

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Type Update Change
github.com/go-git/go-git/v5 indirect patch v5.19.0 -> v5.19.1

Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.

GitHub Vulnerability Alerts

CVE-2026-45570

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

CVE-2026-45571

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


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: Branch creation - "" (UTC), Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 Automerge: Enabled.

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 has been generated by Renovate Bot.

@pulumi-renovate pulumi-renovate Bot added dependencies Pull requests that update a dependency file impact/no-changelog-required This issue doesn't require a CHANGELOG update labels May 19, 2026
@pulumi-renovate pulumi-renovate Bot enabled auto-merge (squash) May 19, 2026 23:55
@pulumi-renovate

Copy link
Copy Markdown
Contributor Author

⚠️ Artifact update problem

Renovate failed to update artifacts related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: examples/azure-native-sdk-v2/go-azure-in-azure/go.sum
Command failed: go get -d -t ./...
go: -d flag is deprecated. -d=true is a no-op
go: module github.com/go-git/go-billy/v5@v5.9.0 requires go >= 1.25.0; switching to go1.25.10
go: -d flag is deprecated. -d=true is a no-op
go: github.com/pulumi/pulumi-azure-native-sdk/authorization/v3@v3.18.0 (replaced by ../../../sdk/pulumi-azure-native-sdk/authorization): reading ../../../sdk/pulumi-azure-native-sdk/authorization/go.mod: open /tmp/renovate/repos/github/pulumi/pulumi-azure-native/sdk/pulumi-azure-native-sdk/authorization/go.mod: no such file or directory

File name: examples/azure-native-sdk-v2/go-clientconfig/go.sum
Command failed: go get -d -t ./...
go: -d flag is deprecated. -d=true is a no-op
go: module github.com/go-git/go-billy/v5@v5.9.0 requires go >= 1.25.0; switching to go1.25.10
go: -d flag is deprecated. -d=true is a no-op
go: github.com/pulumi/pulumi-azure-native-sdk/authorization/v3@v3.18.0 (replaced by ../../../sdk/pulumi-azure-native-sdk/authorization): reading ../../../sdk/pulumi-azure-native-sdk/authorization/go.mod: open /tmp/renovate/repos/github/pulumi/pulumi-azure-native/sdk/pulumi-azure-native-sdk/authorization/go.mod: no such file or directory

File name: examples/azure-native-sdk-v2/go-function-scm-ftp-deletion/go.sum
Command failed: go get -d -t ./...
go: -d flag is deprecated. -d=true is a no-op
go: module github.com/go-git/go-billy/v5@v5.9.0 requires go >= 1.25.0; switching to go1.25.10
go: -d flag is deprecated. -d=true is a no-op
go: github.com/pulumi/pulumi-azure-native-sdk/resources/v3@v3.18.0 (replaced by ../../../sdk/pulumi-azure-native-sdk/resources): reading ../../../sdk/pulumi-azure-native-sdk/resources/go.mod: open /tmp/renovate/repos/github/pulumi/pulumi-azure-native/sdk/pulumi-azure-native-sdk/resources/go.mod: no such file or directory

File name: examples/azure-native-sdk-v2/go-generic-resource/go.sum
Command failed: go get -d -t ./...
go: -d flag is deprecated. -d=true is a no-op
go: module github.com/go-git/go-billy/v5@v5.9.0 requires go >= 1.25.0; switching to go1.25.10
go: -d flag is deprecated. -d=true is a no-op
go: github.com/pulumi/pulumi-azure-native-sdk/resources/v3@v3.18.0 (replaced by ../../../sdk/pulumi-azure-native-sdk/resources): reading ../../../sdk/pulumi-azure-native-sdk/resources/go.mod: open /tmp/renovate/repos/github/pulumi/pulumi-azure-native/sdk/pulumi-azure-native-sdk/resources/go.mod: no such file or directory

File name: examples/azure-native-sdk-v2/go-servicebus-recreate/step1/go.sum
Command failed: go get -d -t ./...
go: -d flag is deprecated. -d=true is a no-op
go: module github.com/go-git/go-billy/v5@v5.9.0 requires go >= 1.25.0; switching to go1.25.10
go: -d flag is deprecated. -d=true is a no-op
go: github.com/pulumi/pulumi-azure-native-sdk/resources/v3@v3.18.0 (replaced by ../../../../sdk/pulumi-azure-native-sdk/resources): reading ../../../../sdk/pulumi-azure-native-sdk/resources/go.mod: open /tmp/renovate/repos/github/pulumi/pulumi-azure-native/sdk/pulumi-azure-native-sdk/resources/go.mod: no such file or directory

File name: examples/azure-native-sdk-v2/go-simple/go.sum
Command failed: go get -d -t ./...
go: -d flag is deprecated. -d=true is a no-op
go: module github.com/go-git/go-billy/v5@v5.9.0 requires go >= 1.25.0; switching to go1.25.10
go: -d flag is deprecated. -d=true is a no-op
go: github.com/pulumi/pulumi-azure-native-sdk/resources/v3@v3.18.0 (replaced by ../../../sdk/pulumi-azure-native-sdk/resources): reading ../../../sdk/pulumi-azure-native-sdk/resources/go.mod: open /tmp/renovate/repos/github/pulumi/pulumi-azure-native/sdk/pulumi-azure-native-sdk/resources/go.mod: no such file or directory

File name: examples/azure-native-sdk-v2/go-user-assigned-identity/go.sum
Command failed: go get -d -t ./...
go: -d flag is deprecated. -d=true is a no-op
go: module github.com/go-git/go-billy/v5@v5.9.0 requires go >= 1.25.0; switching to go1.25.10
go: -d flag is deprecated. -d=true is a no-op
go: github.com/pulumi/pulumi-azure-native-sdk/managedidentity/v3@v3.18.0 (replaced by ../../../sdk/pulumi-azure-native-sdk/managedidentity): reading ../../../sdk/pulumi-azure-native-sdk/managedidentity/go.mod: open /tmp/renovate/repos/github/pulumi/pulumi-azure-native/sdk/pulumi-azure-native-sdk/managedidentity/go.mod: no such file or directory

@github-actions

Copy link
Copy Markdown
Contributor

Does the PR have any schema changes?

Looking good! No breaking changes found.
No new resources/functions.

@codecov

codecov Bot commented May 20, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 64.27%. Comparing base (5c4a0fc) to head (aba8195).

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #4723      +/-   ##
==========================================
- Coverage   64.28%   64.27%   -0.01%     
==========================================
  Files          92       92              
  Lines       11449    11449              
==========================================
- Hits         7360     7359       -1     
- Misses       3403     3404       +1     
  Partials      686      686              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@pulumi-renovate pulumi-renovate Bot merged commit b48fdef into master May 20, 2026
26 of 27 checks passed
@pulumi-renovate pulumi-renovate Bot deleted the renovate/security branch May 20, 2026 00:55
@pulumi-bot

Copy link
Copy Markdown
Contributor

This PR has been shipped in release v3.19.0.

1 similar comment
@pulumi-bot

Copy link
Copy Markdown
Contributor

This PR has been shipped in release v3.19.0.

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

Labels

dependencies Pull requests that update a dependency file impact/no-changelog-required This issue doesn't require a CHANGELOG update

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant