Skip to main content
CVE-2026-78679VulnerabilityPublished Updated

cruft · GitPython: TagReference.create positional reference bypasses kwargs-only --file guard, enabling arbitrary file read

Affects cruftSource GCVE Database

0
Authoritative record:CVE-2026-78679· High 7.1

Not known to be exploited · CVSS 7.1 High : upgrade to 2.16.0_15 soon.

Data as of 26 Oct 2026, 17:43 UTC

CVSS 4.0 base score
7.1High
How severe the flaw is on the 0–10 CVSS scale.
EPSS
0.3% chance of exploitation in 30 days – higher than 24% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
Patch
Available – fixed in 2.16.0_15
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

Exploitation evidence

  1. Disclosed: evidence found.

    CVE published 25 Aug 2026

  2. Detectable: no evidence on record.

    No public nuclei template indexed

  3. Weaponised: no evidence on record.

    No public exploit code indexed in Metasploit or Exploit-DB

  4. Exploited in the wild: no evidence on record.

    Not in CISA KEV and no source reports exploitation

  5. Observed by OffSeq Mirage: no evidence on record.

    No attack traffic recorded by OffSeq Mirage sensors

A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 26 Oct 2026.

What to do

Upgrade cruft to 2.16.0_15.

Affected software

ProductAffectedFixed in
Homebrewcruftpkg:brew/cruftOther threatsAffected
  • >=2.9.0 <2.16.0_15
Fixed in
  • 2.16.0_15

Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.

AI-suggested

A patch is available in GitPython version 2.16.0_15 that fixes this vulnerability by including positional arguments in the unsafe option guard or by adding a '--' separator before positional arguments in TagReference.create(). Users should upgrade to this fixed version. Until patched, avoid passing user-controlled input as the positional 'reference' argument to TagReference.create().

Description

GitPython's TagReference.create() method improperly handles a positional 'reference' argument, allowing an attacker to bypass unsafe option guards and cause an arbitrary local file read. This occurs because the unsafe option check only inspects keyword arguments, ignoring positional arguments that can inject '--file=<path>' into the git tag command. The file contents are returned in the annotated tag message. This vulnerability affects GitPython versions up to 3.1.58 and is fixed in version 2.16.0_15.

References

Community reviews

Loading reviews…