legit · GitPython: Arbitrary file overwrite via git diff --output argument injection in Diffable.diff (key- and
Affects legitSource GCVE Database
Not known to be exploited · CVSS 7.2 High : upgrade to 1.2.0.post0_12 soon.
Data as of 26 Oct 2026, 19:11 UTC
- Patch
- Available – fixed in 1.2.0.post0_12
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:NExploitation evidence
Disclosed: evidence found.
CVE published 13 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_12.
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 patch is available in GitPython version 1.2.0.post0_12 that adds validation to Diffable.diff() to prevent unsafe option injection. Users should upgrade to this fixed version or later. The fix includes adding a check_unsafe_options guard and placing a '--end-of-options' marker before the 'other' ref argument to prevent it from being interpreted as an option. No other mitigations are indicated.
Description
GitPython's Diffable.diff() method allows attacker-controlled arguments to be passed directly to git diff commands without proper validation, enabling arbitrary file overwrite via the --output option. This affects versions up to 3.1.53. An attacker can cause git to write diff output to any file path writable by the process, potentially overwriting critical files such as SSH authorized_keys. A fix is available in version 1.2.0.post0_12 that adds option validation and prevents option injection.
References
- github.com/gitpython-developers/GitPython/security/advisories/GHSA-fjr4-x663-mwxc (opens in a new tab)
- github.com/gitpython-developers/GitPython/pull/2180 (opens in a new tab)
- github.com/gitpython-developers/GitPython/commit/1d51b891d7f236044a6aa17498ec682b63dad6e6 (opens in a new tab)
- github.com/gitpython-developers/GitPython (opens in a new tab)
- github.com/gitpython-developers/GitPython/releases/tag/3.1.54 (opens in a new tab)