Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAttacker crafts URL with embedded carriage return
-
DeliveryDeveloper initiates gitoxide clone or fetch
-
Exploitgitoxide passes unsanitized URL to credential helper
-
ExecutionInjected field overrides legitimate host in protocol stream
-
PersistCredential helper returns credentials for attacker-specified host
-
ImpactAttacker collects harvested credentials
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding for downstream
|
| Exploitation Conditions | Exploitation requires all of the following to be true simultaneously: the target environment must use gitoxide (not standard git) as the Git client; a credential helper must be actively configured in the gitoxide or system Git configuration - environments with no credential helper are unexploitable; the attacker must be able to supply or influence a URL that gitoxide processes and forwards to the helper (e.g., via a malicious remote URL, submodule reference, or redirected fetch); and the user must initiate a gitoxide operation (clone, fetch, push) that triggers the credential lookup against the malicious URL (CVSS UI:P). Exploitation is further constrained by CVSS AC:H and AT:P, meaning opportunistic or automated attacks are not feasible without the specific environment alignment described above. The following limit exploitation in practice: most production CI/CD pipelines use standard git rather than gitoxide; credential helpers are an opt-in configuration; and the attack produces only low-confidence credential exposure, not arbitrary command execution. |
| Impact | The CVSS 4.0 score of 2.3 (AV:N/AC:H/AT:P/PR:N/UI:P/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N) accurately characterises the constrained risk profile. While the attack originates over the network and requires no privileges on the attacker side (PR:N), it demands high attack complexity (AC:H), specific attack prerequisites (AT:P - credential helper must be configured), and user interaction (UI:P - the developer must initiate a git operation against the malicious URL). The confidentiality impact is limited to low (VC:L) because only the credentials for one mistargeted host are exposed; integrity and availability are unaffected. No EPSS data was included in the provided intelligence, and the vulnerability is absent from CISA KEV, confirming no verified active exploitation at time of analysis. No proof-of-concept was identified. The primary realistic threat is targeted credential theft against developers who clone or fetch from attacker-influenced sources while using gitoxide with a credential helper - opportunistic mass exploitation is unlikely given the complexity constraints. |
| Exploit ScenarioDerived | An attacker publishes a malicious Git repository - or compromises a submodule reference in a legitimate project - containing a remote URL with embedded carriage return characters in a position that gitoxide processes and relays to a credential helper. When a developer using an affected gitoxide version runs a clone or fetch operation, gitoxide constructs a credential helper request using the unsanitized URL, injecting the attacker-controlled host field into the protocol stream. The credential helper, interpreting the injected field as legitimate input, returns the developer's stored credentials for the attacker-specified host rather than the intended repository host, enabling the attacker to harvest those credentials passively. No public proof-of-concept was identified in the provided data, though the underlying carriage-return injection technique is well-documented in prior Git credential protocol research. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 28, 2026
Credential hijacking in gitoxide before 0.38.2 allows remote attackers to redirect credential helper lookups to attacker-specified hosts by embedding bare carriage return characters in URLs supplied to gitoxide operations. Because gitoxide fails to sanitize these control characters before constructing credential helper protocol messages, injected fields override the legitimate host value, causing helpers to return stored credentials for a host the attacker controls rather than the intended repository host. No public exploit has been identified and the vulnerability is not listed in CISA KEV; the CVSS 4.0 score of 2.3 reflects the high complexity, attack prerequisites, and user interaction requirements that substantially constrain real-world exploitability.
RemediationAI
Upgrade to gitoxide version 0.38.2 or later, which introduces validation that rejects bare carriage return characters in URL values before they are passed to credential helpers; this is the primary fix confirmed by the vendor advisory at https://github.com/GitoxideLabs/gitoxide/security/advisories/GHSA-6wr8-3w4h-j9wj. If an immediate upgrade is not feasible, the most effective compensating control is to remove or disable any configured credential helpers when using affected gitoxide versions with untrusted repositories - this eliminates the injection surface entirely but requires manual credential management for affected operations. A secondary control is to restrict gitoxide usage to repositories from trusted, access-controlled sources only, which prevents an attacker from supplying a malicious URL in the first place; however, this does not protect against compromised dependency sources or submodule references within otherwise-trusted repositories.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
gitoxide is a Rust-native reimplementation of the Git version control system (CPE: cpe:2.3:a:gitoxidelabs:gitoxide:*:*:*:*:*:*:*:*). Git credential helpers communicate via a line-oriented key-value protocol, where each field is terminated by a newline; a bare carriage return (\r) before that newline can, depending on the helper's parser, function as a field separator or inject a new field name. When gitoxide embeds a URL into this protocol stream without stripping or escaping \r characters, an attacker who controls the URL - through a malicious remote, submodule reference, or crafted redirect - can inject a forged 'host=' line that overrides the real one. CWE-116 (Improper Encoding or Escaping of Output) is the precise root cause: user-controlled data is embedded in a structured protocol message without applying the required escaping.
Know when Gitoxide gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:P/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
Network-reachable via malicious URL but requires credential helper configuration and user-initiated git operation (UI:R, AC:H); only credentials exposed so C:L, no integrity or availability impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
1DescriptionCVE.org
gitoxide before 0.38.2 fails to validate carriage return characters in URL values passed to credential helpers. Attackers can supply URLs containing bare carriage returns to inject additional helper protocol fields and cause credential helpers to return credentials for attacker-specified hosts instead of the requested URL.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.
Command injection in the gitoxide Rust library (gix-submodule crate before 0.82.0, gix before 0.83.0) allows attackers c
Path traversal and trust inheritance flaws in gitoxide's Rust crates gix (≤ 0.72.0) and gix-validate (≤ 0.10.0) allow an
Symlink following in gitoxide before 0.52.1 and the gix crate before 0.83.0 allows an attacker who supplies a malicious
Path traversal in gitoxide before 0.52.1 and gix before 0.83.0 allows an attacker who supplies a malicious git repositor
Denial-of-service in gitoxide's gix-pack crate before 0.69.0 exposes Rust Git clients to remote process crashes during c
Credential exfiltration in gitoxide's gix-transport crate allows a server controlling an HTTP redirect response to steal
Credential theft in gitoxide's curl-based HTTP transport backend allows attackers to capture authentication tokens (pass
Index-out-of-bounds panic in gitoxide's gix-packetline library (versions before 0.21.5) allows a malicious Git server to
Arbitrary file write outside the worktree boundary in gix-worktree-state (part of gitoxide) before 0.33.0 on Windows ena
Control-character injection in gitoxide's gix-transport crate before version 0.59.2 lets crafted git-daemon URLs smuggle
EUVD-2026-67701
GHSA-m78c-xpg9-p5ww
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB