Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconCraft .gitmodules with traversal submodule name
-
DeliveryHost or submit malicious repository to target
-
ExploitTarget application clones repository and inspects submodules
-
Installgitoxide joins traversal name as raw filesystem path
-
C2Path escapes .git/modules boundary
-
Executestate()/open() resolves attacker-chosen on-disk repository
-
ImpactRepository metadata and existence confirmed to attacker
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK
2 techniques across 2 tactics: Discovery, Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires that the target application uses the gitoxide crate (before 0.52.1) or gix crate (before 0.83.0) and invokes the state() or open() functions on submodules sourced from an attacker-supplied .gitmodules file. The attacker must be able to deliver a malicious repository to the target - for example via a pull request, a public repository URL processed by a CI pipeline, or a git clone of attacker-controlled content. No authentication to the victim system is required (PR:N per CVSS 4.0 vector), and in automated pipeline contexts no operator interaction is needed (UI:N). Exploitation is limited to confidentiality - the attacker can confirm the existence of and open repositories at traversed paths, but cannot write data (VI:N/VA:N). Exploitation is constrained to paths reachable from the process's working directory and filesystem permissions; it does not grant arbitrary file read beyond what the repository open() API exposes. |
| Impact | The provided CVSS 4.0 score of 8.7 (AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N) reflects a high-confidence confidentiality impact with no integrity or availability consequence, which aligns well with the described behaviour: an attacker gains the ability to inspect repositories outside .git/modules but cannot write data. The PR:N/UI:N rating is credible in automated contexts such as CI/CD pipelines that clone and inspect untrusted repositories without operator interaction. EPSS data was not provided in the input, so exploitation probability cannot be quantified precisely. The vulnerability is not listed in CISA KEV, indicating no confirmed mass exploitation. A public proof-of-concept is attached to the GitHub advisory, meaningfully lowering the barrier to exploitation. Real-world priority is moderate-to-high for organisations running automated git tooling built on gitoxide/gix that processes untrusted repositories; it is low for environments where the library is used exclusively with trusted, internal repositories. |
| Exploit ScenarioDerived | An attacker publishes or submits a git repository whose .gitmodules file declares a submodule with a name containing path traversal segments such as '../../../escaped-target.git'. When a CI/CD pipeline or repository analysis tool built on gitoxide/gix clones the repository and calls state() or open() on its submodules, the unvalidated name escapes .git/modules and the library opens or reports the existence of a repository at an attacker-chosen path on the host filesystem, leaking its common_dir path and confirming the presence of repositories at that location. A working proof-of-concept demonstrating this exact behaviour is attached to GHSA-fr8x-3vfx-f45h. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 28, 2026
Path traversal in gitoxide before 0.52.1 and gix before 0.83.0 allows an attacker who supplies a malicious git repository to redirect submodule git directory resolution outside .git/modules, exposing arbitrary on-disk repository structure to inspection. The flaw stems from submodule names read from .gitmodules being joined directly as filesystem path components with no normalization or confinement check, so a name such as '../../../escaped-target.git' escapes the expected directory boundary. A proof-of-concept is publicly available via GHSA-fr8x-3vfx-f45h; no confirmed active exploitation at time of analysis.
RemediationAI
The primary fix is to upgrade the gitoxide crate to version 0.52.1 or later and the gix crate to version 0.83.0 or later, as confirmed by vendor advisory GHSA-fr8x-3vfx-f45h (https://github.com/GitoxideLabs/gitoxide/security/advisories/GHSA-fr8x-3vfx-f45h). Run 'cargo update' or pin the dependency in Cargo.toml to the fixed releases. If an immediate upgrade is not feasible, the most effective compensating control is to avoid calling state() or open() on submodules from untrusted repositories - disabling submodule inspection for untrusted inputs removes the exploitable code path entirely, at the cost of losing submodule functionality for those inputs. There is no known configuration flag within the library itself to disable submodule name validation prior to the fix.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in cargo
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
gitoxide is a pure-Rust implementation of git, with the gix crate providing the high-level API. The affected code path is in gix-submodule/src/access.rs, which surfaces submodule names directly from .gitmodules configuration without sanitization, and gix/src/submodule/mod.rs, which derives the submodule git directory via common_dir().join('modules').join(name). Because there is no normalization-and-confinement step, traversal segments in the submodule name (CWE-22: Improper Limitation of a Pathname to a Restricted Directory) directly influence which filesystem path is passed to both state() and open(). CPE cpe:2.3:a:gitoxidelabs:gitoxide:*:*:*:*:*:*:*:* covers all versions prior to the fix. The library is used in tooling that processes arbitrary git repositories, including CI/CD pipelines, repository inspection tools, and Rust-ecosystem git clients.
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:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
Network-delivered malicious repository triggers traversal with no privileges or interaction; impact is confidentiality-only with no scope change.
AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:N
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
gitoxide before 0.52.1 fails to validate submodule names from .gitmodules configuration, allowing path traversal when deriving submodule git directories. Attackers can craft malicious submodule names with traversal segments to redirect state() and open() functions to repositories outside .git/modules, causing repository confusion and inspection of attacker-controlled repositories.
Executive ViewAI
A path traversal vulnerability in gitoxide and gix (the Git implementation libraries used by development teams) allows attackers to expose arbitrary repository structures through maliciously crafted repositories. Organizations using these tools before versions 0.52.1 (gitoxide) and 0.83.0 (gix) face immediate risk of data exfiltration if they clone untrusted repositories, particularly in automated CI/CD pipelines where human review is bypassed.
No vendor-released patch identified at time of analysis. Interim mitigations include: (1) Disable submodule auto-initialization and require explicit manual approval for submodule operations; (2) Implement pre-clone repository validation that rejects .gitmodules files with path traversal patterns (../, encoded variants); (3) Run git operations in containerized environments with read-only mounts to the host filesystem; (4) Deploy file integrity monitoring on .git/modules directories to detect unauthorized access; (5) Restrict git tools to air-gapped networks or allowlisted source repositories until patching is available.
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
Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.
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
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
Credential hijacking in gitoxide before 0.38.2 allows remote attackers to redirect credential helper lookups to attacker
Same weakness CWE-22 – Path Traversal
View allSame technique Path Traversal
View allVendor StatusVendor
SUSE
Severity: Moderate| Product | Status |
|---|---|
| SUSE Linux Enterprise Server 16.0 | Affected |
| SUSE Linux Enterprise Server 16.0 | Affected |
| SUSE Linux Enterprise Server 16.1 | Affected |
| SUSE Linux Enterprise Server 16.1 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.0 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.0 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.1 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.1 | Affected |
| openSUSE Leap 16.0 | Affected |
| openSUSE Leap 16.0 | Affected |
EUVD-2026-67703
GHSA-66gr-hvvc-vvxc
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB