PT-2026-67305

CVE-2026-67325

·

Published

2026-07-12

·

Updated

2026-09-22

Description by

CVSS 4.0
9.3
Critical
MetricsAV: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
Related identifiers
GHSA-2F96-G7MH-G2HX
GHSA-6R2R-WW24-7H52
ECHO-4DEC-46F6-0EBE
OESA-2026-3249
OESA-2026-3250
OESA-2026-3251
OPENSUSE-SU-2026:11466-1
OPENSUSE-SU-2026:21874-1
PYSEC-2026-3836
RHSA-2026:44416
RHSA-2026:45785
RHSA-2026:45940
RHSA-2026:71113
RHSA-2026:71114
SUSE-SU-2026:4072-1
Found an issue in the description? Have something to add? Feel free to write us 👾