# CVE-2026-73624: GitPython arbitrary file overwrite in Diffable.diff

Source: https://junglewise.ai/threats/cve-2026-73624-gitpython-arbitrary-file-overwrite-in-diffable-diff  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-08-13. Updated: 2026-09-25  
License: CC BY 4.0 with a link back

CVE-2026-73624 · Severity: high · CVSS 8.1 · Published 2026-08-13

GitPython is a library that developers use to interact with Git repositories programmatically. A vulnerability in the diff method allows attackers to overwrite arbitrary files on the system by injecting malicious git options, potentially compromising critical configuration files or SSH keys. An attacker with low privileges and code execution capability can corrupt or replace any file that the application process has permission to write.

Technologies: [gitpython (PyPI)](https://junglewise.ai/threats/technologies/pypi-gitpython). Vendors: [PyPI](https://junglewise.ai/threats/vendors/pypi).

## Quick answers

**Is CVE-2026-73624 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-73624 being exploited in the wild.

**How severe is CVE-2026-73624?** High severity, with a CVSS score of 8.1, published 13 August 2026.

**Which products and versions are affected?** gitpython (PyPI) ECOSYSTEM:introduced=0,fixed=3.1.54.

**Is there a fix for CVE-2026-73624?** Yes. gitpython (PyPI): upgrade to 3.1.54 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2026-73624 attacked?** It is attacked over the network, in a software library.

**Am I affected by CVE-2026-73624?** Check whether you run gitpython (PyPI) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## How to fix

- gitpython (PyPI): upgrade to 3.1.54 or later

  ```sh
  pip install "gitpython>=3.1.54"
  ```


## Technical details

GitPython's Diffable.diff method (used by Commit, Tree, IndexFile, and Submodule classes) fails to validate or sanitize git options passed through kwargs, introducing a command injection vulnerability. The vulnerable code at diff.py:265 inserts the caller-supplied `other` parameter before the `--` separator, allowing it to be parsed as a git option. An attacker can supply `--output=/attacker/chosen/path` either via the `output` kwarg or the `other` parameter to cause git diff-tree to write patch content to an arbitrary file path with process-level privileges. The fix requires adding `check_unsafe_options` guard (as implemented in iter_commits/archive) or placing `--end-of-options` before the other ref. Patched in version 3.1.54.

## Affected products

- GitPython GitPython before 3.1.54

## Identifiers

- CVE-2026-73624
- GHSA-fjr4-x663-mwxc
- PYSEC-2026-3995

## Timeline

- 2026-07-22: disclosed
- 2026-08-13: advisory
- 2026: patched: Version 3.1.54 and later

## References

- [https://github.com/gitpython-developers/GitPython/security/advisories/GHSA-fjr4-x663-mwxc](https://github.com/gitpython-developers/GitPython/security/advisories/GHSA-fjr4-x663-mwxc)
- [https://www.vulncheck.com/advisories/gitpython-before-arbitrary-file-overwrite-via-diff](https://www.vulncheck.com/advisories/gitpython-before-arbitrary-file-overwrite-via-diff)

## Related threats

- [GitPython command wrappers omit unsafe protocol and option checks](https://junglewise.ai/threats/cve-2026-110857-gitpython-command-wrappers-omit-unsafe-protocol-and-option)
- [GitPython submodule path traversal to arbitrary hook execution](https://junglewise.ai/threats/cve-2026-114145-gitpython-is-a-python-library-used-to-interact-with-git)
- [GitPython symlink following in Submodule.move()](https://junglewise.ai/threats/cve-2026-110860-gitpython-from-3-1-62-before-3-2-0-contains-a-symlink-following)
- [GitPython argument injection in Head.checkout()](https://junglewise.ai/threats/cve-2026-110859-gitpython-before-3-2-0-contains-an-argument-injection)
- [GitPython remote code execution in Remote.pull() refspec argument](https://junglewise.ai/threats/cve-2026-110858-gitpython-from-3-1-30-before-3-2-0-contains-a-remote-code)
