CVE Feed
7.3 High

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

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