CVE-2026-71556: go-git: Worktree operations may follow symlinks
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.
References
- github.com/advisories/GHSA-hc8v-wwc9-vgxm
- github.com/go-git/go-git/commit/008a78f2dd86f52544ddff8b8e8ddeecdf3f7aab
- github.com/go-git/go-git/commit/661d1c7f101d34e002a3cfcf8dbea5b7421d07ac
- github.com/go-git/go-git/releases/tag/v5.19.2
- github.com/go-git/go-git/releases/tag/v6.0.0-alpha.5
- github.com/go-git/go-git/security/advisories/GHSA-hc8v-wwc9-vgxm
- nvd.nist.gov/vuln/detail/CVE-2026-71556
Code Behaviors & Features
Detect and mitigate CVE-2026-71556 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →