Skip to main content

gitoxide CVE-2026-82251

| EUVDEUVD-2026-67703 HIGH
Path Traversal (CWE-22)
2026-08-28 VulnCheck GHSA-66gr-hvvc-vvxc
8.7
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Recon
    Craft .gitmodules with traversal submodule name
  2. Delivery
    Host or submit malicious repository to target
  3. Exploit
    Target application clones repository and inspects submodules
  4. Install
    gitoxide joins traversal name as raw filesystem path
  5. C2
    Path escapes .git/modules boundary
  6. Execute
    state()/open() resolves attacker-chosen on-disk repository
  7. Impact
    Repository 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

gitoxide 0 <0.82
gitoxide 0 <0.52.1

Affected Packages

cargo gitoxide fix: 0.52.1, 0.82
cargo gix fix: 0.83.0

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

Vendor (VulnCheck) PRIMARY 8.7 HIGH
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
vuln.today AI 7.5 HIGH

Network-delivered malicious repository triggers traversal with no privileges or interaction; impact is confidentiality-only with no scope change.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Aug 28, 2026 - 13:17 EUVD
CVE Published
Aug 28, 2026 - 10:49 cve.org
HIGH 8.7

DescriptionCVE.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

Why It Matters

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.

Business Impact: High
Compensating Controls

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

EPSS Score
0.4%
Top 68% exploitable
Prevalence
Low
Rust-native git library, niche relative to libgit2 and system git
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment MSRC Vendor GitHub VulDB

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Out-of-Cycle
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.

CVE-2026-40034 HIGH POC
8.5 May 26

Command injection in the gitoxide Rust library (gix-submodule crate before 0.82.0, gix before 0.83.0) allows attackers c

CVE-2026-82253 HIGH
8.7 Aug 28

Path traversal and trust inheritance flaws in gitoxide's Rust crates gix (≤ 0.72.0) and gix-validate (≤ 0.10.0) allow an

CVE-2026-82252 HIGH
8.7 Aug 28

Symlink following in gitoxide before 0.52.1 and the gix crate before 0.83.0 allows an attacker who supplies a malicious

CVE-2026-82254 HIGH
8.7 Aug 28

Denial-of-service in gitoxide's gix-pack crate before 0.69.0 exposes Rust Git clients to remote process crashes during c

CVE-2026-82247 HIGH
8.7 Aug 28

Credential exfiltration in gitoxide's gix-transport crate allows a server controlling an HTTP redirect response to steal

CVE-2026-82255 HIGH
7.6 Aug 28

Credential theft in gitoxide's curl-based HTTP transport backend allows attackers to capture authentication tokens (pass

CVE-2026-82250 HIGH
7.1 Aug 28

Index-out-of-bounds panic in gitoxide's gix-packetline library (versions before 0.21.5) allows a malicious Git server to

CVE-2026-82248 MEDIUM
6.0 Aug 28

Arbitrary file write outside the worktree boundary in gix-worktree-state (part of gitoxide) before 0.33.0 on Windows ena

CVE-2026-91986 MEDIUM
5.3 Sep 15

Control-character injection in gitoxide's gix-transport crate before version 0.59.2 lets crafted git-daemon URLs smuggle

CVE-2026-82249 LOW
2.3 Aug 28

Credential hijacking in gitoxide before 0.38.2 allows remote attackers to redirect credential helper lookups to attacker

Vendor 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

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