PT-2026-67305
CVE-2026-67325
·
Published
2026-07-12
·
Updated
2026-09-22
Description by
CVSS 4.0
9.3
CriticalMetricsAV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/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
Name of the Vulnerable Software and Affected Versions
GitPython versions prior to 3.1.51
Description
An incomplete command injection blocklist allows attackers to bypass the unsafe options guard. The issue stems from the
check unsafe options() function and canonicalize option name() function, which perform exact-match checks and only normalize underscores to hyphens. This fails to account for the long-option prefix abbreviation feature of git, where git accepts any unambiguous prefix of a long option.Attackers can use abbreviated keys such as
upload p (which git resolves to --upload-pack), receive p (resolved to --receive-pack), or exe (resolved to --exec) to bypass the guard and execute arbitrary commands. This occurs even when allow unsafe options is set to False.Recommendations
Update GitPython to version 3.1.51 or later.
As a temporary mitigation, restrict the use of attacker-controlled keys in the
clone, fetch, pull, and push methods to prevent them from reaching the vulnerable check unsafe options() function.Exploitability
Exploit
Fix
Impacts
Researchers
Vendors
Affected products
Found an issue in the description? Have something to add? Feel free to write us 👾