Advisory Database
  • Advisories
  • Dependency Scanning
  1. pypi
  2. ›
  3. GitPython
  4. ›
  5. GHSA-whh4-5q6c-9v3x

GHSA-whh4-5q6c-9v3x: GitPython: --no-index bypasses diff unsafe-option protections and enables a blind local-file content oracle

September 30, 2026

GitPython 3.1.59 blocks a previously available local-file read path through unsafe git diff options such as -O/–orderfile.

However, the high-level diff API still permits –no-index with the default allow_unsafe_options=False.

–no-index changes the semantics of the paths arguments: instead of repository-relative pathspecs, Git interprets them as arbitrary filesystem paths.

When combined with the still-allowed -I/–ignore-matching-lines option, this creates a content-dependent Boolean oracle over a caller-selected local file.

This was reproduced against the published GitPython 3.1.59 wheel.

The original unsafe-option path is blocked in 3.1.59, while this alternate path remains reachable without setting allow_unsafe_options=True.

References

  • github.com/advisories/GHSA-whh4-5q6c-9v3x
  • github.com/gitpython-developers/GitPython/commit/09f2cf383a992d1af697364569e9f384748c1bd8
  • github.com/gitpython-developers/GitPython/pull/2217
  • github.com/gitpython-developers/GitPython/releases/tag/3.1.60
  • github.com/gitpython-developers/GitPython/security/advisories/GHSA-whh4-5q6c-9v3x
  • github.com/pypa/advisory-database/tree/main/vulns/gitpython/PYSEC-2026-3983.yaml
  • www.vulncheck.com/advisories/gitpython-3.1.59-local-file-content-oracle-via-no-index

Code Behaviors & Features

Detect and mitigate GHSA-whh4-5q6c-9v3x with GitLab Dependency Scanning

Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →

Affected versions

All versions starting from 3.1.59 before 3.1.60

Fixed versions

  • 3.1.60

Solution

Upgrade to version 3.1.60 or above.

Impact 6.5 MEDIUM

CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N

Learn more about CVSS

Weakness

  • CWE-200: Exposure of Sensitive Information to an Unauthorized Actor
  • CWE-88: Improper Neutralization of Argument Delimiters in a Command ('Argument Injection')

Source file

pypi/GitPython/GHSA-whh4-5q6c-9v3x.yml

Spotted a mistake? Edit the file on GitLab.

  • Site Repo
  • About GitLab
  • Terms
  • Privacy Statement
  • Contact

Page generated Mon, 12 Oct 2026 12:17:35 +0000.