Junglewise Threat Intelligence

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

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

Vendors: GitPython.

Executive brief

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.

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

Timeline

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

References