Description
GitPython 3.1.59 fails to restrict the --no-index option in the high-level diff API, allowing attackers to read arbitrary filesystem paths as repository operands. Attackers can combine --no-index with -I/--ignore-matching-lines to create a content-dependent Boolean oracle, repeatedly querying local files to recover single-line secrets through distinguishable success or error responses.
Published: 2026-09-09
Score: 7.1 High
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The flaw resides in the high‑level diff API of GitPython 3.1.59, where the --no-index switch is not properly constrained. An attacker can invoke GitPython with this option to feed arbitrary file system paths as repository operands. By pairing --no-index with the -I/--ignore-matching-lines flag, the attacker turns the API into a content‑dependent Boolean oracle, repeatedly probing local files and distinguishing success from error responses. This technique can be used to recover single‑line secrets such as passwords, API keys, or other sensitive data found in the filesystem, presenting a clear confidentiality risk.

Affected Systems

Vendors: GitPython developers. Product: GitPython 3.1.59. The vulnerability is specific to this release and does not affect earlier or later versions that have applied the patch and removed the unchecked usage of --no-index.

Risk and Exploitability

The CVSS score of 7.1 indicates a high‑severity vulnerability. The EPSS score is not reported, and the issue is not listed in the CISA KEV catalog, suggesting limited known exploitation at this time. Attackers must be able to run the compromised GitPython code on the target host, meaning the tactical vector is local. The Boolean oracle can be exploited repeatedly to enumerate file contents, leading to potential data exfiltration if secrets reside on the system. Overall, even without remote access, the combination of local execution privileges and the absence of restrictions on --no-index creates a significant risk to confidentiality.

Generated by OpenCVE AI on September 9, 2026 at 12:49 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade GitPython to the latest supported release that removes the unchecked --no-index handling
  • Avoid using the --no-index option in any scripts or applications until the migration is applied
  • If immediate upgrade is not possible, sandbox GitPython execution to restrict filesystem access or ensure the process runs with minimal privileges to limit exposure

Generated by OpenCVE AI on September 9, 2026 at 12:49 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 09 Sep 2026 11:30:00 +0000

Type Values Removed Values Added
Description GitPython 3.1.59 fails to restrict the --no-index option in the high-level diff API, allowing attackers to read arbitrary filesystem paths as repository operands. Attackers can combine --no-index with -I/--ignore-matching-lines to create a content-dependent Boolean oracle, repeatedly querying local files to recover single-line secrets through distinguishable success or error responses.
Title GitPython 3.1.59 Local File Content Oracle via --no-index
First Time appeared Gitpython Project
Gitpython Project gitpython
Weaknesses CWE-88
CPEs cpe:2.3:a:gitpython_project:gitpython:*:*:*:*:*:*:*:*
Vendors & Products Gitpython Project
Gitpython Project gitpython
References
Metrics cvssV3_1

{'score': 6.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N'}

cvssV4_0

{'score': 7.1, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N'}


Subscriptions

Gitpython Project Gitpython
cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-09-09T11:21:04.681Z

Reserved: 2026-09-09T10:32:34.109Z

Link: CVE-2026-87818

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-09T12:17:16.980

Modified: 2026-09-09T12:17:16.980

Link: CVE-2026-87818

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-09T13:00:14Z

Weaknesses
  • CWE-88

    Improper Neutralization of Argument Delimiters in a Command ('Argument Injection')