Skip to content

Update module github.com/go-git/go-git/v5 to v5.19.2 [SECURITY] (release-v0.7) - #3474

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

Update module github.com/go-git/go-git/v5 to v5.19.2 [SECURITY] (release-v0.7)#3474
renovate[bot] wants to merge 1 commit into
release-v0.7from
renovate/release-v0.7-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

Warning

Some dependencies could not be looked up. Check the warning logs for more information.


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.

@fullsend-ai-review

fullsend-ai-review Bot commented Aug 7, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 5:31 PM UTC · Completed 5:36 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

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
@renovate renovate Bot changed the title Update module github.com/go-git/go-git/v5 to v5.19.2 [SECURITY] (release-v0.7) Update module github.com/go-git/go-git/v5 to v5.19.2 [SECURITY] (release-v0.7) - 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/release-v0.7-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 #3474 — Renovate security bump (go-git v5.19.2)

What happened

Renovate created PR #3474 (and siblings #3473, #3475) to bump go-git/go-git/v5 from v5.19.1 to v5.19.2, patching CVE-2026-71556 (CVSS 7.1 High) and CVE-2026-71557 (CVSS 6.3 Medium) on the release-v0.7 branch. The review agent correctly classified the 6-line change as mechanical/value-only, approved within ~7 minutes, and applied ready-for-merge. One day later, Renovate autoclosed all three PRs because the same version bump was already included in long-running grouped patch PRs (e.g., PR #3019 on main, open since Oct 2025 with failing CI). Both CVEs remain unpatched on all branches.

Agent workflow assessment

The review agent (Opus, $0.98, 21 turns) performed correctly within its current design:

  • Appropriately triaged as mechanical, skipping irrelevant review dimensions (security, intent-coherence, docs-currency, cross-repo-contracts)
  • Dispatched only correctness and style-conventions sub-agents
  • Style-conventions sub-agent failed due to claude-sonnet-4-5@20250929 model unavailability on the deployment — handled gracefully as an info-level finding below severity threshold
  • Approved a safe, minimal dependency bump

Existing issue coverage

The primary optimization opportunities (reducing agent cost on trivial bot PRs) are thoroughly covered by existing open issues in fullsend-ai/fullsend. This retro provides additional evidence for:

  • #5360: this autoclosed bot PR triggered a full Opus review ($0.98) and a retro run, neither producing actionable findings
  • #4060: two sub-agents were dispatched for a mechanical version bump where zero findings were possible
  • #3833 / #3317: retro dispatched on a trivial autoclosed bot PR with no human interaction
  • #2842: Opus was used for a 6-line version bump that a cheaper model could handle

Novel finding

Renovate's grouping config causes standalone security PRs to be autoclosed when the same bump appears in a grouped patch PR — even when the grouped PR has failing CI and cannot merge. This is a recurring pattern: the same thing happened with go-git v5.19.1 in April 2026 (PRs #3250-3253 autoclosed, manual PR #3335 needed weeks later). See proposal below.

Proposals filed

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

fullsend-ai-review Bot commented Aug 8, 2026

Copy link
Copy Markdown

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

Commit: 87c4a29 · View workflow run →

@codecov

codecov Bot commented Aug 8, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

Flag Coverage Δ
generative 69.55% <ø> (ø)
integration 69.55% <ø> (ø)
unit 69.55% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

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

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

Labels

ready-for-merge All reviewers approved — ready to merge release-v0.7 renovate size: XS

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants