gitoxide gix: untrusted .git/config disables filesystem .git-protection path checks via unfiltered protect_options()
GHSA-q54r-jf2p-rfr2
Summary In the gix crate, Cache::protectoptions() in gix/src/config/cache/access.rs reads the three filesystem path-protection settings (core.protectHFS, core.protectNTFS, and gitoxide.core.protectWindows) with the unfiltered gixconfig::File::boolean() accessor instead of the trust-aware booleanfilter() accessor used by every other security-critical config read in the same file. When a repository is opened with reduced trust (an ownership mismatch, which maps .git/config sections to Trust::Reduced), these protection settings should not be honored from the untrusted repository-local config. Because the trust filter is skipped, an attacker who controls a repository's .git/config on a shared filesystem can set core.protectNTFS = false and/or core.protectHFS = false, disabling the .git path-confusion checks that run during checkout, index creation, merge, and tree editing. On case-insensitive filesystems this lets crafted tree entries resolve to the .git directory and overwrite hooks or config. Root Cause Repositories opened under Trust::Reduced install a section filter (istrusted) so that security-relevant settings coming from an untrusted repository-local .git/config are ignored.…
Assessment
- CVSS
- 7.3 (v3.1)
- Severity
- High
- Known exploited
- Not listed in CISA KEV
- Exploit availability
- Nothing found in Exploit-DB, Metasploit, Nuclei or public PoC repositories
- Published
- 23 October 2026
- Last updated
- 23 October 2026
- Affected
- rust · gix
- Weakness
- CWE-349
CVSS vectorCVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H
At the source
References
- https://github.com/GitoxideLabs/gitoxide/security/advisories/GHSA-q54r-jf2p-rfr2
- https://github.com/GitoxideLabs/gitoxide/pull/3068
- https://github.com/GitoxideLabs/gitoxide/commit/743957880154aa1726b30b8b5779fd10c78a058c
- https://github.com/GitoxideLabs/gitoxide/releases/tag/gix-v0.90.0
- https://github.com/advisories/GHSA-q54r-jf2p-rfr2
Query this programmatically
Agents can read this through the MCP endpoint, or over HTTP:
curl https://cve.zerocrew.in/api/cve/GHSA-q54r-jf2p-rfr2