Skip to content

Update module github.com/go-git/go-git/v5 to v5.19.2 [SECURITY] (main) - #3473

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

Update module github.com/go-git/go-git/v5 to v5.19.2 [SECURITY] (main)#3473
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/main-go-github.com-go-git-go-git-v5-vulnerability

Conversation

@renovate

@renovate renovate Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
github.com/go-git/go-git/v5 v5.19.1v5.19.2 age adoption passing confidence

go-git: Worktree operations may follow symlinks

CVE-2026-71556 / GHSA-hc8v-wwc9-vgxm

More information

Details

Impact

A symlink traversal issue in go-git could allow worktree operations to modify files outside the intended worktree path.

The worktreeFilesystem wrapper rejected dangerous path strings, including paths containing .git, parent-directory components, or control characters. However, it did not prevent filesystem operations from following symbolic links that were already present in the worktree.

As a result, a path that is safe when evaluated as a string could still resolve into the repository's Git metadata directory. For example, if s is a symbolic link to .git, writing to s/config would modify .git/config.

A symbolic link at the final path component could also be followed. For example, if s points directly to .git/config, opening s for writing with truncation could overwrite the repository configuration.

Exploitation requires an attacker to be able to introduce or control a symbolic link in the worktree and cause the application to perform a write through that path.

Applications using storage/memory for their Storer, or go-billy/memfs for their Worktree, are not affected by this vulnerability.

Patches

The issue has been addressed by making the worktree filesystem wrapper a symlink-safe boundary.

Worktree operations now reject paths where an existing symbolic link in any path component could cause the operation to escape the intended worktree location, including symbolic links at the final component.

Users of filesystem-backed worktrees should upgrade to a patched version.

Credits

Thanks to @​kodareef5 for reporting this issue and working with the go-git security team toward its resolution. 🥇
We would also like to thank @​HughLewis20, who independently reported the same issue while a fix was already in progress.

Severity

  • CVSS Score: 7.1 / 10 (High)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:L

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


go-git: Malicious reference names may modify files outside the reference storage

CVE-2026-71557 / GHSA-qgq7-7hm3-q39j

More information

Details

Impact

A path traversal issue in go-git could allow malicious reference names to access files outside the repository's intended reference storage.

Loose references are stored under .git/<reference-name>. The reference name was previously used as a path without verifying that the resolved path remained within the reference storage. A name such as refs/heads/../../config could therefore resolve to unrelated repository metadata such as .git/config or .git/HEAD.

A malicious Git server could advertise such a reference name. The name may also survive refspec mapping; for example, it could be mapped to refs/remotes/origin/../../config during a clone or fetch operation.

This vulnerability affects filesystem-backed repositories using the storage/filesystem package and its dotgit reference storage. Users relying exclusively on the in-memory storage implementation, storage/memory, are not affected, because reference names are not resolved as filesystem paths.

Exploitation requires an application using go-git with filesystem-backed storage to interact with a malicious Git server or otherwise process attacker-controlled reference names.

Patches

The issue has been addressed by validating reference names at the dotgit storage entry points and rejecting names whose resolved paths could escape the reference storage.

Users of filesystem-backed storage should upgrade to a patched version.

Workarounds

Applications that exclusively use storage/memory are not affected and do not require a workaround for this vulnerability.

For applications using filesystem-backed storage, avoid cloning from or fetching from untrusted Git servers until an upgrade is possible.

Applications that directly construct or process reference names may also validate them before passing them to filesystem-backed go-git storage. Application-level validation should only be considered a temporary mitigation and does not replace upgrading to a patched version.

References
Credits

Thanks to @​Saku0512 for reporting this issue and @​Sahana2524 for proposing the initial fix. 🙇

Severity

  • CVSS Score: 6.3 / 10 (Medium)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:N/I:H/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.2

Compare Source

What's Changed

Full Changelog: go-git/go-git@v5.19.1...v5.19.2


Configuration

📅 Schedule: (UTC)

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

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, 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
renovate Bot enabled auto-merge August 7, 2026 17:25
@renovate

renovate Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor Author

ℹ️ Artifact update notice

File name: acceptance/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):

  • 2 additional dependencies were updated

Details:

Package Change
golang.org/x/mod v0.36.0 -> v0.37.0
golang.org/x/text v0.38.0 -> v0.39.0
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):

  • 3 additional dependencies were updated

Details:

Package Change
golang.org/x/text v0.38.0 -> v0.39.0
golang.org/x/mod v0.36.0 -> v0.37.0
golang.org/x/tools v0.45.0 -> v0.47.0

@fullsend-ai-review

fullsend-ai-review Bot commented Aug 7, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 5:27 PM UTC · Completed 5:33 PM UTC

Commit: 87c4a29 · View workflow run →

@fullsend-ai-review

fullsend-ai-review Bot commented Aug 7, 2026

Copy link
Copy Markdown

Looks good to me

Previous run

Looks good to me

Previous run (2)

Looks good to me

fullsend-ai-review[bot]

This comment was marked as outdated.

@fullsend-ai-review fullsend-ai-review Bot added the ready-for-merge All reviewers approved — ready to merge label Aug 7, 2026
@codecov

codecov Bot commented Aug 7, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

Flag Coverage Δ
acceptance 54.42% <ø> (+<0.01%) ⬆️
generative 16.36% <ø> (ø)
integration 27.58% <ø> (ø)
unit 71.97% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.
see 1 file with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@renovate
renovate Bot force-pushed the renovate/main-go-github.com-go-git-go-git-v5-vulnerability branch from 314f440 to c7574b2 Compare August 7, 2026 20:20
@fullsend-ai-review

fullsend-ai-review Bot commented Aug 7, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 8:22 PM UTC · Completed 8:27 PM UTC

Commit: 87c4a29 · View workflow run →

fullsend-ai-review[bot]

This comment was marked as outdated.

@renovate renovate Bot changed the title Update module github.com/go-git/go-git/v5 to v5.19.2 [SECURITY] (main) Update module github.com/go-git/go-git/v5 to v5.19.2 [SECURITY] (main) - autoclosed Aug 8, 2026
@renovate renovate Bot closed this Aug 8, 2026
auto-merge was automatically disabled August 8, 2026 14:03

Pull request was closed

@renovate
renovate Bot deleted the renovate/main-go-github.com-go-git-go-git-v5-vulnerability branch August 8, 2026 14:03
@fullsend-ai-retro

fullsend-ai-retro Bot commented Aug 8, 2026

Copy link
Copy Markdown

🤖 Finished Retro · ✅ Success · Started 2:04 PM UTC · Completed 2:17 PM UTC

Commit: 87c4a29 · View workflow run →

@fullsend-ai-retro

Copy link
Copy Markdown

Retro: PR #3473 — Renovate security update for go-git/go-git/v5 (autoclosed)

Timeline

  1. Aug 7, 17:25 UTC — Renovate opened PR #3473 to bump go-git/go-git/v5 from v5.19.1 to v5.19.2, addressing CVE-2026-71556 (CVSS 7.1 High, symlink traversal) and CVE-2026-71557 (CVSS 6.3 Medium, reference name path traversal). Changes: 4 files (go.mod/go.sum in root and acceptance), 23 lines added/deleted.
  2. Aug 7, 17:25–17:33 UTC — Review agent run 31202244976 dispatched. Classified the PR as "mechanical/value-only." Dispatched correctness (no findings) and style-conventions (failed — Sonnet model unavailable, recorded as info). Security sub-agent was not dispatched because the diff only touches go.mod/go.sum, which don't match auth/RBAC/permissions/secrets criteria. Verdict: APPROVED. Cost: $1.42.
  3. Aug 7, 20:20 UTC — PR rebased by Renovate. Review agent run 31215486430 dispatched again. Same triage, same verdict: APPROVED. Style-conventions failed again but succeeded on retry with Haiku. Cost: $1.19.
  4. Aug 8, 14:03 UTC — Renovate autoclosed the PR. The go-git v5.19.2 update was folded into the existing grouped PR #3019 ("Update go modules (main) (patch)"), which has been open since October 2025.
  5. Result: The security fix was never merged. The go.mod on main still shows go-git/go-git/v5 v5.19.1. Both CVEs remain unpatched. Total review cost wasted: $2.61.

Workflow quality

The review agent performed correctly within its current design constraints. It correctly classified a mechanical dependency bump, verified version consistency across both module directories, checked for PR body injection patterns, and approved appropriately. The root problem is not in the agent workflow — it's in the Renovate configuration that caused a security-specific PR to be folded into a slow-moving grouped PR before it could merge.

Evidence for existing open issues (not proposing duplicates)

Proposals filed

@renovate renovate Bot changed the title Update module github.com/go-git/go-git/v5 to v5.19.2 [SECURITY] (main) - autoclosed Update module github.com/go-git/go-git/v5 to v5.19.2 [SECURITY] (main) Aug 8, 2026
@renovate renovate Bot reopened this Aug 8, 2026
@renovate
renovate Bot force-pushed the renovate/main-go-github.com-go-git-go-git-v5-vulnerability branch 2 times, most recently from c7574b2 to 641f90c Compare August 8, 2026 14:30
@fullsend-ai-review

fullsend-ai-review Bot commented Aug 8, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 2:31 PM UTC · Completed 2:38 PM UTC

Commit: 87c4a29 · View workflow run →

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

Labels

main ready-for-merge All reviewers approved — ready to merge renovate size: S

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants