CVE-2026-78678
Received Received - Intake

GitPython Arbitrary File Read via Incomplete Denylist

Vulnerability report for CVE-2026-78678, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-08-25

Last updated on: 2026-08-25

Assigner: VulnCheck

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 Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-08-25
Last Modified
2026-08-25
Generated
2026-08-25
AI Q&A
2026-08-25
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 2 associated CPEs
Vendor Product Version / Range
gitpython gitpython to 3.1.59 (exc)
gitpython gitpython 3.1.58

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-88 The product constructs a string for a command to be executed by a separate component in another control sphere, but it does not properly delimit the intended arguments, options, or switches within that command string.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

GitPython versions before 3.1.59 have a flaw in their denylist for unsafe Git revision options. The denylist misses --contents and -S options, which attackers can use to read arbitrary files by passing these options to Repo.blame(). For example, an attacker could supply --contents=/etc/passwd to leak file contents through the blame result.

Detection Guidance

To detect this vulnerability, check the installed version of GitPython. Run: pip show gitpython. If the version is below 3.1.59, the system is vulnerable. Additionally, review code using Repo.blame() or Repo.blame_incremental() for unsafe revision options like --contents or -S.

Impact Analysis

If you use a vulnerable version of GitPython, an attacker could exploit this to read sensitive files on your system, such as configuration files, passwords, or other confidential data. This could lead to data breaches, unauthorized access, or further exploitation of your system.

Compliance Impact

This vulnerability could lead to unauthorized access to sensitive data, violating compliance requirements under GDPR (data protection) and HIPAA (health information privacy). Organizations may face legal penalties, reputational damage, and loss of trust if such breaches occur due to this flaw.

Mitigation Strategies

Immediately upgrade GitPython to version 3.1.59 or later using: pip install --upgrade gitpython. If upgrading is not possible, modify code to avoid using Repo.blame() with user-supplied revision options or implement input validation to block --contents and -S.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-78678. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart