legit · GitPython: Arbitrary local file content disclosure via [include] directive in untrusted .gitmodules
Affects legitSource GCVE Database
Not known to be exploited · CVSS 8.6 High : upgrade to 1.2.0.post0_15 soon.
Data as of 26 Oct 2026, 19:12 UTC
- Patch
- Available – fixed in 1.2.0.post0_15
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:NExploitation evidence
Disclosed: evidence found.
CVE published 25 Aug 2026
Detectable: no evidence on record.
No public nuclei template indexed
Weaponised: no evidence on record.
No public exploit code indexed in Metasploit or Exploit-DB
Exploited in the wildExploited: no evidence on record.
Not in CISA KEV and no source reports exploitation
Observed by OffSeq MirageSeen by Mirage: no evidence on record.
No attack traffic recorded by OffSeq Mirage sensors
A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 26 Oct 2026.
What to do
Upgrade legit to 1.2.0.post0_15.
Affected software
| Product | Affected | Fixed in |
|---|---|---|
Homebrewlegitpkg:brew/legitOther threats | Affected
| Fixed in
|
Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.
AI-suggested
A fix is available in GitPython version 1.2.0.post0_15 which disables merge_includes when parsing .gitmodules to prevent following attacker-controlled include directives. Users should upgrade to this fixed version to remediate the vulnerability. Until upgraded, avoid enumerating submodules on untrusted repositories or apply custom patches to disable merge_includes in SubmoduleConfigParser.
Description
GitPython versions before 1.2.0.post0_15 contain a vulnerability where the SubmoduleConfigParser used to parse the .gitmodules file does not disable the merge_includes feature. This allows an attacker controlling the .gitmodules file to specify an [include] directive that references arbitrary local files. When the repository's submodules are enumerated, GitPython attempts to parse the included file as a git config, and if the file is not a valid git config, an exception is raised that leaks the first line of the included file. This leads to local file content disclosure of the first line of any readable file on the victim's system.
References
- github.com/gitpython-developers/GitPython/security/advisories/GHSA-7833-fr7j-v32q (opens in a new tab)
- nvd.nist.gov/vuln/detail/CVE-2026-78675 (opens in a new tab)
- github.com/gitpython-developers/GitPython/pull/2211 (opens in a new tab)
- github.com/gitpython-developers/GitPython/commit/ef7568e3b317ce617eacda39b8b54dcdff8c3b5c (opens in a new tab)
- github.com/gitpython-developers/GitPython (opens in a new tab)
- github.com/gitpython-developers/GitPython/releases/tag/3.1.59 (opens in a new tab)
- github.com/pypa/advisory-database/tree/main/vulns/gitpython/PYSEC-2026-3785.yaml (opens in a new tab)
- vulncheck.com/advisories/gitpython-before-local-file-content-disclosure-via-gitmodules (opens in a new tab)