Skip to main content

go-git EUVDEUVD-2026-54527

| CVE-2026-71557 MEDIUM
Path Traversal (CWE-22)
2026-08-07 GitHub_M GHSA-qgq7-7hm3-q39j
6.3
CVSS 3.1 · Vendor: GitHub_M
Share

Severity by source

Vendor (GitHub_M) PRIMARY
6.3 MEDIUM
AV:N/AC:L/PR:L/UI:R/S:U/C:N/I:H/A:L
vuln.today AI
7.1 HIGH

Attacker needs only to host a malicious Git server (no privileges on victim system, so PR:N); client application must initiate a fetch/clone (UI:R); no confidentiality impact since only writes occur.

3.1 AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:L
4.0 AV:N/AC:L/AT:N/PR:N/UI:A/VC:N/VI:H/VA:L/SC:N/SI:N/SA:N
SUSE
5.4 MEDIUM
AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:L

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
Required
Scope
Unchanged
Confidentiality
None
Integrity
High
Availability
Low

Lifecycle Timeline

3
Patch available
Aug 07, 2026 - 17:17 EUVD
Source Code Evidence Fetched
Aug 07, 2026 - 17:06 vuln.today
Analysis Generated
Aug 07, 2026 - 17:06 vuln.today

DescriptionCVE.org

go-git is an extensible git implementation library written in pure Go. Prior to 5.19.2 and 6.0.0-alpha.5, reference names are not sanitized before being used to construct on-disk paths under the reference storage directory, so a maliciously crafted reference name (for example containing directory-traversal sequences) can cause go-git to write files outside the intended reference storage directory. Versions 5.19.2 and 6.0.0-alpha.5 fix the issue.

AnalysisAI

Path traversal in go-git's filesystem-backed reference storage allows a malicious Git server to overwrite arbitrary files within the .git directory - including sensitive metadata like .git/config and .git/HEAD - by advertising crafted reference names containing .. sequences. Any application using go-git with the storage/filesystem package that clones from or fetches untrusted remote repositories is affected; versions prior to 5.19.2 (v5 branch) and 6.0.0-alpha.5 (v6 branch) are vulnerable. No public exploit code or CISA KEV listing has been identified at time of analysis, but the attack is straightforward and requires only that an attacker control a Git server the victim application connects to.

Technical ContextAI

go-git (CPE: cpe:2.3:a:go-git:go-git) is a pure Go implementation of the Git protocol and storage layer, widely used in Go-based CI/CD tooling and developer utilities. Loose references in Git are stored as individual files under .git/<reference-name>, so the reference name directly maps to a filesystem path. The storage/filesystem/dotgit package previously used reference names as path components without resolving or validating them against the reference storage root, a classic CWE-22 (Improper Limitation of a Pathname to a Restricted Directory) root cause. A name like refs/heads/../../config resolves to .git/config on the host filesystem, escaping the intended storage subtree. The patch adds a validReferenceName() gate at every dotgit storage entry point that rejects names containing .. components, control characters, Windows volume prefixes, and HFS+/NTFS canonicalization disguises (e.g., .. , ..::$INDEX_ALLOCATION, Unicode ignored-codepoint variants), mirroring defenses already applied to submodule names in the same codebase. The in-memory storage backend (storage/memory) is unaffected because reference names are never resolved to filesystem paths in that implementation.

RemediationAI

The primary fix is to upgrade to go-git v5.19.2 (for the v5 module) or v6.0.0-alpha.5 (for the v6 module), both of which validate reference names at all dotgit storage entry points and reject names that escape the reference storage subtree. Patches are available via https://github.com/go-git/go-git/releases/tag/v5.19.2 and https://github.com/go-git/go-git/releases/tag/v6.0.0-alpha.5. For applications that cannot immediately upgrade, the vendor recommends avoiding clones or fetches from untrusted Git servers until patching is possible - note this does not prevent exploitation if users can supply arbitrary remote URLs. Applications using exclusively storage/memory require no action. A temporary mitigation for applications using filesystem-backed storage is to validate reference names before passing them to go-git storage APIs; however, the vendor explicitly notes this is not a substitute for upgrading because application-level validation is harder to make comprehensive than the library-level fix, particularly for NTFS and HFS+ canonicalization edge cases. Switching to in-memory storage (storage/memory) eliminates the attack surface entirely but may not be architecturally feasible and removes persistence.

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise High Performance Computing 15 SP4 SUSE Linux Enterprise Module for Public Cloud 15 SP4 SUSE Linux Enterprise Server 15 SP4 SUSE Linux Enterprise Server for SAP Applications 15 SP4 SUSE Manager Proxy 4.3 SUSE Manager Retail Branch Server 4.3 SUSE Manager Server 4.3 Fixed
SUSE Linux Enterprise High Performance Computing 15 SP5 SUSE Linux Enterprise Module for Public Cloud 15 SP5 SUSE Linux Enterprise Server 15 SP5 SUSE Linux Enterprise Server for SAP Applications 15 SP5 Fixed
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise High Performance Computing 12 Affected

Share

EUVD-2026-54527 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy