ZeroHour

CVE-2026-73619

PoC large

Arbitrary File Read in GitPython via Incomplete Git Archive Option Denylist

CVSS 4.0
7.1 high
EPSS
<1%p22
Published
()
Modified
AI analysis

GitPython before 3.1.57 contains an incomplete denylist in its unsafe_git_archive_options guard, which omits the git archive options --add-file and --add-virtual-file. An attacker who can influence the arguments passed to Repo.archive() (for example, in an application or service that exposes archive generation with user-controlled options) can inject these flags, causing git to read arbitrary files from the local filesystem and embed their contents in the returned archive. The result is arbitrary file read with high confidentiality impact, requiring only low privileges and no user interaction. Any deployment of an affected GitPython version in which external input shapes archive options is affected, while applications that never pass attacker-controlled options to Repo.archive() are not meaningfully exposed. A public security advisory exists (GHSA-539m-9xh6-q6rr), but exploitation has not been reported in the wild; EPSS estimates a 0.3% probability of exploitation within 30 days and the flaw is not in CISA KEV.

What to do: Upgrade to GitPython 3.1.57 or later. In the interim, audit code paths that call Repo.archive() and allowlist or strictly validate any user-supplied format/options values, rejecting options that begin with '--'. Operations teams should also review which sensitive local files (e.g., configuration or credential files) an attacker could exfiltrate from affected services.

Affected
gitpython project gitpythonall versions before 3.1.57; fixed in 3.1.57
Estimated exposure
large~10,000-100,000 deployments (widely used PyPI library; only deployments exposing Repo.archive() with attacker-controlled options are exploitable) — GitPython is among the most-downloaded packages on PyPI (tens of millions of monthly downloads, based on public download statistics), implying a deployed base well into the tens of thousands, but the flaw only applies where applications…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

GitPython before 3.1.57 contains an incomplete denylist in the unsafe_git_archive_options guard that omits --add-file and --add-virtual-file options. Attackers can supply these options to Repo.archive() to read arbitrary files from the filesystem and include them in the returned archive.

Vendors
gitpython project
Products
gitpython
Weakness
CWE-73
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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

In the news

No ingested article mentions this CVE yet.