ZeroHour

CVE-2026-82253

Path traversal and trust bypass in gitoxide (gix, gix-validate Rust crates)

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

CVE-2026-82253 is a path traversal flaw (CWE-22) in the Rust git implementation gitoxide: the submodule name validator in gix-validate only checks the first occurrence of '..' via name.find(b".."), so crafted names such as 'a..b/../../../.git/' bypass the check, and the validation is additionally never invoked in production code paths. When a tool built on gix opens a repository containing a malicious .gitmodules file, Submodule::open() inherits the parent repository's full trust (Trust::Full) while skipping ownership verification, causing attacker-controlled paths to be opened as fully trusted. The attacker gains the ability to have the victim tool read arbitrary git repository configuration, including embedded credentials, bypassing safe-directory protections; the 8.7 (High) CVSS 4.0 score reflects high confidentiality impact only. Affected parties are developers and automated tooling that embed gix <= 0.72.0 or gix-validate <= 0.10.0 and use them to inspect untrusted or attacker-supplied repositories. There is currently no public proof-of-concept, no CISA KEV listing, and no known exploitation; EPSS estimates a 0.5% probability of exploitation within 30 days.

What to do: Upgrade to gix 0.82.0 or later and gix-validate 0.11.1 or later, and check your Rust dependency tree (e.g., cargo tree or cargo audit) for any tools embedding the vulnerable ranges. Until patched, avoid using gix-based tools to open untrusted repositories or submodules, and assume that git configuration read from submodule paths may expose stored credentials because safe-directory trust is inherited without ownership verification.

Affected
gitoxide project gix<= 0.72.0 (fixed in 0.82.0)
gitoxide project gix-validate<= 0.10.0 (fixed in 0.11.1)
Estimated exposure
No basis for an estimate.

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

Description

gitoxide (Rust crates gix <= 0.72.0 and gix-validate <= 0.10.0) contains a path traversal vulnerability. The submodule name validation function in gix-validate only checks the first occurrence of '..' via name.find(b".."), allowing crafted names such as 'a..b/../../../.git/' to bypass the check; additionally this validation is never invoked in production code paths. Combined with a trust inheritance flaw in Submodule::open(), where the parent repository's git_dir_trust (Trust::Full) is cloned and the ownership verification is skipped, an attacker can craft a malicious .gitmodules file so that a victim tool built on gitoxide reads arbitrary git repository configuration (including embedded credentials) with full trust, bypassing safe-directory protections. Fixed in gix 0.82.0 and gix-validate 0.11.1.

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.