ZeroHour

CVE-2026-82251

Path Traversal in gitoxide via Unvalidated .gitmodules Submodule Names

CVSS 4.0
8.7 high
EPSS
<1%p32
Published
()
Modified
AI analysis

gitoxide before 0.52.1 does not validate submodule names taken from a repository's .gitmodules configuration, allowing path traversal (CWE-22) when the library derives the submodule's git directory. The flaw is triggered when an application using gitoxide processes a crafted repository whose .gitmodules contains a submodule name with traversal segments, causing the state() and open() functions to resolve to repositories outside the intended .git/modules directory. An attacker gains repository confusion: gitoxide operations may target repositories outside the expected location, including inspection of attacker-controlled repositories, and the CVSS 4.0 score of 8.7 (high) reflects high confidentiality impact with no integrity or availability loss. Anyone running applications, services, or tooling built on gitoxide versions before 0.52.1 that open or inspect untrusted repositories containing submodules is affected. There is no known public proof-of-concept, the issue is not in CISA's KEV catalog, and EPSS estimates only a 0.4% chance of exploitation in the next 30 days.

What to do: Upgrade gitoxide/gix to version 0.52.1 or later. Until patched, avoid using gix to open or inspect untrusted repositories containing submodules, or pre-screen .gitmodules entries and reject submodule names containing traversal segments such as '..' or path separators. Audit your Rust dependency tree for gix/gix-* crates older than 0.52.1, as the library is typically pulled in transitively.

Affected
gitoxide (gix project) gitoxide / gixall versions before 0.52.1 (fixed in 0.52.1)
Estimated exposure
unknown — the gix crates have many millions of cumulative crates.io downloads indicating broad adoption, but the number of deployments that actually process… — gitoxide is a Rust library and toolkit consumed as a software dependency rather than a countable appliance or SaaS site, so public download counts show wide adoption but cannot reveal how many applications feed it attacker-influenced…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

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.

Weakness
CWE-22
Vector
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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

In the news

No ingested article mentions this CVE yet.