CVE-2026-78678: Improper Neutralization of Argument Delimiters in a Command ('Argument Injection') in gitpython-developers GitPython
Description
GitPython versions before 3.1.59 contain an incomplete denylist in the unsafe_git_revision_options guard that omits --contents and -S options, allowing attackers to read arbitrary files by passing these options to Repo.blame(). Attackers can supply revision values like --contents=/etc/passwd to leak file contents through the blame result returned to the caller.
CVSS v4.0
Score 7.1high
Affected software
gitpython-developers
GitPython
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The vulnerability arises because the denylist of unsafe git revision options in GitPython's Repo.blame() and Repo.blame_incremental() methods only includes '--output' and '-o', which are write-related options. However, git blame also supports '--contents <file>' and '-S <file>', which cause the blame output to include lines from an arbitrary file. These options are not on the denylist, so a user-controlled revision string containing '--contents=<path>' passes the safety check and is executed, leaking file contents. The flaw is due to the denylist approach focusing only on write options rather than all options that take filesystem paths. This affects GitPython versions up to 3.1.58.
Potential Impact
An attacker who can control the revision argument to Repo.blame() or Repo.blame_incremental() can cause the application to read arbitrary local files and include their contents in the blame output. This results in an arbitrary local file read vulnerability at the privileges of the process running GitPython. No privilege escalation or code execution is indicated.
Mitigation Recommendations
No official patch or fix is explicitly stated in the provided data. The suggested fix is to replace the denylist with an allowlist of safe blame options or at minimum add '--contents' and '-S' to the denylist of unsafe options. Until a fix is released, users should avoid passing untrusted input to the revision parameter of Repo.blame() and Repo.blame_incremental(). Patch status is not yet confirmed — check the vendor advisory for current remediation guidance.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- VulnCheck
- Date Reserved
- 2026-08-25T01:17:12.262Z
- Cvss Version
- 4.0
- State
- PUBLISHED
Threat ID: 6a8cf57dacd9273b498428e0
Added to database: 08/25/2026, 01:53:01 UTC
Last enriched: 09/18/2026, 01:52:56 UTC
Last updated: 10/08/2026, 18:48:48 UTC
Views: 107
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.